Prologue · The Assignment
Study · Model
Electricity is no longer a constant.
A cold store near Munich pays hourly spot prices. Dynamic tariffs have been mandatory since 2025 — the price beats like a restless pulse. The question: when to cool, while power is cheap and green?
As of: 2026-04-02 – 2026-07-01
01 · The Veins
Data inflow
Four streams, one organism.
Real public data flows into the system: exchange prices, generation by source, grid load, weather — hourly, across the whole window.
2,184 hours 91 days · hourly
- aWATTar Exchange prices · EPEX day-ahead
- Bundesnetzagentur / SMARD Generation by source, grid load
- SMARD (price) Day-ahead price DE-LU
- Open-Meteo / DWD Weather · temperature, radiation, wind
Data sources Public data, attributed. A model reference plant, not a client project. · CC-BY
02 · The Rhythm
Patterns
At midday the sun floods the grid.
A daily rhythm emerges: when the renewable share is high, the price falls — often below zero at midday. That is the moment to pre-cool.
249 hours below €0 Correlation green↔price -0.78 · 11.5 % in the window
| h | Price | Green power % |
|---|---|---|
| 0 | 127.72 | 30 |
| 1 | 119.06 | 33 |
| 2 | 115.57 | 30 |
| 3 | 113.90 | 28 |
| 4 | 109.17 | 27 |
| 5 | 105.45 | 29 |
| 6 | 98.79 | 38 |
| 7 | 80.80 | 55 |
| 8 | 53.84 | 78 |
| 9 | 18.97 | 99 |
| 10 | 3.49 | 100 |
| 11 | 0.56 | 100 |
| 12 | 0.82 | 100 |
| 13 | 0.00 | 100 |
| 14 | 0.98 | 100 |
| 15 | 11.31 | 95 |
| 16 | 52.44 | 78 |
| 17 | 100.32 | 57 |
| 18 | 129.39 | 35 |
| 19 | 143.07 | 19 |
| 20 | 155.80 | 10 |
| 21 | 156.71 | 8 |
| 22 | 151.37 | 10 |
| 23 | 142.58 | 13 |
03 · Looking Ahead
Forecast
The model extends the curve.
A gradient-boosting model forecasts price and an uncertainty band for tomorrow — measured honestly in a walk-forward backtest, including where it misses.
16.77 €/MWh MAE Naive 51.91 · Persistence 31.03
| h | Actual | Forecast | P10 | P90 |
|---|---|---|---|---|
| 0 | 127.72 | 122.47 | 114.34 | 129.12 |
| 1 | 119.06 | 113.08 | 109.57 | 127.33 |
| 2 | 115.57 | 112.58 | 109.22 | 126.70 |
| 3 | 113.90 | 117.72 | 111.55 | 123.98 |
| 4 | 109.17 | 117.65 | 111.78 | 125.90 |
| 5 | 105.45 | 117.37 | 111.05 | 120.35 |
| 6 | 98.79 | 103.62 | 102.32 | 109.00 |
| 7 | 80.80 | 90.40 | 84.59 | 101.33 |
| 8 | 53.84 | 49.42 | 17.95 | 70.96 |
| 9 | 18.97 | 1.68 | -3.62 | 24.28 |
| 10 | 3.49 | -3.85 | -38.03 | 11.52 |
| 11 | 0.56 | -20.12 | -43.17 | 6.23 |
| 12 | 0.82 | -16.37 | -43.40 | 6.18 |
| 13 | 0.00 | -16.69 | -50.02 | 3.28 |
| 14 | 0.98 | -1.37 | -6.00 | 1.81 |
| 15 | 11.31 | -1.98 | -8.46 | 14.11 |
| 16 | 52.44 | 36.41 | 21.88 | 51.46 |
| 17 | 100.32 | 67.51 | 65.20 | 96.73 |
| 18 | 129.39 | 112.69 | 109.97 | 122.67 |
| 19 | 143.07 | 130.20 | 126.03 | 139.21 |
| 20 | 155.80 | 150.35 | 133.81 | 159.96 |
| 21 | 156.71 | 149.64 | 136.58 | 151.84 |
| 22 | 151.37 | 137.45 | 132.90 | 143.05 |
| 23 | 142.58 | 128.83 | 124.15 | 134.32 |
04 · The Decision
Load plan
Cool when it’s cheap.
The refrigeration plant becomes a thermal battery: pre-cool in the cheap, green hours, coast through the expensive ones. An optimiser sets the schedule — against the naive baseline.
€2.21 saved · day naive €10.78 · optimal €8.57
| h | Cooling load | Temperature |
|---|---|---|
| 0 | 11.9 | -18.0 |
| 1 | 11.7 | -18.0 |
| 2 | 11.7 | -18.0 |
| 3 | 11.6 | -18.0 |
| 4 | 11.3 | -18.0 |
| 5 | 11.2 | -18.0 |
| 6 | 11.1 | -18.0 |
| 7 | 11.7 | -18.0 |
| 8 | 12.7 | -18.0 |
| 9 | 13.8 | -18.0 |
| 10 | 14.6 | -18.0 |
| 11 | 36.9 | -19.1 |
| 12 | 0.0 | -18.3 |
| 13 | 50.0 | -20.0 |
| 14 | 16.8 | -20.0 |
| 15 | 17.1 | -20.0 |
| 16 | 17.4 | -20.0 |
| 17 | 17.5 | -20.0 |
| 18 | 17.2 | -20.0 |
| 19 | 8.2 | -19.6 |
| 20 | 0.0 | -18.8 |
| 21 | 0.0 | -18.0 |
| 22 | 14.2 | -18.0 |
| 23 | 13.6 | -18.0 |
05 · The Voice
AI briefing
The system speaks.
From the load plan’s numbers, a local language model shapes a German briefing — grounded in real values, no hallucination.
Laden Sie die Kälteanlage in den günstigen Stunden 11 bis 14 auf, um 2 EUR (20 %) zu sparen. Nutzen Sie dabei den hohen VRE-Anteil von 53 % für eine effiziente Betriebsführung. System schlägt vor, der Mensch entscheidet.
The system’s own words — in German, grounded in the day’s numbers.
Local Qwen3.6 · the data never leaves the machine
06 · The Reflex
Automation
Every day, by itself.
Around 14:00 tomorrow’s prices arrive — the system computes the plan and reports in. A reflex, not an autopilot.
- 1 ≈ 14:00
- 2 Tomorrow’s prices
- 3 Compute plan
- 4 Alert
The system proposes — the human decides.
★ · The Proof
The result
Summed across the whole window.
No single-day luck: the savings add up over dozens of days. That is the proof — one operator, full stack, on a real system.
Over 89 days €249.75 saved · −18.4 % naive €1,359.08 · optimal €1,109.32
cumulative savings
| Date | € |
|---|---|
| 2026-04-03 | 1.44 |
| 2026-04-04 | 2.24 |
| 2026-04-05 | 2.22 |
| 2026-04-06 | 3.80 |
| 2026-04-07 | 3.43 |
| 2026-04-08 | 3.41 |
| 2026-04-09 | 2.35 |
| 2026-04-10 | 2.25 |
| 2026-04-11 | 2.43 |
| 2026-04-12 | 2.27 |
| 2026-04-13 | 1.20 |
| 2026-04-14 | 1.80 |
| 2026-04-15 | 2.08 |
| 2026-04-16 | 2.20 |
| 2026-04-17 | 2.10 |
| 2026-04-18 | 2.09 |
| 2026-04-19 | 1.82 |
| 2026-04-20 | 1.64 |
| 2026-04-21 | 2.30 |
| 2026-04-22 | 2.68 |
| 2026-04-23 | 2.88 |
| 2026-04-24 | 2.76 |
| 2026-04-25 | 4.20 |
| 2026-04-26 | 9.25 |
| 2026-04-27 | 2.99 |
| 2026-04-28 | 2.37 |
| 2026-04-29 | 3.31 |
| 2026-04-30 | 3.10 |
| 2026-05-01 | 10.62 |
| 2026-05-02 | 4.65 |
| 2026-05-03 | 2.26 |
| 2026-05-04 | 3.04 |
| 2026-05-05 | 1.10 |
| 2026-05-06 | 0.97 |
| 2026-05-07 | 1.67 |
| 2026-05-08 | 1.33 |
| 2026-05-09 | 2.09 |
| 2026-05-10 | 1.89 |
| 2026-05-11 | 0.72 |
| 2026-05-12 | 1.90 |
| 2026-05-13 | 1.40 |
| 2026-05-14 | 2.05 |
| 2026-05-15 | 1.51 |
| 2026-05-16 | 2.04 |
| 2026-05-17 | 2.21 |
| 2026-05-18 | 1.89 |
| 2026-05-19 | 1.39 |
| 2026-05-20 | 2.01 |
| 2026-05-21 | 2.93 |
| 2026-05-22 | 3.02 |
| 2026-05-23 | 3.00 |
| 2026-05-24 | 3.42 |
| 2026-05-25 | 3.00 |
| 2026-05-26 | 3.29 |
| 2026-05-27 | 2.44 |
| 2026-05-28 | 5.79 |
| 2026-05-29 | 3.28 |
| 2026-05-30 | 2.46 |
| 2026-05-31 | 2.20 |
| 2026-06-01 | 3.97 |
| 2026-06-02 | 1.04 |
| 2026-06-03 | 1.69 |
| 2026-06-04 | 1.79 |
| 2026-06-05 | 2.50 |
| 2026-06-06 | 2.25 |
| 2026-06-07 | 2.74 |
| 2026-06-08 | 2.17 |
| 2026-06-09 | 2.41 |
| 2026-06-10 | 1.85 |
| 2026-06-11 | 1.90 |
| 2026-06-12 | 1.06 |
| 2026-06-13 | 2.18 |
| 2026-06-14 | 1.99 |
| 2026-06-15 | 2.49 |
| 2026-06-16 | 1.82 |
| 2026-06-17 | 1.33 |
| 2026-06-18 | 6.27 |
| 2026-06-19 | 2.72 |
| 2026-06-20 | 2.60 |
| 2026-06-21 | 2.18 |
| 2026-06-22 | 3.51 |
| 2026-06-23 | 7.19 |
| 2026-06-24 | 9.00 |
| 2026-06-25 | 3.66 |
| 2026-06-26 | 4.40 |
| 2026-06-27 | 3.19 |
| 2026-06-28 | 2.28 |
| 2026-06-29 | 3.36 |
| 2026-06-30 | 6.02 |
Your turn.
Pick a day, scrub the price curve, toggle the optimal plan on and off — the cost recomputes in front of you.
Frozen window 2026-04-02–2026-07-01 no live data
12:00 Price 0.82 €/MWh Green power 100 % Forecast -9 ±25 €/MWh
Draw the cooling path within the −20…−18 °C band. Physics delivers the real curve — and the bill.
Naive €10.78 AI €8.57 You €10.78
Wann liegt typischerweise das günstigste Zeitfenster im Tag?
Das günstigste Zeitfenster liegt typischerweise zwischen 12 und 15 Uhr.
Warum sind die Strompreise mittags oft negativ?
Mittags flutet Solarstrom das Netz, wodurch die Preise fallen und teils negativ werden.
Wie viel spart die optimierte Vorkühlung im gesamten Zeitfenster?
Die optimierte Vorkühlung spart im gesamten Zeitfenster 249,75 EUR.
Wie zuverlässig ist die Preisprognose im Vergleich zur Naiv-Methode?
Die Prognose ist deutlich zuverlässiger als die Naiv-Methode. Der mittlere absolute Fehler (MAE) beträgt 16,77 im Vergleich zu 51,91 der Naiv-Methode, was einer Reduktion um rund 68 % entspricht.
Replay the daily briefing
Laden Sie die Kälteanlage in den günstigen Stunden 11 bis 14 auf, um 2 EUR (20 %) zu sparen. Nutzen Sie dabei den hohen VRE-Anteil von 53 % für eine effiziente Betriebsführung. System schlägt vor, der Mensch entscheidet.
| h | Price | Green power % |
|---|---|---|
| 0 | 127.72 | 30 |
| 1 | 119.06 | 33 |
| 2 | 115.57 | 30 |
| 3 | 113.90 | 28 |
| 4 | 109.17 | 27 |
| 5 | 105.45 | 29 |
| 6 | 98.79 | 38 |
| 7 | 80.80 | 55 |
| 8 | 53.84 | 78 |
| 9 | 18.97 | 99 |
| 10 | 3.49 | 100 |
| 11 | 0.56 | 100 |
| 12 | 0.82 | 100 |
| 13 | 0.00 | 100 |
| 14 | 0.98 | 100 |
| 15 | 11.31 | 95 |
| 16 | 52.44 | 78 |
| 17 | 100.32 | 57 |
| 18 | 129.39 | 35 |
| 19 | 143.07 | 19 |
| 20 | 155.80 | 10 |
| 21 | 156.71 | 8 |
| 22 | 151.37 | 10 |
| 23 | 142.58 | 13 |
| h | P10 | P50 | P90 |
|---|---|---|---|
| 0 | 114.34 | 118.96 | 129.12 |
| 1 | 109.57 | 115.57 | 127.33 |
| 2 | 109.22 | 115.11 | 126.70 |
| 3 | 111.55 | 114.73 | 123.98 |
| 4 | 111.78 | 113.53 | 125.90 |
| 5 | 111.05 | 111.42 | 120.35 |
| 6 | 102.32 | 103.85 | 109.00 |
| 7 | 84.59 | 92.94 | 101.33 |
| 8 | 17.95 | 50.06 | 70.96 |
| 9 | -3.62 | -3.47 | 24.28 |
| 10 | -38.03 | -8.74 | 11.52 |
| 11 | -43.17 | -9.65 | 6.23 |
| 12 | -43.40 | -9.23 | 6.18 |
| 13 | -50.02 | -11.19 | 3.28 |
| 14 | -6.00 | 0.97 | 1.81 |
| 15 | -8.46 | 3.71 | 14.11 |
| 16 | 21.88 | 50.32 | 51.46 |
| 17 | 65.20 | 95.96 | 96.73 |
| 18 | 109.97 | 112.47 | 122.67 |
| 19 | 126.03 | 138.01 | 139.21 |
| 20 | 133.81 | 151.41 | 159.96 |
| 21 | 136.58 | 150.73 | 151.84 |
| 22 | 132.90 | 141.02 | 143.05 |
| 23 | 124.15 | 134.12 | 134.32 |
| Day | Price € |
|---|---|
| 1 | 1.44 |
| 2 | 2.24 |
| 3 | 2.22 |
| 4 | 3.80 |
| 5 | 3.43 |
| 6 | 3.41 |
| 7 | 2.35 |
| 8 | 2.25 |
| 9 | 2.43 |
| 10 | 2.27 |
| 11 | 1.20 |
| 12 | 1.80 |
| 13 | 2.08 |
| 14 | 2.20 |
| 15 | 2.10 |
| 16 | 2.09 |
| 17 | 1.82 |
| 18 | 1.64 |
| 19 | 2.30 |
| 20 | 2.68 |
| 21 | 2.88 |
| 22 | 2.76 |
| 23 | 4.20 |
| 24 | 9.25 |
| 25 | 2.99 |
| 26 | 2.37 |
| 27 | 3.31 |
| 28 | 3.10 |
| 29 | 10.62 |
| 30 | 4.65 |
| 31 | 2.26 |
| 32 | 3.04 |
| 33 | 1.10 |
| 34 | 0.97 |
| 35 | 1.67 |
| 36 | 1.33 |
| 37 | 2.09 |
| 38 | 1.89 |
| 39 | 0.72 |
| 40 | 1.90 |
| 41 | 1.40 |
| 42 | 2.05 |
| 43 | 1.51 |
| 44 | 2.04 |
| 45 | 2.21 |
| 46 | 1.89 |
| 47 | 1.39 |
| 48 | 2.01 |
| 49 | 2.93 |
| 50 | 3.02 |
| 51 | 3.00 |
| 52 | 3.42 |
| 53 | 3.00 |
| 54 | 3.29 |
| 55 | 2.44 |
| 56 | 5.79 |
| 57 | 3.28 |
| 58 | 2.46 |
| 59 | 2.20 |
| 60 | 3.97 |
| 61 | 1.04 |
| 62 | 1.69 |
| 63 | 1.79 |
| 64 | 2.50 |
| 65 | 2.25 |
| 66 | 2.74 |
| 67 | 2.17 |
| 68 | 2.41 |
| 69 | 1.85 |
| 70 | 1.90 |
| 71 | 1.06 |
| 72 | 2.18 |
| 73 | 1.99 |
| 74 | 2.49 |
| 75 | 1.82 |
| 76 | 1.33 |
| 77 | 6.27 |
| 78 | 2.72 |
| 79 | 2.60 |
| 80 | 2.18 |
| 81 | 3.51 |
| 82 | 7.19 |
| 83 | 9.00 |
| 84 | 3.66 |
| 85 | 4.40 |
| 86 | 3.19 |
| 87 | 2.28 |
| 88 | 3.36 |
| 89 | 6.02 |