WattWanneer

Voorspelling van dynamische stroomprijzen

Hoe werkt het voorspelmodel?

Datastromen

Het model combineert meerdere onafhankelijke databronnen, in de tijd uitgelijnd op uurniveau (Europe/Amsterdam, met DST-bewaking):

  • EPEX-prijzen — tien jaar historische day-ahead spotprijzen voor Nederland, aangevuld met de meest recent gepubliceerde day-ahead prijzen via ENTSO-E.
  • ENTSO-E forecasts (NL + DE) — verwachte stroomvraag (load), windproductie en zonneproductie voor de komende dagen. Voor Duitsland nemen we dezelfde signalen mee omdat Nederlandse prijzen sterk meebewegen met het buurland via de interconnectoren.
  • Weervariabelen — temperatuur, windsnelheid en zoninstraling uit Open-Meteo, met afgeleide ramps (1h en 24h delta's) zodat het model versnellingen oppikt.
  • Feestdagen NL en buurlanden — vlaggen voor Nederlandse feestdagen (Koningsdag, Hemelvaartsdag, Tweede Paasdag, etc.) plus aparte vlaggen voor feestdagen in Duitsland, België en Frankrijk. Dat laatste is bijzonder belangrijk op dagen als 1 mei, wanneer NL gewoon werkt maar de buurlanden vrij zijn: de export valt weg en de prijs kan diep negatief worden.
  • Kalenderfeatures — uur, dag-van-de-week, maand en sin/cos-transformaties voor cyclisch dag- en jaarritme.

Per uur worden lags toegevoegd (1h, 24h, 168h vooruit kijkend), plus rolling statistieken (24h gemiddelde, 24h standaardafwijking, 168h gemiddelde) zodat het model context heeft over wat zojuist gebeurde en wat een week geleden gebruikelijk was.

Modelpad

Bij elke training vergelijken we twee kandidaat-modellen op exact dezelfde feature-set en holdout:

  • HistGradientBoosting — een gradient-boosting tree-ensemble dat goed omgaat met heterogene features en niet-lineaire interacties.
  • RandomForest — robuuste tree-ensemble met verschillende bias-variance afweging, dient als kruisvergelijking.

Het model met de laagste MAE op de holdout-set (chronologisch de laatste 20% van de data) wordt geselecteerd voor productie. In de praktijk wint HistGradientBoosting bijna altijd net iets nipt. Het systeem houdt daarnaast een fallback-variant aan zonder ENTSO-E features, zodat de pipeline blijft draaien wanneer een externe API uitvalt.

Een strikte time-based split voorkomt dat toekomstinformatie in het model lekt: tijdens training zien we nooit een prijs voordat het model erom moet "raden". Dat houdt de geclaimde accuratesse eerlijk.

Zelflerende bias-correctie

Na de voorspelling voegen we een tweede laag toe: een dagelijks bijgewerkte bias-correctie die structurele patronen tackelt die het hoofdmodel mist. De correctie is fijnmazig:

  • per uur van de dag (24 stappen)
  • per categorie: werkdag óf weekend & feestdag
  • gebaseerd op de gemeten afwijking tussen forecast en werkelijkheid van de afgelopen 7 dagen

Sinds kort behandelen we Nederlandse feestdagen die op een werkdag vallen (Koningsdag, Hemelvaartsdag, Pinksteren, etc.) automatisch als weekend voor de bias-correctie. De consumptiepatronen op die dagen lijken in de praktijk meer op een zondag dan op een gewone werkdag, dus de werkdag-correctie zou anders een onterechte ophoging geven.

Wat de site nog meer toont

Bovenop de raw voorspelling levert de homepage een paar gebruikersvriendelijke extra's:

  • Goedkoopste laadvenster, kiesbaar tussen 1, 2, 3, 5, 10 en 24 uur — afhankelijk van wat je wil doen (snel laden, hele dag verwarmen, batterij voltappen).
  • Automatische toelichting — een Nederlandstalige zin die uitlegt waarom dat venster goedkoop is (feestdag, zon, wind, weekend) met een passend icoon.
  • Versheids-badge — hoe lang geleden de voorspelling is bijgewerkt, met een waarschuwing als hij ouder dan 26 uur is.

Wat het model niet kan voorspellen

Hoewel het model veel factoren meeneemt, blijven sommige prijsschommelingen inherent onvoorspelbaar. Voorbeelden:

  • plotselinge storingen of uitval van centrales
  • extreme afwijkingen in wind- of zonneproductie binnen één dag
  • onverwachte pieken in vraag of industriële afschakelingen
  • acute netcongestie of noodmaatregelen van TenneT
  • grote bewegingen in gas- of CO₂-prijzen op zeer korte termijn
  • intraday-onbalans of niet-geplande redispatch

Dit zijn gebeurtenissen die zelfs professionele marktmodellen niet volledig kunnen voorspellen. Daarom blijft elke prijsverwachting een inschatting: een best mogelijke projectie op basis van beschikbare informatie, maar nooit een garantie. Onder "Hoe trefzeker is WattWanneer?" hieronder zie je hoe dicht we er in de praktijk bij zitten.

Hoe trefzeker is WattWanneer?

Onafhankelijk gemeten tegen de werkelijke EPEX-prijzen.

van de uren binnen 5 cent van de werkelijke prijs
richting correct (omhoog/omlaag)
bullseye op het 3-uurs laadvenster
gemiddeld dichtbij het optimale moment

Hoe lezen we deze cijfers?

We meten elke dag de afgelopen 168 uur (één volle week) van voorspellingen tegen de prijzen die EPEX uiteindelijk publiceert. Alleen voorspellingen die zijn gepubliceerd vóór het werkelijke uur worden meegerekend; we kijken dus niet achteraf met een gunstig licht.

Binnen 5 cent

Het percentage uren waarin het verschil tussen onze voorspelling en de uiteindelijke prijs kleiner was dan 5 cent per kWh. Bij dynamische contracten zit je dan al ruim binnen de marge waarin slim laden zinvol blijft.

Richting correct

Voor elk uur kijken we of we de juiste beweging voorspelden: gaat de prijs omhoog of omlaag ten opzichte van het vorige uur? Dit is dé maat voor of het model de marktdynamiek goed volgt, en is precies wat je wilt weten als je je verbruik plant.

Bullseye op het 3-uurs laadvenster

Het percentage dagen waarop ons voorspelde goedkoopste 3-uurs venster precies samenviel met het écht goedkoopste 3-uurs venster van die dag. Een strenge maat: we tellen alleen perfecte treffers. Op de dagen dat het niet exact lukt zien we hieronder hoever we naast zaten.

Dichtbij het optimale laadmoment

De gemiddelde afwijking in starttijd (in uren) tussen ons voorspelde optimale venster en het werkelijke optimum van die dag. Hoe lager dit getal, hoe scherper we het beste laadmoment treffen.

Eerlijk over wat niet perfect is

Geen enkele voorspelling is feilloos. Een paar typische situaties waar wij iets meer moeite mee hebben:

Het model wordt continu doorontwikkeld op basis van wat we leren van afgelopen weken. Zo blijft de voorspelling steeds dichter bij de werkelijkheid komen.