Query Power Demand (national / region rollup)
query_power_demand_rollup_v1Query 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).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| params | No |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||