Ancillary Services

Batteries are well suited to provide Ancillary Services because they can act as both loads and generators, they can ramp up and down near-instantaneously, and they have a relatively low marginal cost to operate. Historically, batteries have made the bulk of their revenue from selling Ancillary Services to ERCOT.

Ancillary Services are commitments that resources make to ERCOT to be online during a given hour and ready to provide power (or reduce load). Ancillary Services differ in terms of how soon a resource must respond once it is deployed by ERCOT and for how long it must be able to provide power. ERCOT procures these commitments in an auction process in the Day-Ahead market.

Modo includes all of the primary Ancillary Services in our Benchmark:

  • Regulation Up / Regulation Down - these services are used to manage small second-to-second imbalances between power load and generation, in order to keep the system frequency at 60.0 Hz.
  • Responsive Reserve (RRS) - this service is the next in line after Reg Up/Down to respond to deviations in frequency.
  • ERCOT Contingency Reserve Service (ECRS) - this service is used to provide additional dispatchable capacity more so than to arrest frequency deviations. As such, its required response time is slower (10 minutes) and its maximum duration is longer (2 hours).
  • Non-Spinning Reserve - this is the slowest responding (30 minutes) and longest duration service (4 hours), also used for additional dispatchable capacity.

Modo's ERCOT Index provides fleet-wide and asset-specific battery revenue earned in each of these markets.

Our Data

To calculate Ancillary Services revenues, we use the following data:

ERCOT supplies this data to Modo, as Modo is a registered IMRE. Modo makes this data available for all assets, not just batteries, on our API.

Additionally, Modo maintains a directory of battery assets on ERCOT, which we use to match each battery resource's Load ID with its Generation ID.


We merge the above datasets together to get the Market Clearing Price for each Ancillary Service, each battery resource's Day-Ahead awarded capacity for each Ancillary Service, and each resource's Real-Time responsibility for each Ancillary Service.

We calculate each resource's revenue for each Ancillary Service by multiplying the resource's Real-Time responsibility for each Ancillary Service by the Market Clearing Price for that service. Note that:

  • Ancillary Services are awarded to resources in the Day-Ahead market, but the resource's QSE may then redistribute its Ancillary Service responsibilities among its resources at Real-Time. Therefore we have a choice in whether to calculate revenue using Day-Ahead awards or Real-Time responsibility. We choose to use Real-Time responsibility when calculating our index, but we make Day-Ahead award revenue available via our API. Be sure to use only one and not both, as that would be double-counting revenue.