ERCOT logo

DAM Energy Storage Resource Data (60-Day)

What each ERCOT battery offered into the Day-Ahead Market and what it was awarded, hour by hour, from the 60-Day DAM Disclosure Reports.

Native record
storage resource x QSE x day-ahead hour, disclosed 60 days later
hourly (DAM), 60-day disclosure publication cadence
Evidence
Cleared day-ahead market
A market outcome, not a physical observation
Time basis
Point-in-time records
UTC · event_time

Overview

Like the SCED storage file this subreport begins at RTC+B go-live on 6 December 2025. Each row is one hour for one storage resource and its QSE, carrying the QSE's submitted energy curve as up to ten monotonic MW/price pairs, the resource's high and low sustainable limits and status, the awarded energy quantity, its settlement point and that point's day-ahead price, and its ancillary awards with the matching market clearing price for capacity in each service (Reg-Up, Reg-Down, RRS-PFR, RRS-FFR, RRS-UFR, ECRS, Non-Spin). This is where day-ahead storage strategy is legible: how a fleet split its capacity between energy and reserves, what it was paid for each, and how its bid curve related to the price that cleared. It is a cleared-market record on a 60-day regulatory delay, not a live feed. Measured 2026-09-07: 3.2 million rows. The official source is ERCOT report NP3-966-ER, 60-Day DAM Disclosure Reports.

Query contract

Preserve one canonical row per (event_time, qse_name, resource_name) before aggregating.

Analysis rules

  • Ancillary revenue for a resource-hour is each awarded_mw multiplied by its own service's mcpc, summed across services; the mcpc columns are capacity clearing prices, not energy prices, so never add them to energy_settlement_point_price.
  • Day-ahead energy revenue for a resource-hour is awarded_quantity_mw multiplied by energy_settlement_point_price on the same row.

Interpretation

  • This subreport begins at RTC+B go-live on 2025-12-06, and is published on a 60-day regulatory delay.
  • These are day-ahead awards and offers, not real-time dispatch or settlement. A day-ahead award is a financial position; what the battery physically did is in the SCED storage file.

Access

Query from your own tools

Use the guarded HTTP endpoint directly, or connect an MCP client and load the dataset contract with describe_data before calling query_data.

HTTP endpoint
POST /api/v1/datasets/ercot_sixty_day_dam_esr_data/query

Need the full history of this dataset in Snowflake, Databricks or your own storage? Data services delivers it on a schedule.

Schema48

Column
Type
event_timeDateTime64(6, 'UTC')
qse_nameString
resource_nameString
dme_nameNullable(String)
resource_typeNullable(String)
qse_submitted_curve_mw1Nullable(Float64)
qse_submitted_curve_price1Nullable(Float64)
qse_submitted_curve_mw2Nullable(Float64)
qse_submitted_curve_price2Nullable(Float64)
qse_submitted_curve_mw3Nullable(Float64)
qse_submitted_curve_price3Nullable(Float64)
qse_submitted_curve_mw4Nullable(Float64)
qse_submitted_curve_price4Nullable(Float64)
qse_submitted_curve_mw5Nullable(Float64)
qse_submitted_curve_price5Nullable(Float64)
qse_submitted_curve_mw6Nullable(Float64)
qse_submitted_curve_price6Nullable(Float64)
qse_submitted_curve_mw7Nullable(Float64)
qse_submitted_curve_price7Nullable(Float64)
qse_submitted_curve_mw8Nullable(Float64)
qse_submitted_curve_price8Nullable(Float64)
qse_submitted_curve_mw9Nullable(Float64)
qse_submitted_curve_price9Nullable(Float64)
qse_submitted_curve_mw10Nullable(Float64)
qse_submitted_curve_price10Nullable(Float64)
hslNullable(Float64)
lslNullable(Float64)
resource_statusNullable(String)
awarded_quantity_mwNullable(Float64)
settlement_point_nameNullable(String)
energy_settlement_point_priceNullable(Float64)
regup_awarded_mwNullable(Float64)
regup_mcpcNullable(Float64)
regdn_awarded_mwNullable(Float64)
regdn_mcpcNullable(Float64)
rrspfr_awarded_mwNullable(Float64)
rrsffr_awarded_mwNullable(Float64)
rrsufr_awarded_mwNullable(Float64)
rrs_mcpcNullable(Float64)
ecrssd_awarded_mwNullable(Float64)
ecrs_mcpcNullable(Float64)
nonspin_awarded_mwNullable(Float64)
nonspin_mcpcNullable(Float64)
disclosure_dateNullable(Date)
emil_idNullable(String)
doc_idInt64
subreport_memberString
ingested_atDateTime64(6, 'UTC')

