SPP logo

SPP Load Forecast

SPP's demand forecast in long form: issued_at (when SPP published it), event_time (the hour or interval being forecast), horizon, baa (SPP East or SWPW West), and forecast_mw.

Native record
BAA x horizon x target interval x issue vintage
reissued per vintage; two products at different resolutions publication cadence
Evidence
Forecast data
Forward-looking values with an explicit issue time
Time basis
Interval-start records
UTC · event_time

Overview

History reaches 2017, with named East/West footprints available around the 2026 expansion; older blank BAA rows have unknown footprint. Targets run out to seven days ahead. The horizon column separates SPP's two published products: 'short_term' (STLF, five-minute targets) and 'mid_term' (MTLF, hourly targets out seven days). They are different forecasts at different resolutions and must never be mixed in one series. Issue time and target time are separate columns, so this table supports both 'what does SPP expect' and 'what did SPP expect N hours out'.

Query contract

Filter baa and horizon first — it is the product selector, not a detail. Then take one issued_at: the latest for the current expectation, or the latest earlier than event_time for forecast accuracy.

Analysis rules

  • Choose exactly one horizon before aggregating. short_term and mid_term are separate SPP products at different resolutions; a series that mixes them is not a forecast SPP ever published.
  • Never average or sum across issue vintages or balancing authorities.

Interpretation

  • Historical archive vintages may be reconstructed from source filenames or delivery time. Validate issue-time provenance before using old rows in a forecast-skill evaluation.
  • Select baa=SPP for East or baa=SWPW for West. Blank baa is unknown, not a combined-market total.

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

Need the full history of this dataset in Snowflake, Databricks or your own storage? Data services delivers it on a schedule.

Schema5

Column
Type
baaLowCardinality(String)
issued_atDateTime64(6, 'UTC')
event_timeDateTime64(6, 'UTC')
horizonLowCardinality(String)
forecast_mwNullable(Float64)

Sample data

baaissued_atevent_timehorizonforecast_mw
SPP2026-10-12 07:00:00.0000002026-10-19 07:00:00.000000mid_term25638
SWPW2026-10-12 07:00:00.0000002026-10-19 07:00:00.000000mid_term2282
SWPW2026-10-12 07:00:00.0000002026-10-19 06:00:00.000000mid_term2377
SPP2026-10-12 07:00:00.0000002026-10-19 06:00:00.000000mid_term26185
SWPW2026-10-12 06:00:00.0000002026-10-19 06:00:00.000000mid_term2377
SPP2026-10-12 06:00:00.0000002026-10-19 06:00:00.000000mid_term26185
SPP2026-10-12 06:00:00.0000002026-10-19 05:00:00.000000mid_term27574
SPP2026-10-12 05:00:00.0000002026-10-19 05:00:00.000000mid_term27559
SWPW2026-10-12 05:00:00.0000002026-10-19 05:00:00.000000mid_term2616
SWPW2026-10-12 07:00:00.0000002026-10-19 05:00:00.000000mid_term2638
SWPW2026-10-12 06:00:00.0000002026-10-19 05:00:00.000000mid_term2638
SPP2026-10-12 07:00:00.0000002026-10-19 05:00:00.000000mid_term27574
SWPW2026-10-12 07:00:00.0000002026-10-19 04:00:00.000000mid_term2882
SPP2026-10-12 07:00:00.0000002026-10-19 04:00:00.000000mid_term28770
SWPW2026-10-12 06:00:00.0000002026-10-19 04:00:00.000000mid_term2882
SPP2026-10-12 06:00:00.0000002026-10-19 04:00:00.000000mid_term28770
SWPW2026-10-12 05:00:00.0000002026-10-19 04:00:00.000000mid_term2881
SPP2026-10-12 05:00:00.0000002026-10-19 04:00:00.000000mid_term28754
SWPW2026-10-12 04:00:00.0000002026-10-19 04:00:00.000000mid_term2880
SPP2026-10-12 04:00:00.0000002026-10-19 04:00:00.000000mid_term28772
SPP2026-10-12 06:00:00.0000002026-10-19 03:00:00.000000mid_term29884
SWPW2026-10-12 06:00:00.0000002026-10-19 03:00:00.000000mid_term2975
SWPW2026-10-12 05:00:00.0000002026-10-19 03:00:00.000000mid_term2975
SWPW2026-10-12 07:00:00.0000002026-10-19 03:00:00.000000mid_term2975
SPP2026-10-12 07:00:00.0000002026-10-19 03:00:00.000000mid_term29884

Coverage

100.0% complete0 gap days3,580 days with data
Show coverage history
Coverage: 100.0%Days with data: 3,580Gaps: 0
2026
2025
2024
2023
2022
2021
2020
2019
2018
2017
2016
gaplessmore