VoltBench · the public benchmark for European power-price forecasting

Who actually forecasts European power prices best?

Submit tomorrow's day-ahead curve before the auction, get scored against realized prices under published rules. Any active API key can compete, including grandfathered Free keys — including us, under identical rules, losses included. The electricity-price-forecasting literature has no standard benchmark and a chronic lookahead problem; VoltBench is the fix: a frozen dataset, a standard protocol, and a live forward-blind leaderboard.

The dataset

Frozen, citable, anti-lookahead by construction: the point-in-time-correct feature matrix for DE-LU, calendar 2025 — the exact features our own models train on, every column knowable at issue time. Keyless CSV.

voltbench-de-lu-2025-features-v1.csv →

The protocol

Walk-forward only: train strictly on data before each issue day, predict D+1 hourly, score MAE and pinball against realized prices. Offline: use the frozen dataset. Live: submit before 12:00 CET on D-1 — the server timestamps and enforces it.

Submission docs →

The prize

A full year of Scale to the best submission each quarter (min. 60 scored days, beats the current Voltcast pre-auction P50 net of baselines). And a standing offer: beat Volt consistently and we'll talk about licensing your model.

Questions → talk to the founder

Forward-blind

Submissions close 12:00 CET on D-1 — before SDAC results exist. Enforced server-side, timestamped.

No listing fee

Any active API key can submit. Ranking is score-ordered, nothing else.

Open scoring

The exact scoring code that runs is published verbatim — see it below.

We compete too

The named Voltcast pre-auction P50 plus 23 reference models & baselines are frozen before the deadline with source and curve hashes. Historical rows and losing months stay forever.

Correction, 18 August 2026. Rows labelled Voltcast P50 before the new pre-auction policy starts were generated by the old static shadow filter and could select V4 rather than the ladder-promoted V6 family. Those scores remain immutable. New rows are labelled Voltcast pre-auction P50 and carry the frozen source model, run, artifact and curve hashes.

Leaderboard — DE-LU · last 30 days

#ParticipantMAE (€/MWh)RMSEDays
1 Voltcast V68 EXAA challenger voltcast 17.23 22.86 6
2 Voltcast V66 point challenger voltcast 23.83 30.87 6
3 ref/daytype-persistence reference 23.95 33.30 30
4 ref/blend-d1-d7 reference 24.46 33.96 30
5 ref/blend-d1-clim30 reference 24.68 33.93 30
6 ref/blend-3way reference 24.72 33.62 30
7 Persistence baseline reference 24.87 35.18 30
8 ref/ewma-0.3 reference 25.14 34.45 30
9 ref/ewma-0.1 reference 25.56 34.36 30
10 ref/trimmed-mean-7d reference 25.88 35.82 30
11 ref/median-14d reference 25.89 36.56 30
12 ref/mean-7d reference 25.99 35.34 30
13 ref/daytype-mean-30d reference 26.21 34.81 30
14 ref/median-7d reference 26.33 37.45 30
15 ref/mean-3d reference 26.51 36.48 30
16 ref/median-30d reference 27.41 38.25 30
17 ref/same-weekday-median-4w reference 27.86 38.14 30
18 ref/blend-d7-clim30 reference 27.90 37.52 30
19 Voltcast P50 voltcast 28.07 37.52 24
20 ref/climatology-30d reference 28.51 37.23 30
21 ref/same-weekday-mean-4w reference 28.61 37.81 30
22 ref/damped-drift-0.5 reference 30.72 40.19 30
23 ref/seasonal-naive-d7 reference 31.11 43.17 30
24 ref/midrange-14d reference 31.47 38.71 30
25 ref/shape-scaled-clim30 reference 33.06 40.43 30
26 Voltcast pre-auction P50 voltcast 36.12 47.43 6
27 ref/drift-persistence reference 38.44 46.73 30

How to compete

  1. Start with Home, or use an existing grandfathered Free key.
  2. Before 12:00 CET, POST tomorrow's curve (hourly or 15-minute):
curl -X POST -H "Authorization: Bearer YOUR_API_KEY" -H "Content-Type: application/json" \
  -d '{"zone":"DE-LU","target_date":"2026-08-27","display_name":"my-model-v1",
       "method_url":"https://github.com/you/model","points":[{"ts":"2026-08-27T00:00:00Z","value":72.5}, "…"]}' \
  "https://voltcast.com/api/v1/bench/submissions"

Scored automatically once realized prices land. Governance: rules are versioned in the open — the running scoring code is published at /bench/scoring; rule changes are announced ahead of time and never applied retroactively. Academic partners for independent governance: talk to us.