The fast clock — two numbers that need no labels, and decide nothing
data_shift = mean over the 16 sensors of |mean now − mean ref| / sd ref pred_shift = |yes-share now − yes-share on the reference window|, in points
Both are read against that version's own profile_v<N>.csv, and both are written into monitor_log.csv. Neither one touches the IF Switch. The decision is still lost > 20, and lost needs the labels.
And that is the lesson, not a shortcut left out. On this run each fast signal's RETRAIN range OVERLAPS its own non-RETRAIN range, so neither gives a threshold; the numbers are in README.md. A fast signal says something changed, only the slow one says the model got it wrong.