← EnergyView

EnergyView — extra investeringsberekeningen herstellen

Aanleiding en oorzaak

Dynamische investeringsvarianten toonden “Extra test niet afgerond”. De voorzichtige selectie kon daarna terugvallen op “Geen nieuwe installatie”, hoewel de gewone berekening winstgevende aankopen toonde.

De bestaande dynamische dispatch beoordeelt tussentijds dagvensters. withoutPositiveInjectionPricing vereiste dat ieder prijsverzoek precies evenveel kwartieren bevatte als het volledige meetjaar. Een geldig dagvenster werd daarom afgewezen. Er worden geen tijdstippen door de solver verschoven: de fout was de onjuiste eis dat ook tussentijdse prijsverzoeken een volledig jaar moesten bevatten. De eerdere uitleg “profielverschil” wordt hiermee nader gespecificeerd.

Correctie

De extra prijsberekening koppelt deelvensters aan de oorspronkelijke kwartierprijzen op UTC-tijdstip. De tijdindex wordt pas opgebouwd wanneer een deelvenster nodig is en wordt binnen de berekening hergebruikt. Volledige profielen behouden de directe indexroute. Onbekende, dubbele en verkeerd geordende tijdstippen blijven afgewezen. Alleen positieve injectie-inkomsten vervallen; negatieve injectiekosten, vaste kosten en factuurvoorwaarden blijven bestaan.

De kandidaatselectie gebruikt de bestaande voorzichtige regels, inclusief €20 extra batterijvoordeel per nominale kWh per jaar. Als benodigde extra resultaten ontbreken of de zoekruimte wegens de tijdgrens onvolledig is, wordt niet langer automatisch de nulreferentie als koopadvies teruggegeven. Wanneer er geen geldige winstgevende aanbeveling beschikbaar is, staat er “Aankoopadvies nog onvolledig”. De nulreferentie blijft zichtbaar in de volledige tabel. Bij volledig geteste onvoordelige aankopen mag geen aankoop nog steeds de uitkomst zijn.

B5 is niet toegepast. Dispatch, tariefformules, PV-productie, aankoopprijzen en golden-referenties zijn niet vervangen. De bestandsvingerafdruk van investment-risk.js is bewust aangepast voor deze expliciet gevraagde foutcorrectie; alle andere beschermde modules behouden hun controle.

Verificatie

De nieuwe investeringstest gebruikt echte Eneco-dynamische tariefformules, deelvensters over de wintertijdwissel, een onafhankelijke som van positieve injectie-inkomsten en geldige/ongeldige tijdstippen. De test voert bovendien echte PV- en batterij-stresstests uit en controleert onveranderde invoer, onvolledig advies en een geldige nulreferentie.

Een afzonderlijke jaarproef gebruikt 35.040 kwartieren, echte dynamische factuurprijzen, PV- en batterijvarianten en drie scenario’s per variant. De bestaande vaste-tariefjaarproef blijft behouden.

De eerste volledige suite liep tegen twee achtergebleven tekstasserties uit de vorige Vandaag-kaartwijziging aan, plus een assertie die bij onvolledige investeringsresultaten nog een nulreferentie als advies verwachtte. Die verwachtingen zijn expliciet aangepast aan de bedoelde schermtekst en de nieuwe onvolledigheidsstatus. Geen numerieke testtolerantie versoepeld.

Rekentijd en geheugen

Vijf seriële runs per versie, dezelfde machine, synthetisch volledig jaar met één 2.000 Wp + 2,7 kWh dynamische PV/batterijvariant. Dit meet het toevoegen van de drie investeringsscenario’s, niet de volledige app of het gebruikersbestand. De gewone basisuitkomst is voor en na exact gelijk.

MetingVoor, tests stoppen voortijdigNa, tests volledig uitgevoerd
Mediaan rekentijd278 ms1.213 ms
Minimum–maximum272–288 ms1.152–1.353 ms
Hoogste proces-piek-RSS286,6 MiB388,2 MiB

De circa 935 ms extra voor deze variant is echt extra werk; dit is geen versnelling. Ook de gemeten geheugenpiek stijgt. Het effect voor een volledig onderzoek hangt af van de varianten, data en machine; deze resultaten mogen niet met het aantal tabelregels worden vermenigvuldigd als exacte voorspelling. De bestaande zoeklimiet en worker-time-out blijven gelden. De app gebruikt dezelfde achtergrondworker en voortgang; het eenvoudige contractresultaat hoeft niet op het onderzoek te wachten. Geen nieuwe garantie over browserresponsiviteit of piekgeheugen.

Eindcontrole

De herhaalde volledige suite is groen: 229/229 tests geslaagd. De dynamische jaarproef rekende 23/23 combinaties × drie scenario’s volledig uit in circa 54,6 seconden, zonder ontbrekende resultaten of fouten, binnen de bestaande testlimiet. Dit synthetische profiel kiest zonnepanelen als voorzichtige financiële keuze; de batterijkaart toont nu ook bedragen voor beide extra tests. Een tweede browserweergave met bewust ontbrekende tests toont “Aankoopadvies nog onvolledig” en presenteert geen nulreferentie als aanbeveling.

Lint: 737 bestaande meldingen en nul nieuwe groepen. Typecheck: 469 bestaande meldingen en nul nieuwe groepen. Opmaakcontrole groen. Browsercontrole betreft het echte investeringscomponent met de werkelijke synthetische jaarresultaten, niet het persoonlijke gebruikersbestand en niet een volledige nieuwe doorloop van de app.

De acht bestaande golden-scenario’s slagen opnieuw: bedragen binnen €0,01, identieke ranglijsten en identifiers. De golden-referentie is niet gewijzigd. Deze bestaande fixtures vervangen de afzonderlijke nieuwe investeringstests niet.