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.

Uren in deze dag (Brussel)
—
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.

KwartierPrijsEnergieKost
Juist: prijs gelijk, energie ÷ 4
—
Fout: ook de prijs ÷ 4
—

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).

vast prijs(q) = de gepubliceerde vaste prijs variabel prijs(q) = z + a × index van de maand dynamisch prijs(q) = z + a × day-ahead-prijs van dat (kwart)uur tijdzones prijs(q) = prijs van de tariefzone waarin kwartier q valt afnamekost(q) = afname(q) × som van de prijsonderdelen(q) injectiewaarde(q) = injectie(q) × injectieprijs(q)

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:

0,1 + 0,2 = …

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:

Exact, op het einde afgerond
—
Per kwartier en per onderdeel op een cent afgerond
—
Verschil
—

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:

Vingerafdruk (SHA-256)
—

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.