Attack item R-9 ยท 2026-07-30 ยท harness
harness/worst_of_n_displacement.py
The cascade compares max over 62 cells to a fixed line. The max of N noisy
estimates is biased upward, so the effective strictness of that line depends on N. The plan is to add
more candidates and more coverage โ which means more cells. If displacement grows with N, adding
coverage silently tightens the gate. That is the mechanism behind "the instrument becomes less able
to certify the more data you give it", and this iteration puts a number on it.
Not by correlating the ฮพ estimates directly, which would be synthetic-on-synthetic. Cells are cut as
overlapping windows of one master series โ which is precisely why the real 62 cells are dependent
(16 symbols, overlapping time windows). overlap=0.0 gives disjoint windows;
overlap=0.9 gives windows sharing 90% of their rows.
(1) Displacement grows as sdยทโ(2 ln N). (2) Correlation reduces effective N, so
correlated cells show less displacement โ meaning iter 4's +0.024 and iter 7's floors, both
measured on independent cells, overstate the bias. (3) 62โ248 cells adds only ~0.45 sd.
All three held.
level overlap slope Rยฒ decision-relevant (xi~0.45) 0.0 0.995 0.997 decision-relevant (xi~0.45) 0.5 1.011 0.993 decision-relevant (xi~0.45) 0.9 0.964 0.966 null (xi~0) 0.0 1.079 0.981 null (xi~0) 0.5 1.033 0.983 null (xi~0) 0.9 0.979 0.983
Slope โ 1.0 against โ(2 ln N) with Rยฒ 0.966โ0.997 across every level and every overlap.
So displacement โ sdยทโ(2 ln N) describes ฮพ's worst-of-N behaviour on these designs.
N=62, decision-relevant: ov=0.0: 0.0347 ov=0.5: 0.0344 ov=0.9: 0.0307 -> damped N=62, null: ov=0.0: 0.0341 ov=0.5: 0.0339 ov=0.9: 0.0299 -> damped
Heavy overlap cuts displacement by roughly 12%. So the independent-cell figures from iters 4 and 7 are conservative โ they overstate the bias the real grid carries. That is the direction you want to be wrong in, and it is now measured rather than assumed.
| level | overlap | N=62 | N=124 | N=248 | 62โ248 |
|---|---|---|---|---|---|
| decision-relevant | 0.0 | 0.0347 | 0.0385 | 0.0414 | +0.0067 |
| decision-relevant | 0.5 | 0.0344 | 0.0392 | 0.0430 | +0.0087 |
| decision-relevant | 0.9 | 0.0307 | 0.0360 | 0.0405 | +0.0098 |
| null | 0.0 | 0.0341 | 0.0377 | 0.0394 | +0.0053 |
Quadrupling the cell count moves the worst-cell statistic by +0.005 to +0.010.
Put that against the ฮพ PASS moat, which is 0.006 wide (0.494 certified-orthogonal ceiling โ 0.50 line, iter 2):
Going from 62 to 248 cells consumes the entire PASS moat, and then some. A candidate sitting at 0.494 on the current grid would land at roughly 0.501 on a 4ร grid โ over the line โ without having become one bit more redundant.
It is a pure selection effect: the candidate did not change, the max just got more chances. This is the "backwards" property made concrete โ and it is the direct cost of the stated plan to expand coverage.
The fitted law means the displacement is predictable, so in principle it is correctable by
subtracting sdยทโ(2 ln N). The research explicitly cautioned report it as a diagnostic,
do not subtract it, on the grounds that Gaussian results do not transfer to a bounded, tied rank
statistic. This iteration is evidence that the scaling does describe ฮพ empirically (Rยฒ up to
0.997), which refines that caution โ but it does not overturn it:
sd, which must be estimated, and that estimate is
itself a modelling choice.No dial, band or threshold was touched. The honest operational takeaway is narrower than a correction and more useful than nothing: a verdict is only comparable to another verdict taken at the same N. Comparing a 62-cell run to a 248-cell run without accounting for this is comparing two different tests.
Evidence: harness/worst_of_n_displacement_evidence.json (36 configurations).
Reproduce: VIRTUAL_ENV="" uv run --python 3.13 --no-project --with numpy --with pandas python3
harness/worst_of_n_displacement.py