by bpleone
LIVE

Self-Learning Loop

Every night a job pulls the box scores of every game from yesterday's slate, settles each projection (hit / miss / push), and appends it to a growing track record. The next morning, a calibration runner re-reads the trailing 30 days, computes per-market bias / Brier / log-loss / ECE, then writes a correction factor that the next day's projections multiply through. The model gets smarter every day it sees outcomes.

Bayesian shrinkage means the loop starts learning from day 1, not day 30. The effective correction = (n / (n + N_PRIOR)) · raw_bias_correction + (N_PRIOR / (n + N_PRIOR)) · 1.0. With N_PRIOR=30, at n=3 the data has 9% pull and the prior 91%; at n=30 it's 50/50; at n=120 it's 80% data, 20% prior. Bias formula uses Laplace smoothing so a thin sample with 0 hits doesn't divide by zero. Per-market correction is capped at ±25%.

Loop Status
Loading...
Calibration by Market
MarketnROIHit rateModel impliedBiasECECorrection

Loading...

Game-Line Calibration (Over/Under)

Loading...

Recently Settled (last 50)
DatePlayer / GameBetLine / ActualPlayResult

Loading...