VoltSight
← Research

Forecasting electricity prices in a volatile market

A case study · Australian National Electricity Market

Mohammed Osman Gani · Zhipeng He · Chun Ouyang · Sara Khalifa

Energy Transition Centre & School of Information Systems, Queensland University of Technology

Act I · Volatility

NEM prices at a glance

A week of half-hourly Regional Reference Prices in Queensland sets out three structural conditions that any forecaster has to handle. Each appears in a different hour of the day, and each carries different downstream stakes.

-3001001kA$/MWH12 Aug13 Aug14 Aug15 Aug16 Aug17 Aug18 Aug19 Aug

↗ Midday negatives (solar oversupply)

↗ Evening spike (ramp + peak demand)

↗ Direction-flip hours

Act I · Volatility

One spike, two views

On a single evening, the settled price climbed past $1,100, sixteen times the week's typical level. AEMO's predispatch forecast, published 24 hours earlier, placed that same half-hour near the market price cap, an over-forecast of roughly an order of magnitude, and held that level after the settled price had already fallen back. The failure is one of magnitude and persistence rather than detection.

-3001001k10kA$/MWH06:0012:0018:0016 Aug

The size of the vertical gap on that hour is the forecast value at stake for every battery, retailer, and trader acting on the official forward path.

Act II · Diagnosis

Where models actually fail

A single average error number hides where forecast errors actually live. Decomposed across the 48 half-hour intervals of the day, three structural failure windows appear — and every model studied falls into all three.

MAE
0100200300A$/MWH0h6h12h18h24hHOUR

Evening volatility window

sMAPE
020406080100%0h6h12h18h24hHOUR

Midday negative-price window

MDA
020406080%0h6h12h18h24hHOUR

Direction-flip hours

  • LSTM
  • CNN-LSTM
  • Transformer
  • TimeMixer
  • TimeXer

Act II · Diagnosis

The leaderboard surprise

Selecting a Region, Horizon, and Metric changes the ranking of the models. The benchmark's principal results show: the standard deep-learning baselines (LSTM, CNN-LSTM and Transformer) rank among the top three in nearly every setting, and none generalises across the market. Architectural sophistication alone therefore does not transfer to this market, which points toward volatility-aware modelling rather than further architectural sophistication.

The three marked models are the architectures EPF studies already rely on. Switch region, horizon, or metric: they hold the top ranks nearly every time, and the newer benchmark models re-shuffle below them. Test-split values.

Region
Horizon
Metric
  1. #1TransformerTransformer · standard in EPF54.94A$/MWh
  2. #2LSTMRNN · standard in EPF57.88A$/MWh
  3. #3MambaSSM58.70A$/MWh
  4. #4CNN-LSTMHybrid · standard in EPF59.03A$/MWh
  5. #5TimeXerTransformer65.85A$/MWh
  6. #6TimesNetCNN75.25A$/MWh
  7. #7iTransformerTransformer75.47A$/MWh
  8. #8DLinearLinear77.64A$/MWh
  9. #9TimeMixerMLP88.81A$/MWh

Act II · Diagnosis

The extreme prices are where it collapses

Restricted to the spike and crash prices, day-ahead MAE inflates roughly five-fold for every baseline and recent time-series model. Neither regime is solved by newer architectures.

Day-ahead (24 h) horizon.

Extreme prices · top & bottom 5%
TimeXer330LSTM337Transformer337CNN-LSTM341Mamba342TimesNet355iTransformer356TimeMixer359DLinear3710100200300400MAE · A$/MWH
Negative prices
TimeXer69CNN-LSTM69LSTM70Mamba72TimeMixer75TimesNet76iTransformer77Transformer79DLinear89020406080MAE · A$/MWH

Bridge

Spikes and crashes break things differently

The two regimes are not similar. Spike prices run past $15,000 while crashes never fall below −$200 and each arrives by a different mechanism. Spikes are scarcity: evening demand climbs just as solar falls away. Crashes are oversupply: midday demand sinks toward a solar supply that holds firm. A correction designed for one direction is not the correction needed for the other.

