physical_change
Live — €149/measurement, on-demand

Capability · physical_change / measure_physical_change

physical_change

A permit, a declared capacity, a satellite thumbnail — the record you already have for a site says what it was supposed to become, not what actually changed on the ground. This measures the real physical change between two dates. Given a real polygon and two LiDAR epochs, the same unmodified function computes volume change with honest uncertainty, coverage, and full evidence — validated on 4 independent real sites across 2 countries, never reinterpreted after seeing results (success/failure criteria were frozen before running any site).

Input / output

Input

  • A real polygon (asset boundary)
  • Epoch A: a LiDAR source + nominal date
  • Epoch B: a second LiDAR source + nominal date
  • Whether the dates are independently verified (e.g. by GPS time embedded in the points, not just the filename)

Output

  • volume_change_m3 ± uncertainty_m3
  • usable_coverage_pct, n_stable_control_cells
  • stable_control_offset_m / sigma_m (calibration ring)
  • classification (never forced — can come back inconclusive)
  • evidence_refs — real point counts, runtimes, source files
  • verdict_block — verdict/confidence/declared_state/observed_state/delta/sensor_agreement/evidence/recommended_next_action, wrapped around the fields above

Real verdict_block, from the live Ca na Putxa site page (full raw measurement still included, nothing hidden — see the full JSON):

{
  "verdict": "CHANGE_CONFIRMED",
  "confidence": 0.999,
  "declared_state": "Epoch A (2019-11-25) - reference/baseline surface",
  "observed_state": "Epoch B (2024-04-16) - current surface",
  "delta": {"volume_change_m3": 310357.2, "uncertainty_m3": 182.9, "unit": "m3"},
  "sensor_agreement": {
    "status": "not_applicable_single_sensor",
    "note": "LiDAR vs. LiDAR - no second independent sensor to cross-check against today."
  },
  "recommended_next_action": "None - result is decisive."
}

confidence is never a new invented number — it's derived from the same uncertainty_to_change_ratio threshold the method already uses internally to decide DECISION_USEFUL_CHANGE_DETECTED vs. AMBIGUOUS_MAGNITUDE. It's null for any hard-failed measurement, never a placeholder score. Every on-demand paid measurement and all 536 free published site pages carry this same block.

4 validated sites — real numbers, no cherry-picking

Success/failure thresholds (coverage ≥50%, ≥200 stable control cells, σ≤1.0m, |offset|≤2.0m) were frozen before any site was run. A 5th site (Pasco County, FL) genuinely failed — 0 points returned across multiple real bounding boxes — and was recorded as a failure, not retried into a pass.

SiteReal datesCoverageσ controlDetection thresholdResult ± uncertaintyRatioPass?
Ca na Putxa (Baleares, Spain) 2019-11-25 → 2024-04-16 (GPS-time confirmed) 83.5%0.3124 m0.937 m +310,357.2 ± 182.9 m³0.0006YES
Leon County, FL (USA) 2009 → 2018 (official USGS project names) 98.6%0.3463 m1.039 m +87,954.6 ± 119.7 m³0.0014YES
Orchard Ridge RDF, WI (USA) 2006 → 2017 (official USGS project names) 99.4%0.5325 m1.598 m +226,719.8 ± 194.9 m³0.0009YES
Vertedero de Alicante (Spain, mainland) 2009 (Aug–Dec) → 2016–17 (Aug–Mar), official campaign window 89.0%0.1544 m0.463 m +1,091,709.8 ± 181.8 m³0.0002YES

4/4 sites — 2 countries (Spain, USA), 3 climates (Mediterranean, subtropical Florida, glacial Wisconsin) — same measure_physical_change() function, zero site-specific code branches. Magnitudes are not compared against any declared capacity figure here — that cross-check is a separate, source-specific analysis (MITECO/PRTR for Spain, LMOP for the US sites). Completed for 2 of 4 sites so far (Ca na Putxa, Alicante — below); not yet attempted for the other 2.

Declared vs. measured — 2 of 4 sites done, real answers, not clean ones

For Ca na Putxa, the measured volume change above (+310,357 ± 183 m³) was compared against the site's declared waste tonnage (Spain's MITECO annual landfill report, 2019–2023, 5 official PDFs, cross-checked line-by-line against the aggregate regional total — matched exactly in all 5 years) converted to volume with a cited EPA density factor (AP-42, two documented regimes: freshly-compacted vs. settled/degraded waste — no site-specific density study exists for Ca na Putxa, so both are shown, not one picked to fit).

Result: the measured volume is consistently below the declared-mass estimate, in all 4 declared-mass-window × density-regime combinations — but the gap ranges from essentially nothing (-0.6%, settled density + closest calendar window) to large (-47.9%, fresh density + widest window). That's not a clean confirmation and not a clean anomaly — classified honestly as UNRESOLVED_SIGNAL, not forced either way.

