Over de voorspelling

Korte versie

Voor welke uren?

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:

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

  1. Zonproductie (−3 tot +3 punten) — bewolkte dagen geven plus-punten (duurder), zonnige dagen min (goedkoper). Bron: Open-Meteo voorspelling, vergeleken met het seizoennormale stralingsniveau.
  2. Windproductie (−3 tot +3 punten) — windstille dagen plus, stormachtige dagen min. Bron: Open-Meteo windsnelheid op rotorhoogte (100 m).
  3. 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.
  4. 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.
  5. Type dag (−2 tot 0 punten) — zaterdag −1, zondag −2, feestdag −2. Werkdagen zitten al impliciet in de baseline.
  6. 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:

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:

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:

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.

Bronnen

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.