Backtest

How does the model compare to reality when we look at historic power prices?


Backtesting means running the model over a past period and comparing its output to what actually happened. This checks that the model captures how SPP prices really behave, including the top-bottom (TB) price spreads and the around-the-clock (ATC) price. The charts below cover 2023 at SPP’s two trading hubs, SPP North and SPP South. Use the toggle at the top of each chart to switch between them. We use 2023 for our model calibration because this is the most recent year with detailed locational renewable capacity factor data from NREL.

Building a backtest

Real historical data is used wherever possible, which removes weather as a source of uncertainty and lets the more uncertain parts of the model (such as plant bidding curves) be calibrated accurately. Historical inputs include:

  • Metered EIA-930 demand (see Demand)
  • Wind and solar output for the year (see Generation)
  • The EIA-860 operating fleet for the period
  • Fuel prices from EIA-923 (see Commodity Prices)
  • Generator availability from the SPP outage feed

Key metrics

The headline metrics are measured over 2023. TB2 is the two-hour top-bottom price spread.

Hub Mean price difference vs historical (%) Average TB2 spread difference vs historical (%) Correlation between model and historical prices
SPP North +2.3 +1.0 0.79
SPP South +5.2 -3.6 0.76

Average prices are matched to 5% or better, with a correlation of around 0.77 showing the majority of the hour-to-hour price movement is captured.

The diagnostics below look at this in more detail:

  1. Raw price time series
  2. Monthly price averages
  3. Price distribution
  4. Intraday price shape

Hourly price time series

SPP’s large wind fleet sets the tone: when wind is strong and demand is low, prices fall close to zero; hot summer afternoons and winter cold snaps produce the spikes. The model reproduces both the calm stretches and the timing of the spikes. Drag across the chart to zoom into any period.

Monthly price averages

Prices are highest in summer, when demand for cooling peaks, and lowest in spring. The model follows the same seasonal pattern.

Price distribution

This compares how often prices fall in each range, for the model and the market. Most hours sit in a similar band of low-to-moderate prices, with prices occasionally going over $60 when older inefficient thermal generators are needed to match demand.

Intraday price shape

Because SPP has very little solar, prices do not dip significantly in the middle of the day, unlike many other markets. In fact, the typical “duck curve” is inverted, with the highest prices occurring in the late afternoon (around 4-5pm) as demand peaks. Conversely, prices are typically lowest overnight when demand is low and wind generation is at its highest.

Average price by zone

The distribution of prices between zones is captured well in our model. As an example, the highest price zone, WAUE, historically has a price around twice that of the lowest priced zone - Oklahoma (West). The main factor driving this price divergence is congestion effects preventing wind heavy regions from exporting during windy periods, leaving to negative localized prices.