Pereiti prie turinio

Tyrimai ir duomenys

Methodology, model cards and live track record

Every forecast is frozen when it is issued and scored once the real prices are known. This page explains the method, shows that live record, and gives each model a card with its inputs, training, evaluation and limits.

Live track record

Daily average error of every frozen forecast whose hours are now known, all zones. Lower is better.

Calculating…

Evaluation methodology

Data

Prices, load, generation, reservoirs, flows and balancing come from the ENTSO-E Transparency Platform, Energinet's Energi Data Service, the Baltic Transparency Dashboard and, for Great Britain, Elexon; weather forecasts from Open-Meteo. Each value is stored with the time it was published, so a model is only ever trained on what was known at the time.

Frozen forecasts

Each forecast is written to an append-only ledger with its issue time before the auction it predicts. Nothing in the ledger is edited afterwards; actual prices are added beside it when they are published.

Walk-forward backtests

Historical tests retrain the model on data up to each test period and predict only the period that follows, the way the model would have been used. These results are labelled retrospective; the live ledger is the prospective evidence.

Metrics

Mean absolute error of the median forecast, skill against persistence (tomorrow equals today) or the TSO's own forecast, and the share of actual values inside the 80% interval. Each model's median is then corrected by half of its typical miss per zone, hour and horizon over the last 60 days it was not trained on, and the intervals are calibrated with conformalised quantile regression on those same days. Everything is checked on data the model did not see.

Limits

Models learn from the past; regime changes (new interconnectors, synchronisation, fuel shocks) degrade them until enough new data exists. Errors are reported for every zone, including where models do worse than simple baselines.

Model cards

What each model is for, what it uses, how it was trained and tested, and where it should not be trusted.

Gradient-boosted price model (gbm)

Purpose:
Hourly day-ahead price quantiles (10/50/90%) for the next day, the day after and days 3-7, per zone.
Inputs:
Recent prices, TSO load and wind/solar forecasts, weather forecasts, calendar, reservoir levels for hydro zones, and the known auction prices for day 2.
Training:
Histogram gradient-boosting quantile models (scikit-learn) retrained on a rolling window; the median corrected by half of its recent held-out miss per zone, hour and horizon (in a 2023-2026 walk-forward test this lowered the error by 1.4%); intervals calibrated with conformalised quantile regression.
Evaluation:
Walk-forward backtest since 2022 and the live frozen ledger, against persistence.
Limits:
Price spikes above recent history are underpredicted; regime changes need weeks of new data.

Neural price model (qnet)

Purpose:
The same quantiles from a feed-forward network, as an independent second opinion.
Inputs:
As gbm.
Training:
Quantile (pinball) loss, early stopping on a later validation period; the same median correction and interval calibration as gbm.
Evaluation:
As gbm; shown beside it on the accuracy pages.
Limits:
More sensitive to input scaling shifts (for example a TSO changing its forecast scale).

Persistence baseline

Purpose:
Reference: tomorrow's hours equal today's.
Inputs:
Latest known day-ahead prices.
Training:
None.
Evaluation:
Scored in the same ledger.
Limits:
Ignores weather and calendar; the bar every model must clear.

Weekly baseline (weekly)

Purpose:
Reference: each hour equals the same hour one week earlier.
Inputs:
Day-ahead prices of the previous week.
Training:
None.
Evaluation:
Scored in the same ledger.
Limits:
Captures the weekly rhythm only; misses weather and fuel changes since then.

Learned wind and solar output (mlp, tcn, hybrid, *_multi)

Purpose:
Zone wind and solar output for the next day, to test against the TSO's own forecast.
Inputs:
Day-before weather forecasts at one city or several points per zone (radiation, wind at 10/100 m, temperature, precipitation); hybrid adds the TSO forecast shape.
Training:
Quantile networks trained walk-forward by quarter on earlier data only.
Evaluation:
Average error as a share of fleet size, skill vs TSO, 80% coverage, per zone.
Limits:
Pooled across zones they do not yet beat the TSOs; where the published 'actual' is itself an estimate the test is flagged as not fair.

Battery screener

Purpose:
Revenue per MW from day-ahead trading and reserves per zone and year; project NPV, IRR and payback.
Inputs:
Day-ahead prices, Energinet reserve prices (FCR-N, FCR-D, aFRR, mFRR), imbalance prices, forecast capture from the backtest.
Training:
Exact daily dynamic programme with losses and a wear cost; no fitted parameters.
Evaluation:
Hindsight value scaled by the share our forecasts actually captured.
Limits:
No intraday, no grid fees or taxes; Baltic reserve prices are an assumption.

PPA capture model

Purpose:
Capture rate and negative-price exposure as wind or solar penetration grows.
Inputs:
Hourly prices, measured or TSO-forecast output and load per zone and year since 2019.
Training:
Least squares with zone intercepts and one common slope per technology.
Evaluation:
R² across zone-years; projections anchored to each zone's latest year.
Limits:
Linear in penetration; ignores new storage and demand flexibility that would slow the decline.

Security-of-supply scenarios

Purpose:
Dry-year price effect and interconnector-outage exposure.
Inputs:
Reservoir levels, weekly prices, physical flows and load.
Training:
Weekly regression with month effects (dry year); flow statistics (outage).
Evaluation:
R² reported with each result.
Limits:
Not a market simulation: no re-dispatch, no capacity margins.

Screening estimates from published market data, not investment advice. History is retrospective; forward figures follow the stated assumptions.

Methodology, model cards and live track record · NordShifts