# Positive controls — predicted before measured

Two controls. In each, the prediction was computed, written to a file, and hash-stamped
in the custodian ledger **before the perturbed corpus existed**. Both preregistration
files are in this directory; their hashes are in `LEDGER_extract.txt`.

A permutation null (P9) shows a measured deviation is not chance. It cannot show that an
instrument would have seen a deviation had one been there. That is what these do.

## Control 1 — the score path

Seed 626. Three `resolved` outcomes flipped from true to false for one model in one
benchmark (500 instances, 479 true). Under the primary score policy, the published score
is a percentage over all instances, so the predicted change is exact arithmetic:
3 / 500 x 100 = 0.6.

| | predicted | measured (impl_A) | measured (impl_B) |
|---|---|---|---|
| `issue_resolution_score` | -0.600000 | -0.600000 | -0.600000 |

## Control 2 — the cost path

Seed 777. Score and cost are aggregated by separate functions in both implementations,
so control 1 licenses nothing about cost. One instance cost was raised by exactly 10.00
for one model in one benchmark (68 instances, 64 with a recorded cost). The primary cost
policy is the mean over instances with a recorded cost, so the category mean moves by
10 / 64 = 0.15625, and `average_cost` — a macro mean of the five category means — by a
fifth of that.

| | predicted | measured (impl_A) | measured (impl_B) |
|---|---|---|---|
| `frontend_cost` | +0.15625 | +0.15625 | +0.15625 |
| `average_cost` | +0.03125 | +0.03125 | +0.03125 |

## What the two together license

Both aggregation paths respond at exactly their predicted magnitude, in two
implementations sharing no code. A cell reported as divergent is therefore a property of
the corpus at these magnitudes, not a limit of the instrument.

They do not license anything about magnitudes smaller than those tested, nor about
policies not declared in the preregistration. The perturbed corpora were working copies;
the shipped bytes were never modified, and their hashes in the report still match the
published files.
