Dispatch Model

How single-asset battery revenues are modeled in ERCOT

The dispatch model produces site-specific revenue forecasts for individual battery energy storage assets, using the energy and ancillary service prices from the fundamentals model. It maximizes revenue from the perspective of a single asset owner by solving a mixed-integer linear program for the battery’s charge, discharge and ancillary service schedule.

It is the same single-asset dispatch optimization used across Modo Energy’s market regions, applied to ERCOT prices and market rules. See the core Dispatch Model for the shared methodology. The points below describe how ERCOT differs.

Revenue streams

Stream Method Source
Wholesale energy Co-optimized Hourly nodal or hub prices from the fundamentals model
Ancillary services Co-optimized Hourly prices for each service from the fundamentals model
DART uplift Applied post-solve Zone and year specific uplift factors

Prices are nodal from 2026 through 2033. From 2034 the forecast is zonal, and each asset is settled at the trading hub for its load zone (HB_NORTH, HB_SOUTH, HB_WEST or HB_HOUSTON).

Imperfect price foresight

ERCOT builds imperfect foresight into the optimization itself.

Before each window is solved, the energy price series is smoothed with a centered nine-hour rolling average. The battery schedules its charge and discharge against this blurred series, so it sees the broad shape of the day but not the exact hour or the full height of each price spike. The resulting dispatch is then settled at the actual, unsmoothed prices. Revenue is therefore what the schedule would have earned in the real price series, not in the smoothed one.

This approach captures two features of real operation. A trader knows roughly when the evening peak will fall but not precisely which hour will clear highest, and scarcity intervals are far more valuable in settlement than in any forecast. Ancillary service prices are not smoothed. The nine-hour window was calibrated against the ME ERCOT BESS index, Modo Energy’s dataset of realized battery revenues in ERCOT, so that modeled revenues track what operating assets have achieved.

Optimization windows

Each window is solved independently. The window length depends on battery duration: one day for batteries up to four hours, two days up to six hours and three days above that. State of charge at the end of each window must return to its level at the start, so the battery cannot borrow energy from the next window.

Ancillary services

The model co-optimizes energy with the five ERCOT ancillary services in each hour. Ancillary service revenue is a capacity payment on the megawatts held, in dollars per megawatt per hour. Services can be stacked, subject to the battery’s power and energy limits.

Product Direction Energy headroom
Regulation Up Discharge 30 minutes at full power
Regulation Down Charge 30 minutes at full power
Responsive Reserve (RRS) Discharge 30 minutes at full power
ERCOT Contingency Reserve (ECRS) Discharge 1 hour at full power
Non-Spinning Reserve Discharge 4 hours at full power

Three further rules shape ancillary participation:

  • Market size: The megawatts a single asset can clear in each service are capped by an hourly acceptance rate derived from the size of each market, so a large battery cannot clear more than the market can absorb.
  • Activation: Expected energy delivered when a service is called moves the state of charge, using activation rates estimated from historical ERCOT data.
  • Saturation: Forecast ancillary prices decline over the horizon as the battery fleet grows and competes for a finite requirement, reflecting the saturation already visible in ERCOT’s ancillary markets.

DART uplift

Forecast runs optimize against hourly prices, representing the Day-Ahead energy market. Real batteries in ERCOT also earn from the difference between Day-Ahead and Real-Time prices. This value is added after the optimization as a DART (Day-Ahead to Real-Time) uplift: wholesale revenue is scaled by a factor that depends on the load zone and forecast year.

Battery assumptions

  • Round-trip efficiency: 88% by default, applied on the charge side.
  • Cycling: Up to two full cycles per day by default, enforced as a cap on discharged energy in each window. A small cycling cost is charged on every megawatt-hour discharged, so the battery does not cycle for negligible spreads.
  • Degradation: Optional. Usable capacity and efficiency can follow Modo Energy’s standard curve or a custom curve as cycles accumulate, with optional repowering. See Battery Degradation.
  • Solar and wind co-location: Supported for AC-coupled sites.
  • Solar profile: Modelled from ERA5 irradiance at the site, for the weather year at the chosen yield exceedance level (P50 by default), then reshuffled onto the synthetic weather year behind the price forecast. See Solar.

Calibration

Modeled revenues are calibrated against the ME ERCOT BESS index, Modo Energy’s proprietary dataset of realized battery revenues in ERCOT. The imperfect foresight window, cycling cost and ancillary participation limits are set so that backtested revenues fall within the range observed across the index. See the Backtest page for results.

Outputs

Monthly and annual per-asset metrics:

  • Revenue by stream: wholesale energy, DART uplift and each ancillary service
  • Cycling: average cycles per day, state of health and efficiency
  • Prices: average wholesale price, capture prices on charge and discharge, and the top-bottom spread for the battery’s duration