Spikesskewness 6.99
0200400600COUNT2493502.5k16kA$/MWH02k4kPRICE A$/MWH02k4k6k8kDEMAND · SOLAR AVAIL. (MW)15h18h20hHOUR OF DAY

Demand climbs as solar falls away → price spikes

Scarcity — the demand–solar gap blows out into the evening peak.

Crashesskewness -7.84
0200400600COUNT-200-65-46-39A$/MWH-500PRICE A$/MWH02k4kDEMAND · SOLAR AVAIL. (MW)10h13h15hHOUR OF DAY

Demand sinks toward steady solar → price goes negative

Oversupply — solar covers most of a shrinking midday load.

Act III · Treatment

A gated tail-residual network

The treatment augments the base forecasts rather than replacing it. A convolutional (CNN) encoder extracts local temporal patterns from the raw input window, and an adapter conditions a FiLM layer on the base model’s own representation so that the resulting features are sensitive to tail behaviour. Two non-negative residual heads, one for upward and one for downward deviations, propose asymmetric corrections, and a horizon-wise soft gate determines at each forecast step how much of each correction to apply. Training proceeds in two stages: the base model is fitted first and then frozen, so the correction module learns only the tail residuals and normal-regime forecasts remain essentially unchanged from the base forecast.

conditioningbase forecastBase modelLSTM · Transformer ·MLP · TCNInput windowCNN encoderpre-event patternsAdaptermaps base featuresFiLM modulationtail-sensitive featuresSpike head (+)upward residual ≥ 0Crash head (−)downward residual ≥ 0
Horizon-wise soft gate
per-step//t+1 … t+48
Gated mixture
Corrected forecastfrozen in stage 2TWO-STAGE TRAININGStage 1 — fit the base forecaster, then freeze it.Stage 2 — train only the correction module on the frozen base.

Act III · Treatment

Asymmetric correction

The window below covers a single 24-hour day-ahead horizon that contains both failure modes: a midday crash into negative prices and an evening spike. During normal hours the gate holds p(normal) close to one, and the corrected output remains close to the base forecast. As the spike develops, p(spike) rises and the spike head, which is non-negative by construction, adds upward magnitude; around the midday crash, p(crash) rises and the crash head returns the forecast below zero. In both events the corrected forecast recovers a substantial share of the base model's error, although a residual gap to the actual price remains.

05001k1.5kA$/MWH0h6h12h18h24hHORIZON STEP (0.5H)MIDDAY DIP · 09:30–14:000actualbase forecast+ GTR-Net

Horizon-wise gate — regime weight per step

spikenormalcrash

Applied correctionper step

-20002004006008001kA$/MWH0h6h12h18h24hHORIZON STEP (0.5H)

Hour 18.0 · base 513 → GTR 1419 (actual 1787) · 0.83 · 0.02

Act III · Treatment

It works

Across every base model studied and across QLD and NSW, the tail-residual treatment concentrates its gain on the spike and crash regimes. Crash-regime error falls by 12% to 52% depending on the base model, and the weaker the base model on the tails, the more it gains. Normal-regime accuracy is not sacrificed: it improves too, by a smaller margin. Every comparison is significant at p < 0.001 under a Diebold–Mariano test with small-sample correction. Toggle base and region to inspect.

Note: spike = actual price at or above the 95th percentile, crash = at or below the 5th, the rest normal. Bar values are mean absolute error in A$/MWh on the day-ahead horizon; lower is better.

Base
Region
Normal hours−5.0 A$/MWh
Transformer35.3
Transformer+GTR-Net30.3
Spike hours−17.4 A$/MWh
Transformer278.4
Transformer+GTR-Net261.1
Crash hours−21.6 A$/MWh
Transformer55.2
Transformer+GTR-Net33.7

Open threads

Where the work goes next

The forecasting feeds AI-driven battery orchestration; tail accuracy is what unlocks the operational value that project delivers.

Code released alongside publication. ← Research · Contact the group