Hourly balancing authority operations
Demand, net generation and total interchange for each frame balancing authority and hour, from Form EIA-930. Values are as the authority reported them; EIA's adjusted and imputed values sit beside them and never replace them. Where EIA published an imputed value beside a reported one, EIA marked that report as replaced. The atlas leaves every marked demand hour out of every sum, mean and count and counts it as flagged; a marked net-generation or interchange hour only when it is at least 1.5 times the largest unmarked magnitude of the authority's year.
At a glance
- Period
- 2015-07-01 07:00 UTC – 2026-09-06 07:00 UTCbalancing authority x UTC hour (hour-ending)
- One row is
- frame balancing authority x UTC hour (hour-ending)
- Built from source rows of
- balancing authority x UTC hour (hour-ending)
- Evidence and method
- reported · directReported values as filed; EIA-adjusted and EIA-imputed columns kept beside them and never substituted for a reported value. An EIA-imputed value beside a reported one is EIA's mark that it replaced that report. Every marked demand hour is left out of every sum, mean and hours count and counted as flagged; a marked net-generation or interchange hour only when it is at least 1.5 times the largest unmarked magnitude of the authority's year, the others staying as reported. Frame authorities only enter the release.
- Origin
- U.S. EIA Form 930 Hourly and Daily Balancing Authority Operations Report: demand, net generation, total interchange, day-ahead demand forecast per balancing authority and UTC hour ↗Source notice and licenceLicence: CC-BY-4.0
- Edition in this release
- PUDL v2026.9.0 (embedded 2026.8.1.dev50) ·
core_eia930__hourly_operations· retrieved 2026-09-29 - Download
- ba_hourly_930.parquet ↓1,533,384 rows · 20.1 MB
Measures
| Column | Unit | What it measures |
|---|---|---|
demand_reported_mwh | MWh | Demand as the balancing authority reported it, one hourly integrated value per hour-ending UTC interval. An hour whose EIA-imputed column carries a value is one EIA marked as replaced (EIA's documented triggers: missing, zero, negative, or at least 1.5 times the authority's past maximum, none a valid demand); every such hour is counted as flagged and never summed. |
net_generation_reported_mwh | MWh | Metered output of the generating units in the authority's system as it reported it, per hour-ending UTC interval. An hour whose EIA-imputed column carries a value is one EIA marked as replaced. Zeros and small negatives are real here, so a marked hour is counted as flagged and never summed only when its magnitude is at least 1.5 times the largest unmarked magnitude of the authority's UTC year (or the year has no unmarked hour); other marked hours are summed as reported. |
interchange_reported_mwh | MWh | Net metered flow with all directly interconnected authorities as reported, per hour-ending UTC interval; positive is net outflow, negative is net inflow. An hour whose EIA-imputed column carries a value is one EIA marked as replaced (EIA's documented rule: beyond 1.5 times the authority's past extremes, imputed as 0), which catches ordinary imports of an authority that usually exports. A marked hour is counted as flagged and never summed only when its magnitude is at least 1.5 times the largest unmarked magnitude of the authority's UTC year (or the year has no unmarked hour); other marked hours are summed as reported. |
Coverage by balancing authority
Hours, balancing authority x UTC hour (hour-ending)| Authority | First hour | Last hour | Hours listed of expected | demand: reported | net generation: reported | interchange: reported |
|---|---|---|---|---|---|---|
| AvistaAVA | 2015-07-01 08:00 UTC | 2026-09-06 07:00 UTC | 98,040 of 98,040 h | 99.5%21 h replaced by EIA, left out · 35 h adjusted or imputed only · 409 h without any value | 99.5%21 h replaced by EIA, left out · 35 h adjusted or imputed only · 409 h without any value | 99.5%0 h adjusted or imputed only · 444 h without any value |
| Avangrid RenewablesAVRN · generation only | 2018-07-31 08:00 UTC | 2026-09-05 07:00 UTC | 70,992 of 70,992 h | Not applicable | 99.9%46 h replaced by EIA, left out · 0 h adjusted or imputed only · 0 h without any value | 99.9%46 h replaced by EIA, left out · 0 h adjusted or imputed only · 0 h without any value |
| Bonneville Power AdministrationBPAT | 2015-07-01 08:00 UTC | 2026-09-06 07:00 UTC | 98,040 of 98,040 h | 99.9%41 h adjusted or imputed only · 24 h without any value | 99.9%21 h adjusted or imputed only · 48 h without any value | 99.9%0 h adjusted or imputed only · 68 h without any value |
| Chelan County PUDCHPD | 2015-07-01 08:00 UTC | 2026-09-06 07:00 UTC | 98,040 of 98,040 h | 99.8%2 h replaced by EIA, left out · 134 h adjusted or imputed only · 24 h without any value | 99.8%134 h adjusted or imputed only · 24 h without any value | 99.8%0 h adjusted or imputed only · 157 h without any value |
| Douglas County PUDDOPD | 2015-07-01 08:00 UTC | 2026-09-06 07:00 UTC | 98,040 of 98,040 h | 97.1%2,516 h adjusted or imputed only · 360 h without any value | 97.1%1,895 h adjusted or imputed only · 981 h without any value | 97.1%0 h adjusted or imputed only · 2,876 h without any value |
| Grant PUDGCPD | 2015-07-01 08:00 UTC | 2026-09-06 07:00 UTC | 98,040 of 98,040 h | 100.0%2 h adjusted or imputed only · 24 h without any value | 100.0%2 h adjusted or imputed only · 24 h without any value | 100.0%5 h replaced by EIA, left out · 0 h adjusted or imputed only · 26 h without any value |
| GridforceGRID · generation only | 2015-07-01 08:00 UTC | 2026-09-05 07:00 UTC | 98,016 of 98,016 h | Not applicable | 99.9%69 h adjusted or imputed only · 0 h without any value | 99.9%0 h adjusted or imputed only · 69 h without any value |
| NaturEner Power WatchGWA · generation only | 2015-07-01 07:00 UTC | 2026-09-05 06:00 UTC | 98,016 of 98,016 h | Not applicable | 99.7%231 h adjusted or imputed only · 28 h without any value | 99.7%1 h replaced by EIA, left out · 0 h adjusted or imputed only · 259 h without any value |
| Idaho PowerIPCO | 2015-07-01 08:00 UTC | 2026-09-06 07:00 UTC | 98,040 of 98,040 h | 99.9%78 h adjusted or imputed only · 25 h without any value | 99.9%78 h adjusted or imputed only · 25 h without any value | 99.9%0 h adjusted or imputed only · 103 h without any value |
| NorthWestern EnergyNWMT | 2015-07-01 07:00 UTC | 2026-09-06 06:00 UTC | 98,040 of 98,040 h | 99.9%19 h replaced by EIA, left out · 74 h adjusted or imputed only · 24 h without any value | 99.9%11 h replaced by EIA, left out · 74 h adjusted or imputed only · 24 h without any value | 99.9%0 h adjusted or imputed only · 98 h without any value |
| PacifiCorp WestPACW | 2015-07-01 08:00 UTC | 2026-09-06 07:00 UTC | 98,040 of 98,040 h | 96.1%99 h replaced by EIA, left out · 3,529 h adjusted or imputed only · 192 h without any value | 96.1%98 h replaced by EIA, left out · 1,535 h adjusted or imputed only · 2,187 h without any value | 96.2%1 h replaced by EIA, left out · 0 h adjusted or imputed only · 3,722 h without any value |
| Portland General ElectricPGE | 2015-07-01 08:00 UTC | 2026-09-06 07:00 UTC | 98,040 of 98,040 h | 99.4%2 h replaced by EIA, left out · 52 h adjusted or imputed only · 528 h without any value | 99.3%1 h replaced by EIA, left out · 72 h adjusted or imputed only · 577 h without any value | 99.3%1 h replaced by EIA, left out · 0 h adjusted or imputed only · 676 h without any value |
| Puget Sound EnergyPSEI | 2015-07-01 08:00 UTC | 2026-09-06 07:00 UTC | 98,040 of 98,040 h | 86.5%292 h adjusted or imputed only · 12,908 h without any value | 86.5%289 h adjusted or imputed only · 12,913 h without any value | 86.2%0 h adjusted or imputed only · 13,540 h without any value |
| Seattle City LightSCL | 2015-07-01 08:00 UTC | 2026-09-06 07:00 UTC | 98,040 of 98,040 h | 99.9%8 h replaced by EIA, left out · 86 h adjusted or imputed only · 26 h without any value | 99.9%10 h replaced by EIA, left out · 85 h adjusted or imputed only · 27 h without any value | 99.9%3 h replaced by EIA, left out · 0 h adjusted or imputed only · 112 h without any value |
| Tacoma PowerTPWR | 2015-07-01 08:00 UTC | 2026-09-06 07:00 UTC | 98,040 of 98,040 h | 100.0%0 h adjusted or imputed only · 24 h without any value | 100.0%0 h adjusted or imputed only · 24 h without any value | 100.0%0 h adjusted or imputed only · 24 h without any value |
| NaturEner Wind WatchWWA · generation only | 2015-07-01 07:00 UTC | 2025-10-01 06:00 UTC | 89,880 of 89,880 h | Not applicable | 99.8%1 h replaced by EIA, left out · 190 h adjusted or imputed only · 2 h without any value | 99.8%12 h replaced by EIA, left out · 0 h adjusted or imputed only · 193 h without any value |
What is missing, and why
- Hour not listedHours between an authority's first and last listed hour with no row in the source0 BA-hours
- Reported, then replaced by the publisher · demandReported hours left out because EIA marked them by publishing its own imputed value beside the report: every marked demand hour, and a marked net-generation or interchange hour at least 1.5 times the largest unmarked magnitude of its authority and year. Left out of every sum, mean and hours-reported count, never substituted; other marked hours stay as reported151 BA-hours
- Listed without a reported value · demandListed hours with no reported value; an EIA-adjusted or EIA-imputed value may sit beside the null and never replaces it21,407 BA-hours6,839 with an adjusted or imputed value beside them
- Not applicable · demandListed hours of authorities EIA lists as generation-only, which report no value for this measure: AVRN, GRID, GWA, WWA356,904 BA-hours
- Reported, then replaced by the publisher · net generationReported hours left out because EIA marked them by publishing its own imputed value beside the report: every marked demand hour, and a marked net-generation or interchange hour at least 1.5 times the largest unmarked magnitude of its authority and year. Left out of every sum, mean and hours-reported count, never substituted; other marked hours stay as reported188 BA-hours
- Listed without a reported value · net generationListed hours with no reported value; an EIA-adjusted or EIA-imputed value may sit beside the null and never replaces it22,003 BA-hours4,710 with an adjusted or imputed value beside them
- Reported, then replaced by the publisher · interchangeReported hours left out because EIA marked them by publishing its own imputed value beside the report: every marked demand hour, and a marked net-generation or interchange hour at least 1.5 times the largest unmarked magnitude of its authority and year. Left out of every sum, mean and hours-reported count, never substituted; other marked hours stay as reported69 BA-hours
- Listed without a reported value · interchangeListed hours with no reported value; an EIA-adjusted or EIA-imputed value may sit beside the null and never replaces it22,367 BA-hours
- No row in the sourceFrame authorities with no row in the source table (generation-only, retired, or not an EIA-930 respondent; the table cannot tell which)0 balancing authorities
- Outside the atlas frameEIA-930 rows for balancing authorities outside the frame4,698,458 BA-hours
How often it changes
Checked 2026-09-21- Publisher
- Balancing authorities send EIA demand every hour, and demand, net generation and total interchange each morning for the previous day. EIA publishes them on its Grid Monitor and as six-month CSV files, the files PUDL integrates.www.eia.gov/electricity/930-content/about.html ↗www.eia.gov/survey/form/eia_930/instructions.pdf ↗docs.catalyst.coop/pudl/en/v2026.9.0/data_sources/eia930.html ↗
- Delay
- On EIA's Grid Monitor, demand is typically available one hour after the end of the operating hour; net generation and total interchange for each hour of yesterday are typically available by 11:00 a.m. Eastern time. This table is not that feed: its last hour is the one stated under coverage.www.eia.gov/electricity/930-content/about.html ↗
- This atlas
- The atlas reads this history through PUDL, which Catalyst Cooperative publishes as quarterly versioned releases. Each atlas release pins one PUDL version, named under edition; the table changes only when that pin moves. No timed refresh.docs.catalyst.coop/pudl/en/v2026.9.0/data_access.html ↗
Checks and corrections
- Passed
keys.ba_hourly_930_unique{"distinct":1533384,"rows":1533384} - Passed
history.930_hours_bounded{"months_over_hours_in_month":0} - Passed
history.930_frame_coverage{"authorities":16,"latest_month":"2026-09"} - Passed
history.930_flagged_hours_excluded{"first":{"demand":[],"generation":[],"interchange":[],"net_generation":[]},"generation_months_wrong":0,"months_wrong":{"demand":0,"interchange":0,"net_generation":0}} - Passed
history.930_marks_bounded{"limit":0.01,"measures":{"demand":{"marked":151,"reported":1155073,"share":0.000131},"interchange":{"marked":409,"reported":1511017,"share":0.000271},"net_generation":{"marked":565,"reported":1511381,"share":0.000374},"net_generation_by_source":{"marked":385,"reported":3949160,"share":0.000097}},"unit":"BA-hours (energy-source hours for net_generation_by_source)"}
No corrections apply to this dataset in this release. Earlier editions: not available (earlier releases did not retain per-dataset edition comparisons).
Release 20260929T050546Z-51ae0f7d3c78