Push the gate

Can you build a run B that ships?

Run A stays fixed at counts 1 / 2 / 17 (mean 0.900), the trusted baseline. Drag run B's buckets, its 20 items redistribute across wrong, partial and correct, and all three checks recompute live.

Drag any slider. The other two rebalance so run B always totals 20 items. Watch the mean, the 95% bootstrap confidence interval against the 0.70 bar, the PSI drift against run A, and the final gate verdict move together.
Wrong0.0
3
Partial0.5
5
Correct1.0
12
run B total: 20 / 20 items ·

Check 1 · CI threshold gate (bar = 0.70)

Run B mean
0.725
95% bootstrap CI
[0.550, 0.875]
CI threshold gate
FAIL

Check 3 · drift (PSI against run A)

run A (fixed)
run B (from the sliders)
1
3
2
5
17
12
0.00.51.0
PSI
0.334
Drift verdict
SIGNIFICANT
DECISION: BLOCK THE DEPLOY CI threshold gate FAILs and drift is SIGNIFICANT: either signal alone is enough to stop this deploy.

This panel resamples run B's current 20 items 2,500 times per update to build a live 95% bootstrap interval, so its numbers land close to, but not always bit-identical to, the companion script's fixed-seed n_boot=10,000 run (which reads [0.550, 0.875] for the 3/5/12 example). PSI floors every bucket proportion at 1e-6 so an empty bucket never sends ln(pA/pB) to negative infinity. Drift reads stable below 0.10, moderate from 0.10 to 0.25, and significant above 0.25; the gate blocks whenever the CI check fails or drift is significant.