Published onStratnergyfor essays and subscriber access
Open-data desk

DA Reconstruction

A methodology-first benchmark that reconstructs an implied German day-ahead price from open fundamentals and explicit stack assumptions.

The simple stack is not the auction curve, but it is doing a credible job of linking residual load to cleared price levels on this day.

Showing 13 Mar 2026Updated 14 Mar 2026, 08:40
Open inputs: Energy Charts day-ahead prices plus public load, wind, and solar time series. · Reconstruction: a fixed stylized inflexible floor plus a transparent benchmark thermal stack. · Important: this is an implied merit-order model, not the hidden EPEX auction curve.
Date explorer
Benchmark ready
Actual day-ahead prices were aggregated from 15-minute prices into hourly means for comparison.
Current read
The benchmark stack is directionally aligned
The gap tells you how much the open stack missed the actual auction and where hidden structure started to matter.
Mean absolute error
EUR 42.3/MWh
Average hourly gap between actual day-ahead price and the benchmark reconstruction.
Average bias
EUR 40.5/MWh
Positive means the actual auction cleared above the benchmark stack on average.
Actual daily spread
EUR 174.8/MWh
A simple check on how large the day’s own price range is relative to model error.
Largest miss
19:00 · +EUR 113.8/MWh
Actual prices cleared above the benchmark Hard coal layer. Common reasons are hydro opportunity cost, outages, CHP constraints, or tighter cross-border conditions than the model allows.
Highest actual hour
19:00 · EUR 165.8/MWh
Hard coal is the benchmark marginal layer in that hour.
Official exchange view

Use EPEX for the exchange crossing, use this page for the reconstruction

The official exchange view is the EPEX aggregated supply-demand crossing for the day-ahead auction. This framework is the public reconstruction layer: it explains the day-ahead shape from open load, wind, solar, and benchmark production costs rather than pretending to be the exchange order book.

Hourly comparison

Actual day-ahead versus benchmark stack

The benchmark is deliberately simple. Where it tracks actual prices, residual load is doing a lot of explanatory work. Where it misses, the gap is part of the lesson.

166-4500:0023:00
actual DAbenchmark stack
Select an hour

Hour-by-hour reconstruction

Selected hour

19:00 benchmark stack

Actual prices cleared above the benchmark Hard coal layer. Common reasons are hydro opportunity cost, outages, CHP constraints, or tighter cross-border conditions than the model allows.

220280 MWcleared66,000 MW
benchmark clearing demandreconstructed price
Lignite
15,000 MW dispatched out of 15,000 MW
EUR 28/MWh
Benchmark baseload lignite block after the stylized inflexible floor is absorbed.
Hard coal
marginal
6,335 MW dispatched out of 8,000 MW
EUR 52/MWh
Legacy coal fleet used as the next thermal step in the stack.
Gas CCGT
0 MW dispatched out of 17,000 MW
EUR 84/MWh
Efficient gas generation benchmark with carbon included implicitly.
Imports / demand flex
0 MW dispatched out of 8,000 MW
EUR 102/MWh
A simplified coupling band for imports and price-responsive demand or storage.
OCGT / peaker
0 MW dispatched out of 10,000 MW
EUR 138/MWh
Fast, expensive thermal response.
Scarcity tail
0 MW dispatched out of 8,000 MW
EUR 220/MWh
A benchmark tail for extreme scarcity, emergency imports, or very expensive marginal adjustments.
Hour detail
Prices
Actual EUR 165.8/MWh
Benchmark EUR 52.0/MWh
Error +EUR 113.8/MWh
Open fundamentals
Load 60,797 MW
Solar 0 MW
Wind 21,462 MW
Residual load 39,335 MW
Clearing read
21,335 MW above the must-run anchor
Benchmark marginal layer Hard coal
Thermal stack mode is active in the benchmark.
Assumptions

Transparent benchmark inputs

Stylized inflexible floor
18,000 MW
Residual demand is first absorbed by a non-price-setting floor before the benchmark thermal stack starts clearing.
Oversupply pricing band
EUR -45/MWh to EUR 28/MWh
When residual demand sits below the stylized inflexible floor, the model allows prices to fall through zero.
Lignite
15,000 MW at EUR 28/MWh
Benchmark baseload lignite block after the stylized inflexible floor is absorbed.
Hard coal
8,000 MW at EUR 52/MWh
Legacy coal fleet used as the next thermal step in the stack.
Gas CCGT
17,000 MW at EUR 84/MWh
Efficient gas generation benchmark with carbon included implicitly.
Imports / demand flex
8,000 MW at EUR 102/MWh
A simplified coupling band for imports and price-responsive demand or storage.
OCGT / peaker
10,000 MW at EUR 138/MWh
Fast, expensive thermal response.
Scarcity tail
8,000 MW at EUR 220/MWh
A benchmark tail for extreme scarcity, emergency imports, or very expensive marginal adjustments.
Signal basis

What the benchmark assumes

  • Load, wind, and solar are taken from the open Energy Charts power endpoint and aggregated to hourly Berlin-time averages.
  • Actual day-ahead prices are aggregated to hourly means when the source provides shorter intervals.
  • Residual demand is translated into dispatch demand with a fixed stylized inflexible floor, then cleared against a benchmark stack of technology blocks.
  • The gap between actual and reconstructed price is treated as the interesting output: it is where hidden constraints, auction logic, and unavailable data live.
Caveats

This is not the actual EPEX order book or the actual EUPHEMIA supply-demand curve. It is a public benchmark model built from open fundamentals.

Fuel, carbon, outages, CHP must-run, hydro opportunity cost, block bids, and cross-border coupling are only approximated here, not fully observed.

The stack assumptions are transparent on purpose. They are meant to be challenged, tuned, and improved rather than hidden behind a black box.

Next stops

Go deeper from here