Declared-mass windowDensity regime (EPA AP-42)Expected volumeDeclared − measured%
2019–2022 (388,711 t)Fresh-compacted (653–830 kg/m³)468,327–595,270 m³-284,913 to -157,970 m³-47.9% to -33.7%
2019–2022 (388,711 t)Settled/degraded (1,008–1,127 kg/m³)344,908–385,626 m³-75,269 to -34,551 m³-19.5% to -10.0%
2020–2023 (352,050 t)Fresh-compacted (653–830 kg/m³)424,157–539,127 m³-228,770 to -113,800 m³-42.4% to -26.8%
2020–2023 (352,050 t)Settled/degraded (1,008–1,127 kg/m³)312,378–349,256 m³-38,899 to -2,021 m³-11.1% to -0.6%

Two honest reasons this isn't fully resolved yet, both plausible, neither implying any wrongdoing: (1) MITECO's 2024 annual report isn't published yet (verified 2026-09-01) — the declared-mass window can't be extended to match the real LiDAR end date (2024-04-16), so every window here undercounts the declared side by ~3.5 months, pushing the true gap smaller than shown. (2) there's no site-specific density study for Ca na Putxa — waste settles and degrades over ~4 years, which alone could explain most of the gap (the settled/degraded regime brings it to near-zero). This is what the product actually does: run the real numbers, show the honest range, and say plainly what would resolve it (a 2024 MITECO figure, once published; a site-specific density study) instead of picking the number that tells a cleaner story.

Vertedero de Alicante (Fontcalent) — a much bigger honest gap

Same method, second site: measured +1,091,710 ± 182 m³ (2009→2016/17) against declared tonnage from the same MITECO landfill report, facility "Alicante-Fontcalent CTRSU" — but here the declared side has a real structural hole: MITECO's series only starts in 2013 (verified live), so 2009–2012 (roughly the first 4 years of the measured window) has no official figure at all. The 5 years that do exist (2013–2017, 764,264 t of processed reject sent to landfill — the plant's own residual, not raw intake) were cross-checked against the provincial total for 2017 only (matched exactly); 2013–2016 were read directly from clean, consistent rows but without that same aggregate check, declared here as a real limitation, not hidden.

Declared-mass windowDensity regime (EPA AP-42)Expected volumeDeclared − measured%
2013–2017 (764,264 t)Fresh-compacted (653–830 kg/m³)920,800–1,170,389 m³-78,679 to +170,910 m³-6.7% to +18.6%
2013–2017 (764,264 t)Settled/degraded (1,008–1,127 kg/m³)678,140–758,199 m³+333,511 to +413,569 m³+44.0% to +61.0%

Unlike Ca na Putxa (measured consistently below declared), here measured is roughly even-to-above declared — but this comparison is missing ~4 years of real declared tonnage at the front end (not ~3.5 months like Ca na Putxa), so the true declared total is necessarily higher than what's summed here, which would shrink every one of these deltas. Directionally informative, not a resolved answer — same UNRESOLVED_SIGNAL discipline, bigger honest gap in the data itself this time.

Methodology

Stable-terrain calibration ring (15–350m from the polygon edge) gives a robust offset + sigma (median + MAD) between the two epochs. Detection threshold = 3×sigma. Per-cell height difference below threshold is not counted as change. Volume = sum of significant cells × cell area. Classification is NO_SIGNIFICANT_CHANGE_DETECTED if the change is smaller than its own uncertainty, AMBIGUOUS_MAGNITUDE (hard fail, never reinterpreted) if the ratio is too close to call, or DECISION_USEFUL_CHANGE_DETECTED otherwise — exactly what all 4 sites above returned.

Status

Method validated 4/4. gate_unblocks_deployment for the free published-site program stays false permanently — those 390+ pages stay free, that's not changing. The method is now running at scale against the full real EPA LMOP × USGS 3DEP corpus (531 candidates) — every measured site, pass or honest calibration failure, gets its own page with a downloadable JSON: see all measured sites → The LMOP mass-batch subset (530 of these sites) is also available as a single downloadable package: Kaggle → · Zenodo (citable, DOI: 10.5281/zenodo.22283729) →

€149 — measure your site

Enter your site's coordinates, we check real LiDAR coverage automatically — if there's no data for your location, you're never charged. The measurement covers a 200×200m square centered on the coordinate you give us — not a polygon you draw (if your asset is bigger or an irregular shape, tell us in the request-access form below instead; that path can take a real custom polygon). Before you pay, we show you the exact area and the real LiDAR dates we'd use, so you can confirm it's the right spot. Once paid, delivery target is real results within 48-72h (same method, same evidence discipline as every published site above), with an automatic refund if the measurement fails our own quality threshold. For reference, commissioned drone LiDAR surveys typically run $1,500-3,000/day or $10-150/acre (DroneLaunch Academy, 2026), and enterprise satellite change-detection monitoring runs €550-1,100/month (Planet, 2026) — this is a single measurement, not a subscription.

Request access

If you have a specific asset and two real LiDAR epochs you'd want measured, leave your email — this tells us whether to build beyond these 4 validation sites.