Files
pxpipe/tests
teamchong 91c969b593 dashboard: split CV threshold — 5% joint / 2% constrained
Live-traffic diagnosis: typical single-session warm-cache load has the
same cached image across turns (pixel CV = 0%) AND text variance of
3-4% (verified 2026-05-19: 117k/127k/128k chars across three turns =
3.84% CV). Both columns failed the original 5%-everywhere gate, so the
constrained fallback I just shipped never actually activated — the
dashboard fell straight through to wandering stale constants.

The 5% gate exists to stop joint OLS from splitting two indistinguishable
parameters. In constrained mode β is pinned (no split to make), so we're
fitting one parameter through the origin — 1-D OLS is numerically stable
at much lower variance. 2% is conservative; even 1% would converge.

New thresholds:
  MIN_CV_JOINT       = 0.05  (unchanged — both columns must vary)
  MIN_CV_CONSTRAINED = 0.02  (NEW — text only, β-pinned through origin)

Real-world impact: live single-session traffic now activates constrained
mode after 3 compressed turns instead of waiting for cross-session
variance that may never arrive. Dashboard label flips from amber 'stale
constants' to blue 'constrained · α-only' — operator sees a measured α
within ~30 seconds of starting a fresh proxy.

Tests:
  + new: live-traffic-shape sample activates constrained mode (3.84% CV)
  + new: below-2% floor still rejects (no garbage 1-D fits)
  unchanged: 2-D collinear cases still null, joint-fit at high CV still
  returns mode='joint'
2026-05-19 13:34:24 -04:00
..