Models and transparency
What the forecasts are built from, how they were tested and where they fail. The numbers below come from the latest training run.
Latest training run
Trained on data from Jan 1, 2018 to Oct 25, 2026 · Run on Oct 28, 2026
Each model was retrained at several past dates and asked to forecast days it had not seen. Lower error is better.
MAPE is the mean absolute percentage error. MASE is the mean absolute error scaled by the in-sample seasonal-naive error. Lower is better for both.
Demand
50 past dates from Nov 21, 2023 to Sep 15, 2026, each forecasting up to 30 days ahead.
| Method | MAPE | MASE | P10–P90 coverage |
|---|---|---|---|
| Volt-AI model | 1.9 % | 0.77 | 82 % |
| Seasonal naive | 3.4 % | 1.34 | 79 % |
| ETS | 3.4 % | 1.35 | 90 % |
- Against Seasonal naive, the model lowers the error by 42 % (better on 46 of 50 dates).
- Against ETS, the model lowers the error by 43 % (better on 45 of 50 dates).
Error by days ahead
MASE at each horizon. Lower is better.
- Volt-AI model
- Seasonal naive
- ETS
Does the 80 % range hold?
Share of real days that fell inside the P10 to P90 band. The target is 80 %.
- Uncalibrated
- 60 %
- Calibrated
- 82 %
- Target
- 80 %
Spot price
50 past dates from Nov 21, 2023 to Sep 15, 2026, each forecasting up to 14 days ahead.
| Method | MAPE | MASE | P10–P90 coverage |
|---|---|---|---|
| Volt-AI model | 28.4 % | 1.48 | 81 % |
| Seasonal naive | 40.8 % | 2.23 | 77 % |
| ETS | 34.3 % | 1.73 | 83 % |
- Against Seasonal naive, the model lowers the error by 33 % (better on 42 of 50 dates).
- Against ETS, the model lowers the error by 14 % (better on 36 of 50 dates).
Error by days ahead
MASE at each horizon. Lower is better.
- Volt-AI model
- Seasonal naive
- ETS
Does the 80 % range hold?
Share of real days that fell inside the P10 to P90 band. The target is 80 %.
- Uncalibrated
- 67 %
- Calibrated
- 81 %
- Target
- 80 %
Live track record
Every day Volt-AI stores its forecast before the outcome is known and never changes it afterwards. Here they are compared with what happened.
Demand
10 forecasts scored, for days between Oct 22, 2026 and Oct 25, 2026. Another 140 are waiting for XM to publish the day's complete price. The forecast was closer than the reference in 30 % of the cases.
| Days ahead | Forecasts | Model error | Reference error | Inside the range |
|---|---|---|---|---|
| 1 to 3 days | 9 | 1.3 % | 1.1 % | 100 % |
| 4 to 7 days | 1 | 0.2 % | 0.1 % | 100 % |
Reference: demand on the same weekday of the previous week.
Spot price
10 forecasts scored, for days between Oct 22, 2026 and Oct 25, 2026. Another 60 are waiting for XM to publish the day's complete price. The forecast was closer than the reference in 60 % of the cases.
| Days ahead | Forecasts | Model error | Reference error | Inside the range |
|---|---|---|---|---|
| 1 to 3 days | 9 | 14.9 % | 25.6 % | 100 % |
| 4 to 7 days | 1 | 6.6 % | 15.9 % | 100 % |
Reference: the last complete price when the forecast was made.
While the record is short, these figures move a lot from one day to the next. The backtest results above give the broader evaluation.
Method
Gradient-boosted trees (LightGBM) with quantile objectives produce the 10th, 50th and 90th percentile. Inputs are only what is known on the forecast day: recent history, reservoir and inflow levels, the climate index, the calendar and, for the price, the programmed dispatch cost XM publishes before it settles prices. Intervals are calibrated on past errors.
What to keep in mind
Prices react to events no model sees coming, such as plant outages, regulation or sudden rain, which is why every forecast comes with a range. The forecast is a statistical estimate that supports decisions, and backtests describe the past.
Read the full model card