Over de voorspelling
Korte versie
De voorspelling kijkt naar historische patronen uit de afgelopen 1–2 weken (welk uur van de dag, welke dag van de week, welk prijsniveau) en probeert die te corrigeren met huidige inzichten: hoeveel zon en wind verwacht we, hoe koud wordt het, wat doet de gasprijs, en is het een werkdag of weekend. Bij extreme gebeurtenissen — een PV-overschot dat de prijs ver onder nul drukt, een gascrisis of geopolitieke onrust — vallen werkelijke prijzen substantieel buiten de modelband en is de voorspelling in die uren onbetrouwbaar. Daarom tonen we altijd een onzekerheidsband.
Voor welke uren?
- Vandaag en morgen: officiële, definitieve EPEX day-ahead-prijzen (gepubliceerd door ENTSO-E). Geen voorspelling, geen schatting — exacte cijfers.
- Overmorgen tot en met 7 dagen vooruit: eigen schatting, gemaakt met het hieronder beschreven model. Voor deze uren tonen we ook de onzekerheidsband.
Hoe werkt het in twee stappen?
Stap 1 — baseline uit historie
Voor elk toekomstig uur (bijvoorbeeld donderdag 1 mei om 19:00) berekenen we eerst een basisprijs: het gemiddelde van de werkelijke prijzen op datzelfde tijdstip op vergelijkbare dagen in de afgelopen week. Voor een werkdag-19:00 zijn dat typisch 5 datapunten (maandag t/m vrijdag van afgelopen week). Voor zaterdag- en zondag-uren kijken we 14 dagen terug, omdat 7 dagen maar 1 datapunt per uur oplevert en dat te ruisig is.
Deze baseline absorbeert het basis-uurpatroon (nacht goedkoop, ochtend- en avondspits duur, middag soms goedkoop door zon) en het meest recente prijsregime, zonder dat we daar zelf parameters voor hoeven te kiezen.
Stap 2 — zes factoren corrigeren de baseline
Boven op de baseline berekenen zes factoren elk een score in punten. Het totaal vertaalt zich in een procentuele afwijking van de baseline:
voorspelde_prijs = baseline × (1 + totaal_punten × 2%)
Op zondag tellen de twee weersfactoren (zon en wind) extra zwaar (×2), omdat de basisvraag op zondag lager is en weersinvloed de prijs sterker beweegt: een zonnige+winderige zondag drukt de prijs diep, een bewolkte+windstille zondag stuwt hem op.
De zes factoren
- Zonproductie (−3 tot +3 punten) — bewolkte dagen geven plus-punten (duurder), zonnige dagen min (goedkoper). Bron: Open-Meteo voorspelling, vergeleken met het seizoennormale stralingsniveau.
- Windproductie (−3 tot +3 punten) — windstille dagen plus, stormachtige dagen min. Bron: Open-Meteo windsnelheid op rotorhoogte (100 m).
- Temperatuur (−1 tot +2 punten) — vorst geeft een grote plus (warmtepompen draaien op vol vermogen), aangenaam weer (18-26 °C) geeft een minpunt (lagere ruimtevraag, mensen buiten, zon op piek). Bron: Open-Meteo daggemiddelde.
- Gasprijs (TTF) (−2 tot +2 punten) — vergelijkt de actuele gasprijs met het 30-dagen-gemiddelde. Hoge gasprijs duwt de stroomprijs op (gascentrales zetten vaak het marginale prijsniveau). Bron: Yahoo Finance ticker TTF=F.
- Type dag (−2 tot 0 punten) — zaterdag −1, zondag −2, feestdag −2. Werkdagen zitten al impliciet in de baseline.
- Uurpatroon-correctie (−2 tot +2 punten) — kleine seizoencorrectie per uur (winter avondspits zwaarder dan zomer-avond, zomer-middag goedkoper door zon).
Klik in de grafiek op een voorspeld uur om de bijdrage per factor te zien.
De volledige drempelwaarden staan in
config.json en kunnen zonder code-wijziging worden bijgesteld.
Onzekerheidsband
Bij elke voorspelling tonen we een onzekerheidsband: een bandbreedte waarbinnen de werkelijke prijs naar verwachting valt. De band is breder bij grotere afwijkingen van de baseline en bij verdere horizon:
- Basis: ±10% — onvermijdelijke ruis bij elke voorspelling.
- +2% per dag verder vooruit — weersvoorspellingen worden snel onzekerder.
- +1% per absoluut punt — extreme totalen (sterk + of −) zijn zeldzamer en daardoor onzekerder.
Deze band beschrijft normale variatie. Zwarte zwanen (zie hieronder) vallen ver buiten de band en zijn met dit model niet te voorspellen.
Wanneer klopt de voorspelling niet?
We zijn eerlijk over waar het model tekortschiet. Er zijn drie hoofdcategorieën:
- Extreme PV-overschot-uren: zonnige weekends in lente of zomer waar de zonne-opwekking de vraag massaal overstijgt. Prijzen kunnen dan tot −400 EUR/MWh zakken. Het model voorziet de richting (negatief) wel, maar niet de magnitude.
- Gascrises en geopolitieke schokken: een aardgasleiding- incident, sancties, koude-inval in heel Europa. Dat verschuift het hele prijsniveau in dagen tijd buiten de modelband.
- Ongeplande centrale-uitval: als een grote centrale of interconnector wegvalt, schiet de prijs lokaal omhoog. Geen openbare realtime-data bekend om dit in te modelleren.
In al deze gevallen geldt: de getoonde band is een indicatie, niet een garantie. Voor harde beslissingen — bijvoorbeeld of je een dynamisch contract neemt of een investering doet — moet je nooit alleen op deze voorspelling afgaan. Zie ook onze disclaimer.
Hoe goed presteert het model?
Op basis van een backtest over 30 dagen (april 2026) tegen de werkelijke EPEX-prijzen:
- Gemiddelde absolute fout op 1 dag vooruit ongeveer 1,5% beter dan een naïeve voorspelling die alleen historisch gemiddelde gebruikt.
- Het model geeft op ~51% van de uren de juiste richting van afwijking aan (boven of onder de baseline). Dat is iets beter dan een muntje opgooien — geen wonder, maar wel signaal.
- Voor "ruwweg goedkoop" en "ruwweg duur" categorisering halen we ongeveer 60% trefzekerheid.
Voor een hobby-project van één persoon vinden we dat acceptabel. We hebben vijf model-iteraties gedaan en zijn tot de conclusie gekomen dat verdere micro-tweaks geen substantiële winst meer opleveren. De volledige modelgeschiedenis staat in het methodologie-document op GitHub (sectie 12 — versiehistorie).
Reproduceerbaar — open source
Alle code, data, drempelwaarden en het methodologie-document zijn openbaar beschikbaar in de GitHub-repository. Wie wil kan onze cijfers natellen of het model zelf nabouwen in een Excel-sheet.
- Repository: github.com/mr-mile/stroomvoorspeller
-
Voorspellings-script:
scripts/forecast.py -
Drempelwaarden:
public/data/config.json -
Voorspel-data (open data):
/data/forecast.json— vrij te gebruiken in eigen projecten.
Bronnen
- Day-ahead prijzen — ENTSO-E Transparency Platform (transparency.entsoe.eu, gratis na registratie).
- Weersvoorspelling — Open-Meteo (open-meteo.com, CC-BY 4.0 licentie, gratis, geen API-key nodig).
- Gasprijs — Yahoo Finance, ticker TTF=F (front-month natural gas future).
-
Feestdagen — eigen NL-kalender, hardgecodeerd in
forecast.py.
Fout gevonden of feedback?
Stuur een mailtje naar contactstroomvoorspeller@gmail.com of open een issue op de GitHub-repo. We waarderen feedback en herstellen aantoonbare fouten zo snel mogelijk.