Under the Hood

The Models

The dashboard's projections aren't guesses — they come from statistical models fit on real play-by-play and results, then tested on games they never saw. This page explains how they work, shows how well they actually perform, and gives you a playbook for using them to size up any team.

Try It: Matchup Predictor

SP+ MARGIN → WIN PROBABILITY

Pick any two teams. The model takes the gap in their SP+ ratings (a neutral-field points margin) and runs it through the project's margin model — final margins are roughly Normal with a 13.5-point standard deviation — to turn that gap into a win probability. Drag the pick around and watch where it lands on the curve.

VS · NEUTRAL FIELD
MODEL PROJECTION
WIN-PROBABILITY CURVE
Favorite's SP+ edge (points) →

In-Game Win-Probability Model

THE FLAGSHIP · LOGISTIC REGRESSION

A logistic-regression model that predicts the home team's win probability from six pregame signals — efficiency edges, recent form, win rate and schedule strength. It's the most rigorously tested model here: fit on earlier games, then scored on held-out games it never saw during training.

CALIBRATION — DOES 70% MEAN 70%?
Perfect calibration Model (held-out games)

Each dot is a bucket of games grouped by predicted win probability. The closer the dots sit to the diagonal, the more honest the probabilities — when the model says 70%, those teams really do win about 70% of the time.

HOW MUCH BETTER THAN A GUESS? — BRIER SCORE (LOWER IS BETTER)

What Drives a Prediction

COEFFICIENTS · R ↔ PYTHON PARITY

Every input's pull on the outcome, as an odds ratio — how much the home team's winning odds multiply for a one-unit edge in that stat (above 1 helps, below 1 hurts). The same model is fit independently in R and Python; the build fails unless the two agree, so both estimates are shown side by side.

Reproducibility gate. That's the largest gap between the R and Python coefficient estimates across every term. Two independent implementations landing on the same numbers is how the pipeline proves a result is real and not an artifact of one toolchain.

Preseason Priors — the 2026 Forecast

PREDICTING BEFORE THE SEASON

The 2026 Projected Wins on the dashboard come from a separate model that has to predict games before any current-season form exists — using only prior-year strength, returning production and recruiting. Naturally harder than the in-game model, but it still clears its naive baseline by a clear margin.

In-Season Update — the Live 2026 Forecast

PRIOR + RESULTS, EVERY GAME DAY

Once the season starts, a third model updates the preseason forecast from results. Every team begins at its preseason strength and moves toward its season-to-date, opponent-adjusted scoring margins — a Bayesian ridge where the prior is worth a fixed number of games of evidence. It needs no play-by-play, so it re-forecasts the rest of the schedule after every game day; each re-forecast is sealed as a snapshot and graded only on games that had not yet kicked off. Tested on the held-out season before going live, it beats the preseason-only model on the same games. Follow it on the Forecast Scoreboard.

The Supporting Cast

EIGHT MORE MODELS BEHIND THE STATS

The efficiency and talent numbers you see are themselves outputs of a modeling library — each built twice (R and Python) and parity-checked. The headline figure on each card is a real result from the data.

A Playbook for Sizing Up a Team

HOW TO USE ALL OF THIS