Sample data

event_timeqse_nameresource_namedme_nameresource_typeqse_submitted_curve_mw1qse_submitted_curve_price1qse_submitted_curve_mw2qse_submitted_curve_price2qse_submitted_curve_mw3qse_submitted_curve_price3qse_submitted_curve_mw4qse_submitted_curve_price4qse_submitted_curve_mw5qse_submitted_curve_price5qse_submitted_curve_mw6qse_submitted_curve_price6qse_submitted_curve_mw7qse_submitted_curve_price7qse_submitted_curve_mw8qse_submitted_curve_price8qse_submitted_curve_mw9qse_submitted_curve_price9qse_submitted_curve_mw10qse_submitted_curve_price10hsllslresource_statusawarded_quantity_mwsettlement_point_nameenergy_settlement_point_priceregup_awarded_mwregup_mcpcregdn_awarded_mwregdn_mcpcrrspfr_awarded_mwrrsffr_awarded_mwrrsufr_awarded_mwrrs_mcpcecrssd_awarded_mwecrs_mcpcnonspin_awarded_mwnonspin_mcpcdisclosure_dateemil_iddoc_idsubreport_memberingested_at
2026-08-14 04:00:00.000000QTOTL5MYR_ESR2YTOTALESR∅∅∅∅∅∅∅∅∅∅∅∅∅∅∅∅∅∅∅∅72.9-72.9ON∅MYR_ALL27.55∅∅∅∅∅∅∅∅∅∅∅∅2026-10-12NP3-966-ER128546460860d_DAM_ESR_Data-12-OCT-26.csv2026-10-12 14:38:58.962482
2026-08-14 04:00:00.000000QTOTL5MYR_ESR1YTOTALESR-76.3-2500-249.9904999.9976.35000∅∅∅∅∅∅∅∅∅∅∅∅76.3-76.3ON0MYR_ALL27.5564.3190.50000.7501032026-10-12NP3-966-ER128546460860d_DAM_ESR_Data-12-OCT-26.csv2026-10-12 14:38:58.962482
2026-08-14 04:00:00.000000QTOTL5CTW_ESR1YTOTALESR∅∅∅∅∅∅∅∅∅∅∅∅∅∅∅∅∅∅∅∅150-150ON∅CTW_RN27.56∅∅∅∅∅∅∅∅∅∅∅∅2026-10-12NP3-966-ER128546460860d_DAM_ESR_Data-12-OCT-26.csv2026-10-12 14:38:58.962482
2026-08-14 04:00:00.000000QTOTL4DAN_ESR2YTOTALESR∅∅∅∅∅∅∅∅∅∅∅∅∅∅∅∅∅∅∅∅73.7-73.7ON∅DAN_ALL27.54∅∅∅∅∅∅∅∅∅∅∅∅2026-10-12NP3-966-ER128546460860d_DAM_ESR_Data-12-OCT-26.csv2026-10-12 14:38:58.962482
2026-08-14 04:00:00.000000QTOTL4DAN_ESR1YTOTALESR∅∅∅∅∅∅∅∅∅∅∅∅∅∅∅∅∅∅∅∅76.3-76.3ON∅DAN_ALL27.54∅∅∅∅∅∅∅∅∅∅∅∅2026-10-12NP3-966-ER128546460860d_DAM_ESR_Data-12-OCT-26.csv2026-10-12 14:38:58.962482
2026-08-14 04:00:00.000000QTOT16HRMS_SLR_ESR1YBELSTESR∅∅∅∅∅∅∅∅∅∅∅∅∅∅∅∅∅∅∅∅100-100ONTEST∅HRMS_SLR_RN27.66∅∅∅∅∅∅∅∅∅∅∅∅2026-10-12NP3-966-ER128546460860d_DAM_ESR_Data-12-OCT-26.csv2026-10-12 14:38:58.962482
2026-08-14 04:00:00.000000QTENSKEUNICE_ESR1Y2WPERESR∅∅∅∅∅∅∅∅∅∅∅∅∅∅∅∅∅∅∅∅22-8ON∅EUNICE_ALL27.74∅∅∅∅∅∅∅∅∅∅∅∅2026-10-12NP3-966-ER128546460860d_DAM_ESR_Data-12-OCT-26.csv2026-10-12 14:38:58.962482
2026-08-14 04:00:00.000000QTEN37SEVNF_ES_ESR1YSEVFLESR∅∅∅∅∅∅∅∅∅∅∅∅∅∅∅∅∅∅∅∅100-100ON∅SEVNF_ES_RN24.770100.50000.7501032026-10-12NP3-966-ER128546460860d_DAM_ESR_Data-12-OCT-26.csv2026-10-12 14:38:58.962482
2026-08-14 04:00:00.000000QTEN36TSECA_ES_ESR1YTIERSESR∅∅∅∅∅∅∅∅∅∅∅∅∅∅∅∅∅∅∅∅100-100ON∅TSECA_ES_RN29.940100.50000.7501032026-10-12NP3-966-ER128546460860d_DAM_ESR_Data-12-OCT-26.csv2026-10-12 14:38:58.962482
2026-08-14 04:00:00.000000QTEN34SLK_BESS_ESR1YMENTBESR∅∅∅∅∅∅∅∅∅∅∅∅∅∅∅∅∅∅∅∅200-200ON∅SLK_BESS_RN27.46∅∅∅∅∅∅∅∅∅∅∅∅2026-10-12NP3-966-ER128546460860d_DAM_ESR_Data-12-OCT-26.csv2026-10-12 14:38:58.962482
2026-08-14 04:00:00.000000QTEN34PIN_BESS_ESR1YPINTPESR∅∅∅∅∅∅∅∅∅∅∅∅∅∅∅∅∅∅∅∅200-200ON∅PIN_BESS_RN26.52∅∅∅∅∅∅∅∅∅∅∅∅2026-10-12NP3-966-ER128546460860d_DAM_ESR_Data-12-OCT-26.csv2026-10-12 14:38:58.962482
2026-08-14 04:00:00.000000QTEN34HEADCAMP_ESR1YMOMEHESR∅∅∅∅∅∅∅∅∅∅∅∅∅∅∅∅∅∅∅∅150-150ON∅HEADCAMP_RN27.49∅∅∅∅∅∅∅∅∅∅∅∅2026-10-12NP3-966-ER128546460860d_DAM_ESR_Data-12-OCT-26.csv2026-10-12 14:38:58.962482
2026-08-14 04:00:00.000000QTEN33SOLC_SLR_ESR2YIPQBESR∅∅∅∅∅∅∅∅∅∅∅∅∅∅∅∅∅∅∅∅160-160ON∅RN_SOLC_SLR26.49∅∅∅∅∅∅∅∅∅∅∅∅2026-10-12NP3-966-ER128546460860d_DAM_ESR_Data-12-OCT-26.csv2026-10-12 14:38:58.962482
2026-08-14 04:00:00.000000QTEN33SOLC_SLR_ESR1YIPQBESR∅∅∅∅∅∅∅∅∅∅∅∅∅∅∅∅∅∅∅∅160-160ON∅RN_SOLC_SLR26.49∅∅∅∅∅∅∅∅∅∅∅∅2026-10-12NP3-966-ER128546460860d_DAM_ESR_Data-12-OCT-26.csv2026-10-12 14:38:58.962482
2026-08-14 04:00:00.000000QTEN33QTUM_SLR_ESR2YIPQB2ESR∅∅∅∅∅∅∅∅∅∅∅∅∅∅∅∅∅∅∅∅160-160ON∅RN_QTUM_SLR25.42∅∅∅∅∅∅∅∅∅∅∅∅2026-10-12NP3-966-ER128546460860d_DAM_ESR_Data-12-OCT-26.csv2026-10-12 14:38:58.962482
2026-08-14 04:00:00.000000QTEN33QTUM_SLR_ESR1YIPQB2ESR∅∅∅∅∅∅∅∅∅∅∅∅∅∅∅∅∅∅∅∅160-160ON∅RN_QTUM_SLR25.42∅∅∅∅∅∅∅∅∅∅∅∅2026-10-12NP3-966-ER128546460860d_DAM_ESR_Data-12-OCT-26.csv2026-10-12 14:38:58.962482
2026-08-14 04:00:00.000000QTEN32BEXAR_ES_ESR1YBEXESESR∅∅∅∅∅∅∅∅∅∅∅∅∅∅∅∅∅∅∅∅100-100ON∅BEXAR_ES_RN27.97∅∅∅∅∅∅∅∅∅∅∅∅2026-10-12NP3-966-ER128546460860d_DAM_ESR_Data-12-OCT-26.csv2026-10-12 14:38:58.962482
2026-08-14 04:00:00.000000QTEN32ARY_BESS_ESR1YBTCSESR∅∅∅∅∅∅∅∅∅∅∅∅∅∅∅∅∅∅∅∅00ONTEST∅ARY_BESS_RN24.99∅∅∅∅∅∅∅∅∅∅∅∅2026-10-12NP3-966-ER128546460860d_DAM_ESR_Data-12-OCT-26.csv2026-10-12 14:38:58.962482
2026-08-14 04:00:00.000000QTEN30UTOPIA_ESR1YREGUTESR∅∅∅∅∅∅∅∅∅∅∅∅∅∅∅∅∅∅∅∅9.9-9.9ON∅UTOPIA_RN28.71∅∅∅∅∅∅∅∅∅∅∅∅2026-10-12NP3-966-ER128546460860d_DAM_ESR_Data-12-OCT-26.csv2026-10-12 14:38:58.962482
2026-08-14 04:00:00.000000QTEN30PIRATE_ESR1YREGSIESR-4.5-2500-250050009.85000∅∅∅∅∅∅∅∅∅∅∅∅9.8-4.5ON0PIRATE_RN26.350100.50000.7501032026-10-12NP3-966-ER128546460860d_DAM_ESR_Data-12-OCT-26.csv2026-10-12 14:38:58.962482
2026-08-14 04:00:00.000000QTEN30PALACIOS_ESR1YREGPAESR-2.5-2500-250050009.95000∅∅∅∅∅∅∅∅∅∅∅∅9.9-2.5ON0PALACIOS_RN27.360100.50000.7501032026-10-12NP3-966-ER128546460860d_DAM_ESR_Data-12-OCT-26.csv2026-10-12 14:38:58.962482
2026-08-14 04:00:00.000000QTEN30MUENSTER_ESR1YREGMUESR-5-2500-250050009.95000∅∅∅∅∅∅∅∅∅∅∅∅5-5ON0MUENSTER_RN27.420100.50000.7501032026-10-12NP3-966-ER128546460860d_DAM_ESR_Data-12-OCT-26.csv2026-10-12 14:38:58.962482
2026-08-14 04:00:00.000000QTEN30MOORE_FL_ESR1YREGISESR-2-2500-250022.570.222.570.225.760.325.760.350009.95000∅∅∅∅9.9-2ON0.2MOORE_FL_RN24.260100.50000.7501032026-10-12NP3-966-ER128546460860d_DAM_ESR_Data-12-OCT-26.csv2026-10-12 14:38:58.962482
2026-08-14 04:00:00.000000QTEN30MILTON_ESR1YREGMIESR∅∅∅∅∅∅∅∅∅∅∅∅∅∅∅∅∅∅∅∅00OUT∅MILTON_RN27.74∅∅∅∅∅∅∅∅∅∅∅∅2026-10-12NP3-966-ER128546460860d_DAM_ESR_Data-12-OCT-26.csv2026-10-12 14:38:58.962482
2026-08-14 04:00:00.000000QTEN30MEDINA1_ESR1YREMEDESR∅∅∅∅∅∅∅∅∅∅∅∅∅∅∅∅∅∅∅∅9.9-9.9ONTEST∅MEDINA1_RN28.16∅∅∅∅∅∅∅∅∅∅∅∅2026-10-12NP3-966-ER128546460860d_DAM_ESR_Data-12-OCT-26.csv2026-10-12 14:38:58.962482

Coverage

Published on a 60-day disclosure lag — ERCOT releases these reports 60 days after the fact, so the most recent ~60 days aren’t available yet. That trailing window is expected, not a gap in the data.

100.0% complete0 gap days252 days with data
Show coverage history
Coverage: 100.0%Days with data: 252Gaps: 0
2026
2025
gaplessmore