← EnergyViewEnergyView — technische en financiële scenario-audit
Datum: 23 oktober 2026. Uitgevoerd door de ontwikkelassistent als interne code- en rekencontrole; geen onafhankelijke certificering of garantie op foutloosheid.
Oordeel
Er zijn vijf concrete reken-/validatiebevindingen hersteld en met regressies afgedekt. De volledige geautomatiseerde testreeks is daarna geslaagd. De uitkomsten zijn bruikbaar als indicatief vergelijkings- en investeringsscenario onder de getoonde aannames. Ze bewijzen geen toekomstige factuur, technisch uitvoerbare installatie of gegarandeerde terugverdientijd.
Deze audit gebruikt de broncode, aanwezige tarieffixtures en synthetische meetprofielen. Er was geen nieuw volledig persoonlijk Fluvius-bestand beschikbaar om jouw concrete besparingsbedragen opnieuw vast te stellen. De actuele juistheid van alle externe tariefkaarten en promoties is niet onafhankelijk bij elke leverancier geverifieerd. Visuele browser-QA was niet beschikbaar voor deze Worker ESM-configuratie.
Bevindingen en uitgevoerde oplossingen
| ID | Prioriteit | Bevinding en impact | Oplossing | Bewijs / status |
|---|
| A01 | Hoog | Een klein PV-overschot kon de praktische EV-regeling een hele laadhoeveelheid laten plannen, inclusief dure netstroom, hoewel wachten nog mogelijk was. Dit kon de geteste sturing onnodig duur maken. | Zonder goedkope netprijs of laadnoodzaak wordt alleen de beschikbare PV geladen. Netstroom blijft toegestaan bij goedkope prijs of noodzakelijke voltooiing. | Gericht scenario: 0,01 kWh PV bij dure stroom en 0,50 kWh laadopdracht. Alleen 0,01 kWh wordt dan geladen; de resterende 0,49 kWh later. Hersteld. |
| A02 | Hoog | Batterijvervangingskosten werden in het hoofdadvies meegenomen maar niet doorgegeven aan de uitgebreide aankoop- en PV/batterijvergelijkingen. Dezelfde investering kon financieel verschillend worden beoordeeld. | Jaar en bedrag gaan mee naar de levensduurberekening van batterijcombinaties. PV zonder batterij krijgt deze batterijkosten niet. | Bij € 1.000 aankoop, € 200 jaarvoordeel, tien jaar, nul rente/degradatie verandert een vervanging van € 2.000 het netto resultaat van +€ 1.000 naar −€ 1.000. PV-only blijft ongewijzigd. Hersteld. |
| A03 | Middel | De kwartierprijscache gebruikte alleen het contract als sleutel. Een tweede tijdprofiel onder hetzelfde contract kon de eerste, verkeerd uitgelijnde prijsreeks krijgen. | Cache per contract én profielarray. | Eerst een volledig profiel, daarna een andere deelperiode: lengte en eerste prijs sluiten nu aan bij de deelperiode; herhaald origineel blijft gecachet. Hersteld. |
| A04 | Middel | De snelle hergebruikroute voor de gemeten contractprijs hield geen rekening met een expliciete wijziging van de injectiecontract-instelling. | Bij een expliciete injectie-optie wordt de volledige rekening opnieuw berekend. | Dezelfde meetarray met expliciete instelling geeft dezelfde uitkomst als een afzonderlijk, identiek profiel met die instelling. Hersteld. |
| A05 | Middel | Een positief vervangingsbedrag met vervangingsjaar nul werd stilzwijgend genegeerd. | Onvolledige combinatie wordt afgewezen; geen investeringsoordeel op genegeerde kosten. | Gerichte afwijzingstest op bedrag zonder jaar. Hersteld. |
| Q01 | Laag | De bestaande rapporttest verwachtte nog een verwijderde tekst over prijskennis achteraf. De oorspronkelijke volledige teststart faalde hierdoor. | Verwachting aangepast aan de expliciete aanduiding van de theoretische bovengrens. Volledige reeks opnieuw uitgevoerd. | Geslaagd na correctie; geen claim dat de oorspronkelijke run al geslaagd was. |
Uitgevoerde controles
- Bestaande complete testreeks via
npm test, inclusief de nieuwe tests/audit-scenarios.mjs. - Honderd reproduceerbare batterijportefeuilles, seed 912743, elk 288 kwartieren. Variaties in negatieve/positieve afname- en injectieprijzen, PV, verbruik, rendement, vermogens, reserve en exporttoestemming.
- Onafhankelijke identiteiten: geladen energie = geleverd aan verbruik + batterij-export + eindsaldo + opslagverlies; registerdag + registernacht = netafname; geen negatieve netstromen; vermogen en reserve begrenzen dispatch.
- Causaliteitscontrole: wijzig alleen prijzen na kwartier 144; eerdere beslissingen moeten identiek blijven. Dit bewijst de afwezigheid van toekomstige prijskennis in deze regeling, niet de werkelijke aanwezigheid van een auto.
- Bestaande controles op kwartier-/uurimport, zomer-/wintertijd, ontbrekende data, dubbele registraties, vaste/variabele/dynamische tarieven, injectie, korting, btw, volledige kostenopbouw en capaciteit.
- Bestaande controles op huidige/gemeten situatie tegenover aankoopprofiel, bestaande versus nieuwe batterij/PV/EV/warmtepomp, gas/stroom-nettobesparing, COP, warmwaterbasis en zonneboiler.
- Bestaande controles op niets aanschaffen als geldige optie, afzonderlijke contractwinst, extra hardwarevoordeel, budget, gedeeltelijke jaren, onbekende prijzen en verdisconteerde terugverdientijd na vervanging.
- Installatie-/transportcontrole: Cloudflare Pages-pakket en JSON/gzip-router in de publicatiecontrole.
Resterende beperkingen en vervolgoplossingen
| Onderwerp | Resterende beperking | Aanbevolen vervolg |
|---|
| Jouw concrete advies | Synthetische en aanwezige fixtures bewijzen niet dat jouw ingevoerde gegevens volledig en correct zijn. | Voer een acceptatietest uit met je werkelijke jaarbestand, factuur, huidige contractkorting en offerte. Reconcileer eerst de nulmeting. |
| Praktische sturing | Prijsbandregeling is een uitvoerbaar referentiescenario, geen bewezen beste EMS. Herkende laadsessie, aansluiting en vertrektijd zijn aannames. De regeling kan bij onvoldoende laadruimte op het oorspronkelijke profiel terugvallen. | Koppel laadpaal-/omvormermetingen en echte beschikbaarheid; vergelijk voorspelde en gerealiseerde kosten gedurende enkele weken. |
| Toekomstprijzen | De vooruitblik en spreidingstest zijn scenario's, geen kansverdeling. Historische intradagpatronen blijven een aanname. | Maak aankoopbeslissingen ook bij tegenvallende prijsverschillen en nul injectie-inkomsten; herhaal de berekening met een nieuwe marktcurve. |
| Capaciteitstarief | Het hoofdbedrag gebruikt volledige doorwerking. Het overgangsjaar vereist voorafgaande maandpieken en kan minder opleveren. Het detail is geen factuurreconstructie. | Gebruik voldoende piekhistorie en vergelijk de eerste echte facturen; stel laadvermogen doelbewust in. |
| PV-profiel | Gemiddelde PVGIS-productie reconstrueert geen historisch weer, echte omvormerbeperkingen, lokale schaduw of werkelijk PV-laden. | Gebruik gemeten productie en technische dak-/omvormergegevens zodra beschikbaar. |
| Investeringskosten | Nul onderhoud of nul vervanging betekent niet dat die kosten in werkelijkheid ontbreken. Omvormervervanging, subsidies en contractuele garanties zijn niet volledig gemodelleerd. De warmtepompkaart gebruikt afzonderlijk benoemde eenvoudige terugverdientijd. | Vul offerte- en onderhoudskosten in; controleer financiering, garantie, netaansluiting en technische geschiktheid voordat je koopt. |
| Marktdekking | Een begrensde selectie producten en installatiegroottes wordt getest. Beste getest is geen wereldwijd optimum. | Houd bronactualiteit zichtbaar en toets finalisten aan de echte tariefkaart en offerte. |
| Gebruikersinterface | Geen interactieve browsercontrole in deze audit. Automatische model-/render-/worker-tests vervangen die niet. | Voer op desktop en mobiel een acceptatieronde uit: importeren, huidige contracten, woningplannen, terug-/vooruitblik, analyse en rapportexport. |
Vrijgavecriterium
De vijf herstelpunten moeten in de regressiereeks blijven. Een nieuwe versie is pas vrij te geven na een geslaagde volledige testreeks en pakketcontrole. Voor een persoonlijke investeringsbeslissing blijven gecontroleerde invoer, een werkelijke offerte en technische haalbaarheid vereist. Tel afzonderlijke scenario-maxima nooit bij elkaar op.
Uitwerking voor een eenvoudige gebruikerservaring
De vijf rekenherstellingen blijven actief. Daarbovenop zijn de uitvoerbare opvolgpunten verwerkt zonder extra verplichte vragen:
- Een automatisch beslisblok toont ontbrekende jaargegevens, huidig contract/prijzen en batterijofferte. Volledige invoer wordt uitdrukkelijk niet voorgesteld als een geverifieerde factuur of technisch goedgekeurde installatie.
- Eén optionele keuze geeft aan wanneer de auto meestal thuis kan laden: avond/nacht, overdag of een ruim scenario. De eerste indicatie, aankoopplannen, uitgebreide analyse en PV-combinaties gebruiken dezelfde beschikbaarheid. Bestaande specifieke laaduren blijven behouden zolang geen nieuwe keuze wordt gemaakt. Dit is een dagelijkse aanname, geen live koppeling met de laadpaal.
- Onvolledige vervangingskosten worden bij de invoer uitgelegd. De analyse start dan niet opnieuw; de gebruiker kan de invoer herstellen en het eerdere resultaat blijft staan. Ook eerder opgeslagen onvolledige invoer mag geen positief aankoopadvies opleveren.
- De waarschuwing over het capaciteitstarief in het eerste jaar en de theoretische bovengrens staan bij de relevante beslissing. Meer uitleg blijft ingeklapt. Er zijn geen extra automatische prijsstressberekeningen toegevoegd.
Extra regressie: tests/simple-audit-ux.mjs controleert volledigheid versus verificatie, behoud van bestaande laaduren, werkelijke beperking van geplande lading tot gekozen uren met behoud van alle energie, gedeelde instellingen in de drie berekenroutes en herstelbare kosteninvoer. De volledige reeks bevat nu 54 testscripts.
Nog niet uitgevoerd: live laadpaal-/omvormerkoppelingen, acceptatie met een nieuw persoonlijk jaarbestand en offerte, onafhankelijke verificatie van alle actuele leverancierstarieven, of interactieve browser-QA. Dit zijn geen stilzwijgend afgevinkte controles.
QA-opvolging: één plek voor woninggegevens
In de geïntegreerde app staat fysieke invoer nu bij Mijn woning: eigendom/toestelkeuze, dakvlakken/Wp en bestaande batterijen per toestel. De analyse toont deze gegevens als samenvatting. Zij behoudt onderzoeksinstellingen zoals laadvermogen/laaduren, toestelsturing, een mogelijk nieuw batterijaantal, aankoopkosten en de vraag of een bestaande batterij al in het meetbestand zat. Voor een geplande warmtepomp wordt de gedeelde warmwaterbasis vanuit gasanalyse op de woningpagina aangepast.
Analyse-instellingen mogen de dakvlakken, bestaande batterij-inventaris of eigendom niet overschrijven. Tijdelijke gegenereerde warmtepompmetingen uit een aankoopscenario worden niet teruggeschreven naar de woning. Een verouderd PV-antwoord op de achtergrond kan een later aangepast dakprofiel niet overschrijven. Slim laden aan/uit is gescheiden van het bezit van een auto en geldt ook in de eerste indicatie en aankoopvergelijking.
UX: rechtstreeks naar het juiste woningonderdeel, knop terug naar analyse, behoud van geopende onderdelen en herstel van toetsenbordfocus bij automatisch opslaan. Toestellen die niet bestaan worden niet als bestaande installatie gevraagd in het stuurblok. Voor een mogelijke nieuwe batterij blijven scenario- en prijsvelden beschikbaar; die zijn geen tweede registratie van een bestaande batterij.
Regressies home-single-source.mjs en het geïntegreerde rapport testen de scheiding, onveranderde woninggegevens, omkeerbare keuzes, behoud van batterij-inventaris, ontbreken van dubbele fysieke invoer en veilige PV-verrijking. Standalone rapport-rendering zonder woningpagina behoudt een compatibele invoermodus; de app gebruikt altijd de centrale woningmodus. De volledige reeks telt 55 scripts. Interactieve browser-QA blijft niet uitgevoerd wegens de ontbrekende beheerde preview voor deze Worker ESM-configuratie; de genoemde QA is geautomatiseerde code-, model- en rendercontrole.
QA-opvolging: consistente resultaatteksten
De gerapporteerde combinatie “offerte nodig” en “kies een scenario binnen je budget” was onjuist. Een ontbrekende prijs betekent nu expliciet dat budgettoets en aankoopadvies nog niet mogelijk zijn. Alleen een bekende investering boven een positief ingesteld budget krijgt de melding buiten budget. De financiële selectie blijft conservatief: zonder prijs geen aankoopaanbeveling.
Er zijn afzonderlijke teksttoestanden voor ontbrekend scenario, ontbrekende prijs, onvolledig meetjaar, ongeldige kosteninvoer, bekende overschrijding van budget, positieve levensduurwaarde en onvoldoende levensduurwaarde. Een positieve jaarbesparing zonder terugverdientijd binnen de ingestelde looptijd heet niet langer “geen positieve besparing”. Vergelijkingsduur is dynamisch in de aankoopkaart. Eenvoudige en verdisconteerde terugverdientijd blijven benoemd als verschillende methoden.
Het hoofdresultaat toont bedragen onder hun eigen label: besparing zonder nieuwe batterij, totale besparing met het gekozen aantal en het kostenverschil tegenover de beste geteste aanpak zonder nieuwe batterij. Een contractwissel of andere sturing kan onderdeel zijn van die aanpak; het verschil wordt daarom niet automatisch als zuivere hardwarewinst beschreven. De aankoop staat apart. “1 batterij(en)” en “besparen extra” zijn uit deze hoofdteksten gehaald. PV-voorstellen voor eigen gebruik worden als technisch voorstel aangeduid; ontbrekende prijs is geen nul euro. Bij warmtepomp en deeljaar wordt niet opnieuw een al ingevulde prijs gevraagd. Capaciteitseffecten en negatieve jaarvoordelen worden niet als positieve winst gelabeld. Praktische sturing en theoretische voorkennis krijgen passende beschrijvingen.
Regressies result-copy.mjs en geïntegreerde rapporttests dekken onbekende/ontbrekende prijs met en zonder budget, echte budgetoverschrijding, deeljaar, positieve en negatieve financiële uitkomst, looptijd, enkelvoud/meervoud en bekende warmtepompprijs. De opgegeven voorbeeldbedragen € 487 totaal, € 288 zonder aankoop en € 199 extra zijn gebruikt als tekstfixture; dit is geen herberekening van persoonlijke meetdata. De volledige reeks telt 56 scripts. Visuele browser-QA blijft niet uitgevoerd.
Geaccepteerde vervolgacties na de onafhankelijke toets
De gebruiker kiest expliciet voor jaarlijks overstappen met opnieuw een vergelijkbaar kortingsvoordeel als meerjarige scenario-aanname. Deze aanname is zichtbaar bij het batterijaankoopadvies en de financiële aannames. De berekening voorspelt geen toekomstige leverancier of promotie en garandeert geen toekomstige toelating tot kortingen. Er wordt geen fictieve toekomstige tariefkaart gegenereerd.
Uitgevoerd:
- Onbekende of dubbele elektriciteitscomponenten worden afgewezen vóór prijsberekening, inclusief actieve injectiecomponenten. Ook dubbele gascomponenten worden afgewezen. Bekende alternatieven voor metertypes blijven toegestaan. Een niet-berekenbaar aanbod kan niet via een weggelaten vergoeding goedkoop bovenaan eindigen.
- Huidige korting onbekend is gescheiden van expliciet nul. Bij elektriciteit is er een knop Geen korting; bij gas dezelfde bevestiging. Contractspecifieke gegevens blijven behouden. De gewone bespaarkaarten tonen nog geen bevestigd persoonlijk bedrag zolang de huidige korting onbekend is. Analysescenario's krijgen een expliciete indicatiemelding en geen aankoopadvies op die onzekere nulmeting. Voor warmtepompomschakeling worden de relevante huidige kortingen eveneens gecontroleerd.
- De uitgebreide elektriciteitsanalyse krijgt tot drie aanbiedingen per type en vergelijkt deze met dezelfde sturing en het gekozen batterijaantal. De korte indicatie blijft begrensd tot één vooraf geselecteerd aanbod per type voor snelheid. Het afzonderlijke omvangrijke PV-/aankooponderzoek houdt zijn benoemde beperktere contractselectie; geen claim van uitputtende marktoptimalisatie.
- De gewone vergelijker toont aantallen berekenbare/niet-berekenbare aanbiedingen, uitleg over kostenrangschikking en vast/variabel/dynamisch. De meeste verbeter- en aankoopscenario's blijven in Analyse. Vaste kosten voor een deelperiode blijven expliciet een berekening naar rato, geen garantie van de contractuele eindafrekening. Sociaal tarief is als niet-ondersteunde scope vermeld.
- De preview-cache volgt ook laadbeschikbaarheid, sturen aan/uit, batterijregeling, batterijvermogen/rendement en relevante stuurkosten. Nieuwe instellingen mogen geen oude besparingsindicatie hergebruiken.
Regressie audit-implementation.mjs controleert afwijzing van onbekende/dubbele verplichte kosten en injectiekosten, expliciete bevestiging zonder andere contracten te wissen, blokkering van warmtepompadvies bij onbekende korting, de begrensde ruimere shortlist en de scheiding tussen snelle indicatie en uitgebreide analyse. De volledige reeks bevat nu 57 scripts.
Niet automatisch opgelost: wettelijke toelating en persoonlijke voorwaarden van elke promotie, uitzonderlijke fiscale/sociale situaties, volledige leverancier-specifieke inningsvoorwaarden voor vaste kosten en verificatie tegen persoonlijke facturen. Er is hiermee geen juridische vrijgave of kwaliteitslabel afgegeven.
Aanpassing: factuurvoordeel en volledige marktmaanden
Het batterijadvies kiest nu de laagste volledige gebruikskosten, onafhankelijk van aankoopprijs, budget of een financiële levensduurraming. Totale besparing tegenover het huidige contract en extra voordeel boven de beste aanpak zonder batterij blijven apart. Het optionele maatonderzoek vergelijkt PV-opslag en dynamische prijssturing, geeft bruikbare kWh en laad-/ontlaadvermogen in kW, en kiest per doel de kleinste geteste capaciteit met minstens 95% van het maximale geteste doel, gevolgd door het laagste vermogen. De twee passende voorstellen worden op volledige factuur vergeleken. Dit is een begrensd technisch onderzoek, geen aankooprendement of bewezen mondiaal optimum.
De marktprijscache is vernieuwd. Afgesloten maanden worden op volledige kalenderdekking gecontroleerd, ook bij kwartieren zonder afname/injectie. Onvolledige maanden worden apart opnieuw opgehaald met omzeiling van de tijdelijke servercache; geen prijzen worden verzonnen. Bestaande tariefberekeningen worden na verversing ongeldig gemaakt, ook als het aantal prijzen gelijk blijft. De actuele openbare Energy-Charts-bron voor december 2025 is gecontroleerd en bevatte 2976 kwartierprijzen, samen de volledige Belgische kalendermaand. Een regressietest voert de echte app uit met een onvolledige reeks en controleert automatisch maandherstel en een berekenbare vooruitblik.
Herstel simulatiemodus op verzoek van de gebruiker
De productie-interface sluit producten niet langer uit uitsluitend omdat de exacte RLP-, SPP-, kwartaal- of Endex-reeks ontbreekt. De contractcoëfficiënten, vaste vergoedingen en kortingen blijven behouden. In de vooruitblik gebruiken ontbrekende indexen de actuele maandcurve; kwartaalindexen krijgen een kwartaalgemiddelde. Waar de gedeelde tariefmaand een consistente indexwaarde en spotanker bevat, blijft het gepubliceerde prijsverschil behouden. Dit is geen exacte reconstructie van de indexmethodiek. Historische vergelijkingen gebruiken bij ontbrekende indexen een aangeduide beschikbare spotmaand of tariefkaartindex.
Ontbrekende vooruitblikkwartieren krijgen een expliciet gesimuleerd week-/dagpatroon uit beschikbare data. Is geen patroon beschikbaar, dan geldt de maandcurve zonder veronderstelde intradagspreiding. Daardoor is vooral het batterij- en laadvoordeel onzekerder; er wordt geen garantie gegeven dat de afwijking onder €100 blijft. Benaderingen staan bij de vooruitblik en de contractprijsopbouw. De oorspronkelijke waargenomen marktdata worden niet aangepast. De technische strikte bibliotheekmodus blijft beschikbaar voor tests en controles; de site schakelt expliciet simulatiemodus in.
Regressie: zonder enige spotwaarneming voor januari 2025 blijven de vooruitblik van het bestaande Eneco-contract en de batterijprijzen berekenbaar. Cataloguscontrole van de 127 woningproducten uit de huidige publicatie levert bij het testprofiel met injectie 119 berekenbare producten. Acht overblijvende uitsluitingen hebben betrekking op daadwerkelijk ontbrekende afname-/injectietarieven of bijzondere facturatiestructuren; geen ervan wordt veroorzaakt door een ontbrekende indexreeks. De koppeling van injectie ondersteunt nu ook productnamen met het achtervoegsel Injectie en de unieke variabele injectiekaart bij vaste contracten van Energie.be, TotalEnergies en OCTA+. Geen willekeurig concurrerend injectietarief wordt ingevuld.