ALBERTA · ORPHAN WELL ASSOCIATION INVENTORY · SENTINEL-2

Reclamation Evidence Ledger

An independent satellite watchdog for Alberta’s orphan wells — free imagery, an automated pipeline, and one question per site, answered on a schedule: is the land healing?

99
SITES ASSESSED
13
LICENSEES
21,892
REGISTRY SITES · OWA 2026-09
10 m
SENTINEL-2 PIXEL
~5-day
REVISIT
RENDERED 2026-09-29 13:25 UTC FROM 99 EVIDENCE PACKETS · SCHEMA v1.1.0 · EVERY PACKET VALIDATED ON EACH PUSH TO MAIN
PLATE I

The Instrument Audited Itself

The most important thing this project produced wasn’t a green dashboard — it was a caught mistake.

V1 · SEASONAL MEDIANS

All 27 sites “recovering”

The first change-detection method compared seasonal vegetation medians and reported that every pilot site was healing. A green dashboard. It was wrong.

AUDIT · 2026-09-27

Measuring the calendar

A full audit found the flaw: baseline scenes were sampled in May/June while current scenes were sampled in July. Summer is greener than spring — the method was measuring phenology, not reclamation.

V2 · MONTH-MATCHED

Honest refusals

Rebuilt around month-matched median-of-deltas: each calendar month compared only to itself, ≥2 matched months required, honest refusal otherwise. Under the corrected method most sites show no significant change — and the ledger says so.

Fig. 1 — Verification suite, run against the rebuilt assessor (2026-09-27)
TRACE A · RECOVERY
+0.30
synthetic greening → correctly detected as recovery
TRACE B · NO CHANGE
+0.01
synthetic flatline → correctly held as no significant change
TRACE C · REGRESSION
−0.30
synthetic browning → correctly detected as stalled / regressing
TRACE D · PHENOLOGY TRAP
REFUSED
no overlapping calendar months → assessment refused, not guessed

A watchdog that can’t catch its own errors can’t be trusted to watch anyone else.

PLATE II

Findings — 99 Sites

Pilot-01’s 27 Lexin sites plus Pilot-02’s expansion to 13 licensees. One honest distribution, not 99 green lights.

99
SITES
ASSESSED
28
IDENTIFIED
CHANGE SIGNAL
71
DETECTED
NO SIG. CHANGE
3
IDENTIFIED
HIGH CONFIDENCE
12
SITES WITH
NO CI PRINTED
Fig. 2 — Distribution of median matched-month NDVI deltas (Δ)
Ledger pipeline v2 month-matched median Δ across all 99 sites; ±0.08 noise band from the pipeline config. Solid bars carry a signal; hatched bars sit inside the noise.
|Δ| ≥ 0.08 — outside noise → identified |Δ| < 0.08 — noise band → detected

The tier boundary is the ±0.08 noise band from the pipeline config: a median matched-month delta outside it is identified (recovering if positive, stalled/regressing if negative); inside it is detected — something was measured, no signal claimed.

Fig. 3 — Site register (click a row for its dossier)
Site ↕Licensee ↕Tier ↕ Conf. ↕Δ NDVI ↕ 95% CIMatched mo.Packet
Evidence packets, schema v1.1.0; each row links its packet page with scenes, chips, checksums, and caveats. Click a row for the full dossier.
PLATE III

Site Dossier

One site, full evidence: every scene the claim rests on, the months that were actually compared, and everything the pipeline refused to claim.

PLATE IV

Method — Why Month-Matching

Greenness follows the calendar, not the project. So the ledger never compares July to May.

Fig. 6 — The month-matched comparison (the v1 flaw, and the fix)
BASELINE · 2023–2024 CURRENT · 2025–2026 Δm computed per matched month; the signal is the median of Δm. Unmatched months never enter the delta.
Pipeline change.py, month-matched median-of-deltas; the v1 seasonal-median flaw and its fix are documented in Plate I.
Doctrine — borrowed from imagery interpretation tradecraft

Detection

Something changed vs the baseline — a measured delta. The pipeline’s lowest claim, and an honest one.

Identification

The change is consistent with a reclamation signal across multiple observations — a hypothesis, caveats attached.

Attribution

A named party is responsible. Never emitted by code. Requires human review and ground truth. The pipeline stops at identified.

Honest limits
PLATE V

The Ledger Keeps Auditing Itself

After the rebuild, the instrument was stress-tested with a before-after-control-impact (BACI) probe: can a paired control parcel separate weather from reclamation? Twin-first — cheap simulation before any new downloads.

VERDICT · GO — WITH CHANGES

The probe reproduced the pipeline’s month-matched deltas bit-for-bit on four sites, then found five things. Three of them changed the pipeline.

F1 · GEOMETRY

In-chip controls are impossible

The chip is the 500 m assessment buffer — no room inside it for a true control. Real controls need fresh 1.2 km-offset chips.

F2 · HETEROGENEITY

Control selection is the whole game

Baseline NDVI spreads of 0.15–0.20 within one chip swing the result wildly. Proximity alone doesn’t make a valid control — land-cover matching does.

F3 · FIXED IN PIPELINE

Degenerate confidence intervals

At 2 matched months the bootstrap CI looks precise and means nothing. The probe’s fix is now a rule in change.py: no interval printed below 4 matched months.

F4 · ROBUSTNESS

Off-by-one chip dimensions handled

10 of 513 scenes have truncated window dimensions; the pipeline pins bands per-scene, so nothing breaks — verified, not assumed.

F5 · ECONOMY

Sites cluster; controls can be shared

26 of 27 pilot sites have a neighbour within 3 km. One control chip could serve two nearby sites — pending per-pair land-cover validation.

STANDING RULE

Probes before downloads

No download campaign runs until a cheap simulation has found what breaks. The BACI full run — 27 control chips, ~39 MB, under an hour — is greenlit once the land-cover pre-flight is implemented.