Congestion Calculator — methodology
The Congestion Calculator (CC1) answers “how congested is region X?” by rolling up the per-substation loadings produced by the inference pipeline. It is the aggregation layer on top of the existing DC load-flow — not a new measurement.
The pipeline, end to end
- Dispatch reconstruction (C1) — the SRMC merit order is walked up to the metered national residual load to estimate which units run each 15 minutes.
- Bus injection (C2) — generation is allocated to network buses and load to buses via postcode-consumption weights → net injection per bus.
- DC load-flow (C3) — a pandapower DC solve yields per-line flows; each bus’s
max_loading_pctis the worst|flow| / s_nomacross its incident lines and transformers. ≥ 100% = a binding constraint. - Area rollup (CC1) — buses are mapped to areas through the gold
postcodes.tennet_id → network_buseschain, and the per-bus stress is aggregated to the worst and median loading%, plus counts over the 85% and 100% thresholds.
Area grains
Three grains are exposed: PC4 (postcode block — what a developer types), voedingsgebied (the capaciteitskaart unit, the natural calibration grain), and province (the coarse rollup). Each resolves to the TenneT bus(es) feeding it.
Thresholds
- Stressed — a bus at ≥ 85% loading (approaching its limit).
- Binding — a bus at ≥ 100% (a branch at or over its thermal rating).
- An area is flagged congested when its worst bus is binding.
What this is — and isn’t
Classification-grade, not metering-grade: roughly 75–85% right on “is this area stressed?”, with ±20–30% on the absolute loading%. Suitable for screening, scorecarding, research and journalism — not real-time operations, N-1 contingency, or bankable guarantees.
Three caveats inherited by every number:
- One bidding zone. The Netherlands is a single price zone, so wholesale/imbalance prices carry no locational signal. This congestion is inferred from a physics model on metered load + the merit order — not from prices.
- Line ratings (gap G1). Loadings use class-level thermal ratings per voltage tier, not per-asset nameplate values, so the absolute percentage carries error. Per-circuit ratings (TenneT IP2026) are a follow-up.
- HV ceiling (gap G6). The model stops at the HV grid feeding each area. Most MS/LV-feeder congestion a connection queue hits is below this layer and is not captured dynamically.
See also the curtailment estimator (per-site hours) and the Stress Lens (the v0 provincial index).