Documentation in four layers, for four readers: who uses it, who wants the idea, who builds it, and who goes further.
1 · For the user moves with the code
/sluiting — the state of one area
You choose an area. You see one large number: the index from 0 to 100. A hundred means the water stands as high as it ever stood here during the scale period; zero means as low as it ever stood. Below it the state in words, the week of the last measurement, and the trend over ninety days. If the most recent measurement is more than four months old, the page says there is no current state — it never extrapolates.
Below that the course as a line, what sits underneath (the four readings with their kind), and the measurement points with their surface level. Every reading carries a label: measured, derived or gap. Derived means: computed from another reading, so not independent confirmation. Gap means: nothing here yet.
/api/sluiting — the state as data
Returns the area, the scale, the measurement points, the current state and the weekly series. Parameter gebied (default zegveld).
/api/sluiting/gebieden — which areas are frozen
/api/sluiting/voorraad — the soil borings in the area
/api/sluiting/plan — the hashed plan and the outcome
2 · For the thinker lasting
Climate policy steers on one number: CO2 in the air. That number has no address. Nobody can touch a global mean on their own land. A mesh does have an address: a farmer on peat whose land sinks, a water board that sets a level every week.
A mesh closes when what circulates returns. For water: the water stays. Where the level drops, water runs off and the heat stays at the ground — and in peat the carbon goes too. Water level and carbon stock are one state, read twice.
So this instrument counts closure, not emissions, and does it on the spot. The scale is per well, not national: what is high in Zegveld is not high on the Veluwe. The index says where this well stands relative to its own past.
What it is not. No alarm and no threshold. Three times before a fixed threshold on a tension measure failed (heart rhythm, conflict, grokking); here only a state is shown. No global mean: the index has an address or it does not exist. No advice: what anyone does with a water level is for the water board and the residents.
3 · For the builder moves with the code
Sources. Dutch subsurface register (publiek.broservices.nl), open and keyless: GMW (well location and surface level in m NAP), GLD (the series in m NAP), BHR-P (soil borings). Level below surface = (surface − level) × 100 cm.
Linking well to dossier. The register has no area search on dossiers. The route runs via the owners of the wells in the area: fetch all their dossier headers and keep what belongs to a well in the area. A full dossier is ~56 MB; with an empty observation window the same header returns in ~2 kB. This step runs once (bevries.mjs) and is frozen in gebieden/<name>.json.
The scale. Per point 101 quantiles over a fixed period, from the series itself. The rank is inverted: shallow water = high score. Points with too few measurements in that period are excluded. The scale is not revised after it is set; a new scale is a new version of the plan.
The index. Per week the median of the scores across points — median, not mean, so one dry well cannot tip the area. Trend = difference with thirteen weeks back.
Never fail silently. While building, a silent catch made 720 failed requests indistinguishable from "nothing found". Every loop now counts its failures and aborts when they mount. The register throttles with 429; fetching waits and retries.
Files. bro.mjs · bevries.mjs · maatlat.mjs · sluiting.mjs · route.mjs · pagina.html · plan-sluitingsindex-1.md (+ .sha256) · uitkomst-sluitingsindex-1.md
4 · For the connector lasting
The same machine already runs twice elsewhere: the regional weather of the MAZE bank and the Conflict Weather Gauge. Frozen scale, quantile rank, state, trend. To add a third area, run bevries.mjs with a name and a point.
Open: the two missing readings. Subsidence needs InSAR (bodemdalingskaart.nl offers downloads only, no API). Field temperature needs a satellite pipeline. Until they exist they stand on the page as a gap — not as zero.
The essays this follows from: The Reading and the State and What CO2 Does to the Heat. The difference: in those essays the work is arithmetic on published values of others. This is the part that did not exist yet.