FAQs

General

How often do you update the model?

We update the model on a quarterly basis, incorporating the latest data, market developments, and structural changes. Each update may also include improvements to model features or functionality, reflecting our ongoing development priorities.

Can we use the forecast to support BESS financing?

Yes — the forecast is structured to support investment cases and includes merchant and ancillary revenues across multiple scenarios. Outputs are designed to be suitable for use in financial models, investor decks, or due diligence processes.

Are the forecasts in real or nominal terms?

Forecast results are expressed in a real 2025 US dollar currency base (previously real 2023). Values are converted to real terms using US CPI (FRED series CPIAUCSL), with each base year taken at its mid-year (July) level. This base is stated in the forecast revenues output CSV and is subject to updates. To compare against prior real-2023 forecasts, multiply older figures by 1.058. You need to apply your own inflation assumptions to uplift to nominal.

Fundamentals Model

Is it a fundamental or a stochastic model?

Our model is fundamental, not stochastic. Here’s how we approach uncertainty in long-term power market forecasting:

Philosophy

We believe scenario modelling and sensitivity analysis are more appropriate than Monte Carlo methods for long-term forecasting:

  • Many long-term inputs –like future policy, market design, or buildout patterns– don’t have reliable probability distributions.
  • Monte Carlo methods risk creating a false sense of precision by assigning probabilities where none can be credible distributions.
  • Instead, we focus on building plausible, well reasoned scenarios and testing them with targeted sensitivities on inputs like revenue capture rates, fuel prices, and weather conditions.

This helps decision-makers understand the range of possible outcomes, the drivers behind them, and how sensitive results are to key uncertainties – without overstating our confidence in any specific trajectory.

What We Do Today

Currently, we run a central scenario with a set of high/low sensitivities on key parameters. This gives directional insight into upside/downside risk and helps test model stability under a range of credible conditions.

Where We Are Going

We’re building toward a richer scenario framework that includes divergent structural scenarios (e.g. capacity market, different policy regimes), each supported by clearly documented assumptions. This will be coupled with systematic sensitivities that reflect the most relevant risks to different user groups.

Throughout, we’ll continue to avoid assigning artificial probabilities to scenarios or outputs. Our focus is on making uncertainty transparent, interpretable, and decision-useful.

Is the forecast nodal or zonal?

We run a nodal model through 2034, and switch to a zonal model from 2034 till 2050.

  • Plant-level detail: we maintain plant-level granularity throughout, including individual SRMC bid curves.
  • Consistency: All assumptions –fuel prices, buildout, retirements demand growth– are consistent across both nodal and zonal horizons. The only difference is the spatial aggregation.

We make this shift for two reasons:

  1. Uncertainty in siting of future generation, load, and transmission beyond ten years makes nodal modeling misleading - we want to avoid false spatial precision.
  2. Node behaviors are assumed to trend toward zonal averages in the long run – as transmission expands, congestion, and with it nodal price separation tends toward zero.

Zonal modeling past 2034 still provides spatial context without overstating accuracy. From a valuation perspective, the nodal part of the forecast dominates discounted cashflows, so we focus precision where it matters most.

Why is the 2024 weather year selected for the ERCOT model, and is this configurable by customers?

2024 was selected because, across the full calendar year, its temperature profile (both average temperature and the count of extreme days) is close to the median of the past ~10–25 years of observations. An “average year” does not guarantee an average profile in every month, which contributes to the seasonal shape seen in the current forecast.

The weather year is not configurable at this time.

How do you model storage cannibalization and market saturation?

The model captures price suppression effects through endogenous storage behavior. As more storage enters the system, competition for arbitrage and ancillary services naturally leads to diminishing returns.

How do you model scarcity pricing in ERCOT?

Scarcity pricing is modeled endogenously rather than imposed through a fixed scarcity curve. Prices rise naturally during periods of high net load, reduced thermal availability, or binding transmission constraints as reserve margins tighten. Within ERCOT’s real-time co-optimization of energy and ancillary services, opportunity costs between providing energy and reserves further contribute to higher prices under stressed system conditions.

