Balancing Authority Day-Ahead Demand Forecast

EIA-930 day-ahead demand forecast for every reporting balancing authority, keyed by ba.

One row per
balancing authority x forecast hour
Hourly cadence
Evidence
Forecast data
Forward-looking values with an explicit issue time
Time basis
Interval-end records
UTC · event_time

Overview

4.5M rows, 71 BAs, 2019-01 through the next day. One forecast per hour, latest submission; join atg.ba_load on (ba, event_time) for forecast error.

Query contract
One row per (ba, event_time) is already the latest EIA submission; read it plainly.
Analysis rules
Filter ba to your scope's code with a direct WHERE; search_data returns the allowed value. One ba per query keeps a region's rows from mixing with another's.Forecast error is atg.ba_load.demand_mw minus forecast_mw for the same (ba, event_time).
Interpretation
event_time is EIA-930's HOUR-ENDING stamp: the row at 18:00 UTC is the 17:00-18:00 hour. To compare with an ISO's interval-start table, match this row at t with the ISO row at t - 1 hour.This is the day-ahead forecast only, the latest submission for each hour; it cannot show how a forecast changed as delivery approached.

Access

Download
Query it in SQL, download it, or read it with an API key. Download data
MCP
Connect an MCP client and load the contract with describe_data before calling query_data.ERCOT MCPCAISO MCPNYISO MCPPJM MCPSPP MCPMISO MCPISO-NE MCPBPA MCPAPI reference
HTTP endpoint
POST /api/v1/datasets/ba_load_forecast/query
Full history
Delivered to Snowflake, Databricks or your own storage on a schedule by Data services.
More coverage

Schema

4 columns
ColumnType
event_timeDateTime64(6, 'UTC')
baLowCardinality(String)
forecast_mwNullable(Float64)
source_timeNullable(DateTime64(6, 'UTC'))

Sample data

event_timebaforecast_mwsource_time
2026-11-03 23:00:00.000000SEC2532026-11-03 08:07:02.902206
2026-11-03 23:00:00.000000FMPP25302026-11-03 08:07:02.902206
2026-11-03 23:00:00.000000US4827832026-11-03 08:07:02.902206
2026-11-03 23:00:00.000000FLA27832026-11-03 08:07:02.902206
2026-11-03 22:00:00.000000FMPP25402026-11-03 08:07:02.902206
2026-11-03 22:00:00.000000FLA27892026-11-03 08:07:02.902206
2026-11-03 22:00:00.000000US4827892026-11-03 08:07:02.902206
2026-11-03 22:00:00.000000SEC2492026-11-03 08:07:02.902206
2026-11-03 21:00:00.000000US4828152026-11-03 08:07:02.902206
2026-11-03 21:00:00.000000SEC2502026-11-03 08:07:02.902206
2026-11-03 21:00:00.000000FMPP25652026-11-03 08:07:02.902206
2026-11-03 21:00:00.000000FLA28152026-11-03 08:07:02.902206
2026-11-03 20:00:00.000000FMPP25602026-11-03 08:07:02.902206
2026-11-03 20:00:00.000000SEC2442026-11-03 08:07:02.902206
2026-11-03 20:00:00.000000US4828042026-11-03 08:07:02.902206
2026-11-03 20:00:00.000000FLA28042026-11-03 08:07:02.902206
2026-11-03 19:00:00.000000FLA27862026-11-03 08:07:02.902206
2026-11-03 19:00:00.000000US4827862026-11-03 08:07:02.902206
2026-11-03 19:00:00.000000FMPP25502026-11-03 08:07:02.902206
2026-11-03 19:00:00.000000SEC2362026-11-03 08:07:02.902206
2026-11-03 18:00:00.000000SEC2292026-11-03 08:07:02.902206
2026-11-03 18:00:00.000000US4827192026-11-03 08:07:02.902206
2026-11-03 18:00:00.000000FLA27192026-11-03 08:07:02.902206
2026-11-03 18:00:00.000000FMPP24902026-11-03 08:07:02.902206
2026-11-03 17:00:00.000000SEC2132026-11-03 08:07:02.902206

Coverage

Complete
100.0%
Gap days
0
Days with data
2,864
Show coverage history
Coverage: 100.0%Days with data: 2,864Gaps: 0
2026
2025
2024
2023
2022
2021
2020
2019
gaplessmore