Current market regime
โ€”
๐Ÿ“š Why this matters
Probability calibration (Platt scaling) fits a sigmoid mapping p_cal = sigmoid(a ร— logit(p_raw) + b) to past (predicted, actual) pairs. The global Calibrator averages this fit across every market condition.

The problem: a model that's well-calibrated in calm markets is often overconfident in high-vol markets. The same raw 70% might really win 70% in chop but only 55% when VIX is 25+. Averaging hides this.

The fix: maintain a separate Platt scaler per regime:
  • bull โ€” SPY day chg > +0.5%, VIX < 18
  • bear โ€” SPY day chg < -0.5%, VIX < 25
  • chop โ€” |SPY| < 0.5%, VIX < 22
  • high-vol โ€” VIX โ‰ฅ 22 OR |SPY| > 1.5%
  • mixed โ€” everything else
At predict time, the Unified Predictor picks the right calibrator based on current SPY/VIX. Falls back to the global Calibrator (or raw) if the current regime has fewer than 30 resolved samples.