Conformance fixtures

Hand-scored cases with expected values. A metric anyone can compute is worthless if nobody can tell whether they computed it correctly.

What these test, and what they do not. The atom set and weights are stipulated, not derived — a different reasonable analyst would choose differently and get a different PER. These fixtures verify that an implementation computes the same arithmetic on the same table. That is a conformance test, not a validity claim.

Cases

casewhat it exercises
spxi-rent-20260814PER, M/C/D decomposition, ρ_T with the observability gate passed, the enclosing span, Β
spxi-control-20260726the low-rent control at the same address — a capture without its control is an anecdote
family-uniform-erasurethe ASI = 0 trap, drawn from a real family

The third fixture is the one that matters

FC 0.857 · ACP 0.857 · ASI 0.000. A naive reading calls that clean. It is not.

The licence atom is absent from all four renderings. Across two surfaces and two months, the CC BY-SA licence was never once transmitted. ASI = 0 because the erasure is uniform — there is nothing to traverse to. Any implementation that reports this as a clean result has failed the fixture.

Verify offline

curl -O https://provenanceerasure.org/module/fixtures/cases.json
curl -O https://provenanceerasure.org/module/fixtures/verify_offline.py
python3 verify_offline.py --show

No network after download, no dependencies, no account. If your numbers differ from these, one of us is wrong and the verifier tells you which line.

cases.json verify_offline.py the module the calculator