ATR85 curtailment estimator
Hoe de site-curtailment-schatter werkt — de motor onder de Solar Workbench en het /api/inference/site-curtailment endpoint (build-plan PR D2a).
Wat de schatter doet
Voor een postcode + capaciteit (MW) + technologie (solar / batterij / DC-load) berekent de schatter het verwachte aantal curtailment-uren per jaar, met een P10/P50/P90 vertrouwensband over de beschikbare jaren. De output gaat de IRR-vergelijking in (D2b) en wordt op de Workbench getoond als de headline-getal.
Stappen in het algoritme
- Postcode → bus. Via de bestaande
postcodes.tennet_idketen wordt de PC6 (of PC4 als prefix) gekoppeld aan een TenneT-bus innetwork_buses(operator = TenneT, hoogstevoltage_kvwint). - Pull historie. Alle rijen in
substation_stress_15mvoor die bus, gebucketeerd per kalenderjaar (UTC). - Tel drempeloverschrijdingen. Elke ISP waarbij
max_loading_pct ≥drempel telt mee. Drempels (uit ATR85-praktijk):- Solar / DC: 95% (DSO knipt vaak vóór binding)
- Batterij: 100% (alleen bij echte binding)
- Percentiel over jaren. P10 / P50 / P90 + slechtste-jaar — lineair geïnterpoleerd, geen Gaussiaanse aanname.
- Vertrouwensband-verbreding bij weinig historie. Bij < 12 maanden sample wordt de P10/P90-band lineair uitgerekt tot ±50% bij 1 maand. Doel: niet doen alsof we 12-jaars zekerheid hebben als we 3 maanden hebben.
Wat de schatter expliciet NIET doet
- N-1 contingentie. Lijnen worden behandeld op hun gepubliceerde s_nom (thermische limiet), zonder uitval. Real-world curtailment is vaak N-1: een buurlijn valt uit voor onderhoud, jouw bus springt van 60% naar 110%, je wordt geknipt. v1 mist dat.
- Voltage / blindvermogen. DC-load-flow negeert spanning en reactief vermogen. In de Randstad is curtailment vaak reactief-gedreven; daar onderdetecteren we.
- Sub-substation granulariteit. We resolven naar bus-niveau, niet naar jouw specifieke aansluitkabel. Als die kabel de bottleneck is, missen we het.
- Operator-beleid. DSO’s kunnen vóór de fysica knippen (precaution) of er overheen rijden (margin). We modelleren de fysica, niet het beleid.
Accuracy bands
Elke respons van het endpoint draagt deze band mee in het methodology veld:
Classification-grade not metering-grade. ±20-30 hours on a 100-300 h annual estimate in well-instrumented areas (FGU, Limburg); ±50-80 h in BTM-PV-heavy areas (Brabant). Suitable for site screening + IRR comparison; not for bankable contract clauses.
Volledige bandentabel staat op de hoofdmethode-pagina.
Code en versies
- Source:
backend/app/inference/curtailment.py - Algoritme-versie:
curtailment_v1— bumps bij elke fysica-verandering; staat in elke respons onderalgo_version. - Spec:
planning/STATION_CONGESTION_BUILD_PLAN.md§D2a enplanning/D2a-D2b-build-spec.md§2.1.
Probeer het zelf: Solar Workbench.