ERCOT logo

Current Supply, Demand & Intraday Forecast

ERCOT's public real-time supply and demand dashboard at five-minute resolution.

Native record
series x target interval x publication vintage
5-minute publication cadence
Evidence
Mixed evidence
Multiple evidence types kept distinct in the contract
Time basis
Point-in-time records
UTC · event_time

Overview

This is the preferred dataset for a current actual-versus-forecast demand comparison: series='realized' reports observed demand_mw and committed capacity_mw; series='intraday_forecast' reports demand_mw, capacity_mw, and available_mw for the same target event_time at successive source_time vintages; and series='forward_forecast' reports forecasted_demand_mw and avail_cap_gen_mw farther ahead. Operators, traders, and researchers use it to measure current forecast error, headroom, and how forecasts converge toward realized demand.

Query contract

Filter series explicitly. For a current actual-versus-forecast comparison, resolve the latest series='realized' event_time, then select series='intraday_forecast' at that exact event_time with the greatest source_time no later than event_time. Keep target and issue time in the result.

Analysis rules

  • Never aggregate realized and forecast series together.
  • series='realized' uses demand_mw as observed gross system demand. series='intraday_forecast' uses demand_mw as forecast gross demand. Compare those values only at the same event_time and report actual minus forecast with its sign.

Related analysis

  • settled historical demand after the live window · aggregate both series to compatible 15-minute interval-ending buckets before comparison

Interpretation

  • event_time is the observation or forecast target. source_time is the forecast issue time; realized rows use a 1970 sentinel and do not represent a publication vintage.
  • A current intraday demand forecast miss is a gross-demand error. Generation output, renewable shortfalls, and available capacity are different quantities and do not directly cause that arithmetic error.

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_supply_demand/query

Schema13

Column
Type
event_timeDateTime64(6, 'UTC')
seriesLowCardinality(String)
source_timeDateTime64(6, 'UTC')
demand_mwNullable(Float64)
capacity_mwNullable(Float64)
available_mwNullable(Float64)
forecasted_demand_mwNullable(Float64)
avail_cap_gen_mwNullable(Float64)
hour_endingNullable(Int32)
intervalNullable(Int32)
delivery_dateNullable(String)
dst_flagNullable(Bool)
ingested_atDateTime64(6, 'UTC')

Sample data

event_timeseriessource_timedemand_mwcapacity_mwavailable_mwforecasted_demand_mwavail_cap_gen_mwhour_endingintervaldelivery_datedst_flagingested_at
2026-10-01 05:00:00.000000forward_forecast2026-09-25 02:25:00.000000∅∅∅624269518324∅2026-09-30false2026-09-25 02:28:20.206532
2026-10-01 05:00:00.000000forward_forecast2026-09-25 02:20:00.000000∅∅∅624269518324∅2026-09-30false2026-09-25 02:23:20.568379
2026-10-01 05:00:00.000000forward_forecast2026-09-25 02:15:00.000000∅∅∅624269518324∅2026-09-30false2026-09-25 02:18:20.642883
2026-10-01 05:00:00.000000forward_forecast2026-09-25 02:10:00.000000∅∅∅624269518324∅2026-09-30false2026-09-25 02:13:20.065358
2026-10-01 05:00:00.000000forward_forecast2026-09-25 02:05:00.000000∅∅∅623629518324∅2026-09-30false2026-09-25 02:08:19.742022
2026-10-01 05:00:00.000000forward_forecast2026-09-25 02:00:00.000000∅∅∅623629518324∅2026-09-30false2026-09-25 02:03:20.868951
2026-10-01 05:00:00.000000forward_forecast2026-09-25 01:55:00.000000∅∅∅623629518324∅2026-09-30false2026-09-25 01:58:20.341411
2026-10-01 05:00:00.000000forward_forecast2026-09-25 01:50:00.000000∅∅∅623629518324∅2026-09-30false2026-09-25 01:53:20.266820
2026-10-01 05:00:00.000000forward_forecast2026-09-25 01:45:00.000000∅∅∅623629518324∅2026-09-30false2026-09-25 01:48:20.423750
2026-10-01 05:00:00.000000forward_forecast2026-09-25 01:40:00.000000∅∅∅623629518324∅2026-09-30false2026-09-25 01:43:20.236635
2026-10-01 05:00:00.000000forward_forecast2026-09-25 01:35:00.000000∅∅∅623629527324∅2026-09-30false2026-09-25 01:38:21.351146
2026-10-01 05:00:00.000000forward_forecast2026-09-25 01:30:00.000000∅∅∅623629527324∅2026-09-30false2026-09-25 01:33:22.013898
2026-10-01 05:00:00.000000forward_forecast2026-09-25 01:25:00.000000∅∅∅623629527324∅2026-09-30false2026-09-25 01:28:20.276549
2026-10-01 05:00:00.000000forward_forecast2026-09-25 01:20:00.000000∅∅∅623629527324∅2026-09-30false2026-09-25 01:23:20.003947
2026-10-01 05:00:00.000000forward_forecast2026-09-25 01:15:00.000000∅∅∅623629527324∅2026-09-30false2026-09-25 01:18:21.277674
2026-10-01 05:00:00.000000forward_forecast2026-09-25 01:10:00.000000∅∅∅623629527324∅2026-09-30false2026-09-25 01:13:20.218429
2026-10-01 05:00:00.000000forward_forecast2026-09-25 01:05:00.000000∅∅∅623509527324∅2026-09-30false2026-09-25 01:08:20.182725
2026-10-01 05:00:00.000000forward_forecast2026-09-25 01:00:00.000000∅∅∅623509527324∅2026-09-30false2026-09-25 01:03:20.288266
2026-10-01 05:00:00.000000forward_forecast2026-09-25 00:55:00.000000∅∅∅623509527324∅2026-09-30false2026-09-25 00:58:21.724657
2026-10-01 05:00:00.000000forward_forecast2026-09-25 00:50:00.000000∅∅∅623509527324∅2026-09-30false2026-09-25 00:53:19.703529
2026-10-01 05:00:00.000000forward_forecast2026-09-25 00:45:00.000000∅∅∅623509541424∅2026-09-30false2026-09-25 00:48:20.942771
2026-10-01 05:00:00.000000forward_forecast2026-09-25 00:40:00.000000∅∅∅623509541424∅2026-09-30false2026-09-25 00:43:19.779226
2026-10-01 05:00:00.000000forward_forecast2026-09-25 00:35:00.000000∅∅∅623509465424∅2026-09-30false2026-09-25 00:38:21.000842
2026-10-01 05:00:00.000000forward_forecast2026-09-25 00:30:00.000000∅∅∅623509465424∅2026-09-30false2026-09-25 00:33:19.788623
2026-10-01 05:00:00.000000forward_forecast2026-09-25 00:25:00.000000∅∅∅623509467424∅2026-09-30false2026-09-25 00:28:20.530799

Coverage

100.0% complete0 gap days133 days with data
Show coverage history
Coverage: 100.0%Days with data: 133Gaps: 0
2026
gaplessmore