{
  "_uitleg": "Alle regels voor pakketkeuze staan hier. Pas getallen aan en herlaad de pagina; de code hoeft niet te veranderen. Alle getallen zijn prototype-aannames, geen offertegegevens.",
  "aannames": {
    "opbrengst_kwh_per_kwp": 900,
    "oriëntatie_factor": { "zuid": 1.0, "oost-west": 0.88, "oost": 0.8, "west": 0.8, "noord": 0.55, "weet-niet": 0.9 },
    "laadpaal_kwh_per_jaar": 2500,
    "laadpaal_uren": [18, 19, 20, 21, 22],
    "laadpaal_uren_dynamisch": [1, 2, 3, 4],
    "rendement_rondrit": 0.9,
    "tarief_eur_per_kwh": { "inkoop_vast": 0.32, "terugleveren": 0.07, "dynamisch_spreiding": 0.12 },
    "thuis_profiel": {
      "overdag-thuis": [2,1.5,1.5,1.5,1.5,2,4,5,5,5,5,5,5,5,5,5,6,8,9,8,6,4,3,2.5],
      "gemiddeld":     [2,1.5,1.5,1.5,1.5,2.5,5,6,4,3,3,3,3.5,3.5,3.5,4,5,7,9,9,7,5,3.5,2.5],
      "overdag-weg":   [2,1.5,1.5,1.5,1.5,2.5,5,6,3,2,2,2,2,2,2,2.5,4,8,10,10,8,5,3.5,2.5]
    },
    "zon_uren_vorm": {
      "zuid":      { "piek": 13, "breedte": 2.6 },
      "oost-west": { "piek": 13, "breedte": 2.9 },
      "oost":      { "piek": 11, "breedte": 2.9 },
      "west":      { "piek": 15, "breedte": 2.9 },
      "noord":     { "piek": 13, "breedte": 3.3 },
      "weet-niet": { "piek": 13, "breedte": 3.0 }
    }
  },
  "pakketten": [
    { "id": "S",  "naam": "Klein",   "kwh": 5,  "kw": 2.5, "geschikt_fase": ["1", "3"] },
    { "id": "M",  "naam": "Midden",  "kwh": 10, "kw": 5,   "geschikt_fase": ["1", "3"] },
    { "id": "L",  "naam": "Groot",   "kwh": 15, "kw": 7.5, "geschikt_fase": ["3"] },
    { "id": "XL", "naam": "Extra groot", "kwh": 20, "kw": 10, "geschikt_fase": ["3"] }
  ],
  "keuzeregels": {
    "_uitleg": "Het advies is het kleinste pakket dat minstens 'dekking_doel' van de nuttige dagcapaciteit haalt. Nuttig = wat overdag overblijft aan zon of 's avonds verbruikt wordt, welke van de twee kleiner is.",
    "dekking_doel": 0.85,
    "geen_advies_onder_nuttig_kwh": 2.0,
    "zonder_panelen_max_pakket": "S",
    "zonder_panelen_alleen_bij_tarief": "dynamisch",
    "extra_pakket_bij_laadpaal": true,
    "min_marginale_winst_kwh_per_kwh_capaciteit": 40
  },
  "controles": [
    { "als": { "omvormer": "onbekend" }, "ernst": "open", "tekst": "Merk en type omvormer ontbreken: zonder datasheet geen koppeling te beoordelen (spanningsbereik, communicatie, BMS-protocol)." },
    { "als": { "omvormer": "hybride" }, "ernst": "controle", "tekst": "Hybride omvormer: controleer of de batterijspanning en -stroom binnen het datasheetbereik vallen en of fabrikant dit pakket als compatibel noemt." },
    { "als": { "omvormer": "string" }, "ernst": "controle", "tekst": "String-omvormer: batterij wordt AC-gekoppeld (eigen omvormer). Controleer extra verlies en of de installatie een nulinjectie-/uitlezing van de meter ondersteunt." },
    { "als": { "fase": "1" }, "ernst": "controle", "tekst": "Eenfase-aansluiting: controleer maximale batterijvermogen en of het pakket eenfase mag draaien." },
    { "als": { "fase": "weet-niet" }, "ernst": "open", "tekst": "Aansluiting (1- of 3-fase) onbekend: kijk op de meterkast of de netbeheerder-gegevens." },
    { "als": { "laadpaal": "ja" }, "ernst": "controle", "tekst": "Laadpaal aanwezig: controleer lastbalancering en of laadpaal en batterij elkaar niet tegenwerken (batterij mag niet de auto laden bij piekvraag zonder afspraak)." },
    { "als": { "laadpaal": "gepland" }, "ernst": "controle", "tekst": "Laadpaal gepland: ruimte in de aansluiting en het pakketvermogen opnieuw toetsen zodra het laadvermogen vaststaat." },
    { "als": { "tarief": "dynamisch" }, "ernst": "controle", "tekst": "Dynamisch contract: controleer of de leverancier uurprijzen of kwartierprijzen gebruikt en hoe terugleveren en opslagkosten zijn geregeld." },
    { "als": { "tarief": "weet-niet" }, "ernst": "open", "tekst": "Contractvorm onbekend: haal het laatste jaaroverzicht op; dit bepaalt of dynamisch sturen waarde heeft." },
    { "als": { "oriëntatie": "noord" }, "ernst": "controle", "tekst": "Noordelijke ligging: meet de echte opbrengst vóór dimensionering; de schatting is onzeker." },
    { "als": { "oriëntatie": "weet-niet" }, "ernst": "open", "tekst": "Dakoriëntatie onbekend: schatting gebruikt gemiddelde aanname." },
    { "als": { "panelen": "geen" }, "ernst": "controle", "tekst": "Geen panelen: batterij verdient alleen via dynamisch tarief. Toets of de prijsspreiding de investering rechtvaardigt." },
    { "altijd": true, "ernst": "open", "tekst": "Geen kwartierdata van de slimme meter: dagprofiel is een gemodelleerd gemiddelde. Vraag P1- of netbeheerderdata op voor echte dimensionering." },
    { "altijd": true, "ernst": "controle", "tekst": "Plaatsing: ruimte, ventilatie, brandveiligheid en afstand tot meterkast beoordelen door een installateur." },
    { "altijd": true, "ernst": "controle", "tekst": "Aanmelden bij de netbeheerder en geldende regels voor teruglevering na 2026 nalopen." },
    { "altijd": true, "ernst": "controle", "tekst": "Dit advies vervangt geen technische review door een vakman." }
  ]
}
