The public accuracy ledger

Don't trust us. Audit us.

Every forecast is frozen at publication and scored against the real day-ahead auction result. Below: the full historical backtest under honest, ex-ante conditions, and the live ledger that grows one row per day. Nothing here is ever edited.

Latest forecast vs. auction result

ForecastAuction result90% bandNegative-price call

Monthly error vs. the naive benchmark

Mean absolute error, €/MWh, our forecast vs. the standard day-ahead naive (yesterday's / last week's prices). rMAE < 1 means we beat it. Every month is shown — including any we lose.

Daily record — last 90 backtest days + live ledger

One row per delivery day: error, negative hours that actually occurred, how many we flagged at the alert threshold (P≥0.5), and how many of those flags were right.

What "backtest" means here — read this

Honesty rules: the historical run uses only information available before each day's auction — archived weather forecasts (not what actually happened), and prices published up to the day before. Models were retrained weekly, walking forward through time, never seeing the future. The live ledger rows are produced by the running system: forecast archived in the morning, scored after the auction result lands (~13:05 CET). Backtest and ledger are labeled separately and never mixed. Negative-price calls are counted at the alert threshold (P≥0.5); at the stricter P≥0.7 tier, precision rises to ~97% (DE-LU) with fewer calls. Price data: Bundesnetzagentur | SMARD.de via Energy-Charts (CC BY 4.0). Forecasts are informational — not trading or investment advice.

This scoreboard updates every day.

Get the forecast behind it