Bayesian priors experiment: Phase 0 fix + H1/H2/H4/H5/H7/H8/H9/H10/H11 infrastructure
Infrastructure: - Phase 0: runWithoutSignal mapping for marcel-early-prior, squad-value-early-season, promoted-team-lambda-adjust, squad-value-regularization signals
Infrastructure:
- Phase 0: runWithoutSignal mapping for marcel-early-prior, squad-value-early-season,
promoted-team-lambda-adjust, squad-value-regularization signals
- H1 (squad-value warm-start): build-prior-warmstart.ts, solver supports priorRatings
- H2 (regularization target): solver.ts regularization pulls toward priorRatings when set
- H4 (standings prior): standings-prior.ts + compute-final-standings.ts
- H5 (elo warm-start): elo-to-lambda.ts + snapshot-elo.ts
- H7 (promoted team adjust): bet-evaluator.ts promotedTeamMode flag
- H3 (early-season prior bet recovery): bet-evaluator.ts earlySeasonPriorSource flag
- H8 (ensemble): build-ensemble-prior.ts (inverse-variance weighted combination)
- H9/H10/H11 (xG calibration): inference.ts applyLayeredCalibration with player
finishing / opponent value / team tier layers
Validation:
- backtest-bayesian-priors.ts: Path A Brier evaluation harness (walk-forward)
- backtest-xg-calibration.ts: Path C Brier evaluation harness
Initial results (preliminary):
- Path C full run (136K shots, 85K test):
- H9 player finishing: Brier -0.00040 (direction correct, BELOW -0.002 threshold) - H10 opponent context: +0.00002 (FAILS — slightly hurts) - H11 team tier: +0.00010 (FAILS — slightly hurts)
Still running: Path A Elo full backtest, H6 Marcel re-test via approve-signal.
11 new signals registered in signal-registry.json.
Spec: docs/specs/bayesian-priors-experiment-spec.md
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>