Is reserve margin a variable of the model?

Under ERCOT’s new RTC+B market design implemented at the end of 2025, the former Operating Reserve Demand Curve (ORDC) was replaced by Ancillary Services Demand Curves (ASDCs). Scarcity is therefore reflected through ASDC-based pricing within the co-optimized dispatch, rather than a reserve margin constraint.

When ancillary service requirements are not fully met, ASDC prices rise, creating opportunity costs that can shift flexible capacity — particularly batteries — from energy to reserves, indirectly tightening the energy market. Reserve margins and scarcity thus emerge endogenously through ASDC-driven co-optimization.

How do you model negative prices?

Negative prices arise naturally in the model when supply outstrips demand — typically during high wind or solar output and low load conditions. We also factor in Production Tax Credits (PTCs) for eligible wind and solar assets by embedding them into the SRMC, which can push bids below zero. This reflects real market behavior, where PTC-backed projects are willing to generate through negative pricing events. While PTCs are phasing out for new builds, many ERCOT assets still qualify, making this a persistent feature in the near term.

Can the model simulate curtailment?

Yes — curtailment is captured when transmission constraints or system-wide oversupply prevent full renewable dispatch. The model reflects economic curtailment as a result of network constraints.

How do you model ancillary services and real-time co-optimization?

Our model co-optimizes energy and ancillary service markets under the upcoming RTC+B market design. Each generator and storage unit can choose to participate in any eligible market capturing the key trade-off between energy and reserve availability, and the model produces both energy and ancillary service price outputs. However, the model generates only a single ancillary service price timeseries, while our dispatch model requires distinct prices for each service type. To bridge this gap, we use a machine learning regression model trained on historical data, which generates individual ancillary service price projections based on the energy price timeseries from our Fundamentals Model.

Other providers take more time to run a 15 year forecast. What is Modo Energy doing differently?

We’ve optimized both software and infrastructure to reduce runtime:

  • Model runtime is kept under 2h for the production cost model, under 30min for the dispatch model.
  • Infrastructure: the model is run on large, scalable AWS server with high parallelism.
  • Solver: after formulation, the linear programming problem is handed to a state-of-the-art, proprietary solver tuned specifically for performance across our specific modelling problem.
  • Precomputation: frequently used runs are precomputed and stored in a library, enabling fast retrieval without rerunning.

These design choices reduce the computation time without sacrificing model fidelity.

Dispatch Model

How do you model and validate storage revenues?

Storage revenues are modeled using a detailed dispatch engine that optimizes battery behavior across energy and ancillary markets. To ensure realism, we calibrate the model using the ME ERCOT BESS index — a proprietary dataset of historical storage revenues in ERCOT.

This calibration process adjusts model parameters (e.g. efficiencies, cycling limits, market participation assumptions) to align modeled outcomes with real-world operator behavior. By grounding the forecast in observed revenue profiles, we can better capture how storage assets actually perform — not just in theory, but in practice.

What does the DART uplift component of forecasted BESS revenues represent? How is it calculated?

DART uplift (short for Day-Ahead-to-Real-Time uplift) measures the incremental revenue a battery energy storage system earns by optimizing across both the day-ahead and real-time wholesale markets, rather than participating in a single wholesale market.

The calculation uses two stages:

  • Price generation: the Fundamentals Model is run at both 15-minute and 1-hour granularity, producing separate price series for the real-time and day-ahead markets.
  • Dispatch comparison: the Dispatch Model is run twice, with both runs co-optimizing across the ancillary service markets. The first run has access to both wholesale price series, while the second run has access to a single wholesale price series.

The difference in total revenue between the two dispatch runs is reported as the DART uplift. It isolates the portion of forecasted revenue that depends specifically on participation in both wholesale markets.