Query verified U.S. hourly electricity demand (MW) as EIA's own published national and regional totals from the EIA Grid Monitor (region-data).
Use this for "how much load for the whole country, or a region" questions. Filter by
`respondent` (US48 = the Lower-48 national total, or one of the 13 EIA regions — CAL, CAR,
CENT, FLA, MIDA, MIDW, NE, NW, NY, SE, SW, TEN, TEX), `data_date` (one day) or the
`data_date_from`/`data_date_to` range, and `hour_number`. To pin one specific UTC hour,
combine `data_date` + `hour_number`. Group by any of `respondent`, `respondent_level`
(national vs region), `data_date`, `hour_number`, or `datetime_utc`. `datetime_utc` and
`respondent_level` are grouping/output axes only — not filters. Pass each parameter as a
top-level key of `params` (flat — not nested under a `filter`, `filters`, or `where` key).
Example: `{"respondent": "US48", "data_date": "2026-06-10", "hour_number": 14}` for the
US48 total at one hour; add `"group_by": ["datetime_utc"]` over a
`data_date_from`/`data_date_to` range for a series. Returns JSON aggregates with citations
and optional row-level records when `include_records` is true.
`demand_mw` is EIA's OWN published demand total, served verbatim — the Adjusted series (the
same canonical definition as power.demand's `demand_mw`), NOT a sum exascale computed. This
closes power.demand's refusal of national/region totals (BA demand is non-additive across
balancing authorities). `demand_forecast_mw` is the same respondent-hour's day-ahead forecast,
so forecast-vs-actual misses need no second query.
History runs hourly from 2019-01-01 onward — this published series begins about 3.5 years later
than power.demand's balancing-authority history — and is served by default; the response
`as_of` is the knowledge cut. A query with NO calendar window and no calendar-axis `group_by`
defaults to the latest day with reported demand and says so in a `default_latest_day` note —
group by `data_date` or `datetime_utc`, or pass a date range, for a series over time. Pin
`as_of` to an earlier vintage to reproduce what was served then.
INVERTED additivity: `demand_mw` is ALREADY a published total, so it is NOT additive across
respondents — US48 already equals the sum of the 13 regions. A result spanning more than one
respondent without grouping by it carries a `respondent_aggregation` scope note and ranking
remainders omit the demand metrics: filter `respondent=US48` for the national total, or group
by `respondent` for the per-respondent series. Occasional source-quality anomalies (an hour EIA
did not publish; a rare impossible value EIA published) are served verbatim and cited, never altered.
Does not determine balancing-authority-level demand (use power.demand for the BA series),
demand before 2019-01-01, the raw un-Adjusted series (this route publishes the Adjusted series
only), plant, generator, county, or state attribution, installed capacity (use power.capacity),
monthly plant generation (use power.generation), retail sales, revenue, or customers (use
power.retail_sales), wholesale prices, or long-horizon forecasts (the forecast is day-ahead only).