Zo rekent de rekenmotor
Bijgewerkt op
De rekenmotor is het hart van Energieplatform Vlaanderen. Ze doet iets eenvoudigs, maar dan heel nauwkeurig: voor elk kwartier je verbruik vermenigvuldigen met de prijs van dat kwartier, en alles optellen. De moeilijkheid zit in de details. Hieronder kan je er zelf mee spelen.
Het kwartier als eenheid
Een digitale meter registreert per kwartier hoeveel je afneemt en hoeveel je injecteert. Elk kwartier loopt van zijn begin tot net vóór het volgende: [13:00, 13:15). Zo hoort elk moment bij precies één kwartier. Maar een dag telt niet altijd 96 kwartieren.
Bij de overgang naar zomertijd verdwijnt een uur (92 kwartieren), bij de overgang naar wintertijd komt er een bij (100 kwartieren).
De motor rekent intern in een eenduidige tijd en zet pas om naar Belgische tijd (Europe/Brussels) om per dag, maand of tariefzone te groeperen. Een dag- en nachttarief of een daluur wordt zo per kwartier juist toegekend, ook in de nacht van de klokwissel.
Van uur naar kwartier: prijs ≠ energie
Sommige gegevens bestaan per uur, zoals oudere day-ahead-prijzen of een uurprofiel. Wie die naar kwartieren omzet, moet een prijs en een hoeveelheid energie anders behandelen. Een prijs per kWh blijft dezelfde in elk kwartier van het uur; de energie van dat uur wordt over de vier kwartieren verdeeld.
| Kwartier | Prijs | Energie | Kost |
|---|
Elk contract wordt een prijs per kwartier
Voor de motor zijn alle contracttypes uiteindelijk hetzelfde: een reeks prijzen per kwartier, per onderdeel (energie, nettarieven, heffingen).
Afname en injectie zijn twee aparte, positieve stromen. Ze worden pas na het toepassen van hun eigen prijs verrekend, nooit vooraf tegen elkaar weggestreept (zie Injectie). Vaste vergoedingen per jaar of per maand komen er na het optellen van de kwartieren bij.
Exact rekenen: geen afronding per kwartier
Een computer rekent normaal in binaire kommagetallen, en daarin bestaat 0,1 niet exact. Je browser rekent het nu voor je uit:
Voor één som maakt dat niets uit, voor tienduizenden kwartieren en geld wel. De motor rekent daarom met exacte decimale getallen en rondt pas af op het einde, op het moment van rapporteren. Wie elk kwartier al afrondt op een eurocent, bouwt een fout op:
Voorbeeld: een gezin met een sluimerverbruik van 20 tot 60 Wh per kwartier en af en toe een piek, met drie prijsonderdelen (energie 12,34, nettarieven 9,87 en heffingen 5,13 ct/kWh). Een onderdeel van een sluimerkwartier kost minder dan een halve cent en wordt bij afronding nul. Duizenden keren nul is geen nul meer.
Controles vóór en na
De motor vult zelf niets aan. Voor hij begint, controleert hij onder meer:
- ieder kwartier heeft precies één meetwaarde, zonder gaten of dubbels;
- ieder kwartier met afname heeft alle verplichte prijsonderdelen, ieder kwartier met injectie een injectieprijs;
- het contract en de prijzen zijn geldig in de gekozen periode.
Klopt dat niet, dan wordt de berekening geblokkeerd met een duidelijke reden. Na afloop moeten de sommen sluiten: evenveel resultaatkwartieren als invoerkwartieren, en de som van de kwartierkosten gelijk aan het totaal.
Elke berekening heeft een vingerafdruk
Een resultaat is pas betrouwbaar als je het later opnieuw kan maken. Daarom legt de motor bij elke run vast wat het resultaat bepaalde: de periode, de tijdzone, de versie van de motor, de toleranties en de volledige invoer: elke prijs, formule, index en meetreeks. Van dat geheel wordt een SHA-256-hash berekend, een vingerafdruk. Verandert er ook maar één cijfer, dan verandert de vingerafdruk volledig. Probeer het:
De run zelf is daarna onveranderlijk: de databank weigert elke wijziging. Een correctie wordt een nieuwe run die naar de vorige verwijst. Enkel wie zijn account laat wissen, neemt zijn runs mee: een run van iemand die niet meer bestaat, hoeft niet meer reproduceerbaar te zijn.
Zie ook: Hoe werkt Energieplatform Vlaanderen? en Vast, variabel en dynamisch.
Informatief, geen advies. Bij twijfel primeren de officiële tariefkaart van je leverancier en de publicaties van de VREG en je netbeheerder. Zie ook de disclaimer.