API
Access all Benchmark and Leaderboard data via our API.
Modo makes all our benchmark and leaderboard data available via our API. This is useful for automatically downloading and working with our data.
There are three endpoints to use:
- BESS Index - whole-fleet revenue by market / service for each 15-minute settlement period.
- BESS Index Breakdown - resource-specific revenue by market / service for each 15-minute settlement period.
- BESS Physical Operations and Availability - resource-specific availability status and MWs imported / exported.
Check out this code snippet for an example of how to make a large request and get the response as a Pandas DataFrame.
BESS Index
This image shows the BESS Index response for a single 15-minute settlement interval.
There are a few things to note:
- The rows where
duration
is*
represent data for all batteries. The rows whereduration
is1
represent data for only 1-hour batteries, and2
represent data for only 2-hour batteries. Be sure to select only the rows that have the duration you're interested in. Here's an example of how to do this:-
# bess_index is a Pandas DataFrame of BESS Index output data index_all = bess_index[bess_index.duration == '*'] index_1hr = bess_index[bess_index.duartion == 1] index_2hr = bess_index[bess_index.duartion == 2]
-
- Ancillary Service revenues are shown for both the Day-Ahead and Real-Time markets. These revenues should not be added together as this would double count Ancillary Services revenue. The Modo revenue index uses Real-Time Ancillary Service revenue only.
- The reason that we provide both, even though only one should be used, is because QSEs may reassign Ancillary Service obligations from one resource to another between the Day-Ahead market and Real-Time operations. So although the total revenue earned by the QSE will not change, the distribution of that revenue across the QSEs resources may change. It is best to use Real-Time Ancillary Service revenue, but we provide both because shifting Ancillary Service responsibility will be interesting to some users.
- The ORDC portion of energy revenue is broken out into its own service.
BESS Index Breakdown
This image shows the BESS Index Breakdown response for a single resource during a single 15-minute settlement interval.
There are a few things to note:
- If a resource did not participate in a market / service, that market / service will not appear in the output. In the example image, the resource didn't participate in NSRS, ECRS, or Day-Ahead energy.
- The column
resourceType
indicates whether the rows represents theload
orgen
side of the battery. Because batteries are unique among resources in ERCOT for being capable of both importing and exporting, they're modeled in ERCOT as two separate resources, and our data reflects this. - The same notes from BESS Index apply.
BESS Physical Operations and Availability
This image shows the BESS Physical Operations and Availability response for the first 10 resources.
Note that the Physical Operations data uses Telemetered Net Output to calculate genMw
, whereas Settlement Metered Net Energy is used for revenue calculations.
Updated 5 months ago