# Methane survey acceptance: a denominator audit

This is an original, no-fit audit of **published, author-cleaned rate reports**
from the [2026 TADI controlled-release study](https://amt.copernicus.org/articles/19/923/2026/amt-19-923-2026.html).
It is useful for reviewing a supplier's evidence: retain unmeasured and excluded
opportunities, separate detection from quantitative error, and inspect zero-release
controls. It is not a raw-camera or concentration model, fresh blinded validation,
full paper reproduction, vendor recommendation, or industrial commissioning.

## Source and execution

The versioned [CC BY 4.0 archive](https://zenodo.org/records/18381032) matches
commit `671b4ef5c91999d5caf958b38e9e282e0b88146e` for every selected object.
Fourteen complete CSV members pass CRC and pinned Git-blob checks: **228,391 bytes**.
Including the earlier index and five code files, acquisition used **254,114 bytes**.
The entire 105 MB archive's advertised MD5 was **not** verified; byte ranges,
selected complete member CRCs and pinned object hashes were verified.

Commit `56a7a04` froze the fourteen filenames, no-fit budget and metrics before
numeric decoding. There is no model training, parameter search, bootstrap or
cloud job. Existing well-event reserved groups and OGI comparison pixels are
unchanged. All data here are historical and already published; no prospective
predictive-confirmation claim is available.

The corrected analysis covers **152 reference releases, 13 source systems and
804 saved summary rows**. Eight systems are the paper's commercial cohort; five
academic systems in the archive remain a separate cohort. Unequal schedules,
weather, rate ranges and measurement opportunities prevent an unconditional
system ranking. Rows from the same release/facility are not independent trials.

## Denominators and quantitative limits

**429/804 saved rows pass both recorded QC flags.** This is a recorded-row
denominator, not uptime, universal measurement coverage or probability of detection.
The other 375 rows remain visible. There are **146 missing/nonfinite/negative
rate reports** whose saved `operator_detected` field is false; their rate-based
classification remains **unknown**, rather than a confirmed nonindication.
Some excluded rows contain numeric placeholders: the all-row rate matrix audits
stored values and must not be interpreted as actual failed detections.

| System | Recorded QC pass / saved rows | Within factor two / positive-truth QC rows | Median absolute relative error |
|---|---:|---:|---:|
| Aeromon | 9 / 40 | 3 / 8 | 57.7% |
| GSMA | 13 / 40 | 10 / 12 | 20.3% |
| Flylogix | 18 / 40 | 5 / 17 | 64.8% |
| SeekOps | 29 / 34 | 3 / 28 | 77.6% |
| GHGSat | 1 / 152 | 1 / 1 | 22.4% |
| Sensirion | 120 / 152 | 50 / 119 | 65.3% |
| SLB | 65 / 77 | 20 / 64 | 61.9% |
| Sensia | 71 / 77 | 35 / 68 | 63.8% |

These are our fixed descriptive metrics of the cleaned public tables. Positive
truth rows include explicit zero reports; zero-truth rows are excluded only from
relative error and retained for false-indication counts. One SeekOps reference
key lacks a summary row; scheduling/omission is unresolved and is not labelled
a missed detection. Zero-release support among QC-pass rows is sparse: several
systems have only one eligible zero-release result, and GHGSat has none. An
absent or zero observed false-positive numerator does not establish leak absence
or a reliable field false-alarm rate.

Reported intervals retain valid, missing and invalid denominators. Their stated
confidence level and calibration are not assumed. Native tables and the full
report retain every system, all weeks, confusion counts and individual rows.

## QC consistency and retained analysis failures

The pinned source assigns `fail_all_qc` the same expression as `pass_all_qc`.
The independent Boolean truth table disagrees with **777 saved fail-all flags**
and **348 saved QC labels**. The latter are `not_measured` rows with both QC flags
false. This mathematical inconsistency does not establish those rows were
physically measured, or that published paper results change. All saved labels
and numbers remain unmodified; QC-pass membership agrees with saved pass flags.
No upstream message has been posted.

Our first report misjoined global and subset release IDs: **380 unjoined rows**.
The second repair missed the combined W34 namespace: **74 unjoined rows and six
rate mismatches**. Their code, protocols, outputs and review receipts are retained
and unqualified. The corrected join follows the source's declared week set and
input-order reindexing, with **zero unjoined rows and zero rate mismatches**.
No rate matching or score-driven namespace search was performed. V3's historical
prose incorrectly stated the cleaner sorts; the final protocol corrects this to
resetting the supplied order, with unchanged numeric methods/data. This is a
report-only repair after historical-data access, not a new prospective study.

Eleven audit regressions and seven bounded-transport cases pass. A second
Decimal implementation checks **182 metric values** at unchanged
`atol=1e-8, rtol=1e-9`; the frozen current report also replays with exact semantic
JSON equality. These are author tests and a second arithmetic implementation,
not independent reviewer sign-off or physical sensor/device tests.

## Reproduce offline

Extract the standalone kit and run from its root with Python 3.10 or newer:

```sh
python3 -m unittest discover -s tadi_release_audit -p 'test_*.py'
python3 -m unittest discover -s meter_physical_smoke -p 'test_*.py'
python3 tadi_release_audit/audit_v3.py --source-dir tadi_release_audit/source --protocol tadi_release_audit/CURRENT-PROTOCOL.json --output replay.json --compare tadi_release_audit/CURRENT-RESULTS.json
python3 tadi_release_audit/check_decimal.py --source-dir tadi_release_audit/source --results replay.json --output decimal-replay.json
```

The frozen source CSVs are included; offline replay needs no network, fitting or
third-party packages. A separately invoked acquisition utility supports bounded
anonymous retrieval; it never implies full-archive digest verification.

## Physical deployment remains open

Site source identity, clocks, sensor calibration, approved gas modality, flight
permissions/pose, independent field references, target-device deadlines and
operational acceptance remain unverified. This historical rate-report audit
does not commission a gas detector, drone, humanoid or industrial controller.

Data attribution: Audrey McManemin and TADI controlled-release collaborators,
2026, DOI `10.5281/zenodo.18381032`; cite the primary paper above. Data are CC BY
4.0; the new audit code is MIT. No source CSV or earlier scientific object was
retuned or rewritten.
