Methodology

What the model looks at, how it turns that into a price, and — just as importantly — what it has not been able to demonstrate.

The honest headline. Against closing point spreads in college football, this model has not demonstrated a statistically significant edge in out-of-sample testing. Closing lines are among the most efficient prices in any market. The system is therefore built to publish nothing when nothing clears its thresholds, and most slates produce a short card or an empty one. A page promising five strong plays every single day would be selling you something; this one isn't.

What gets analysed

Every completed game since 2019 is ingested with full box scores and drive-by-drive detail, alongside opening and closing point spreads, moneylines and totals from up to 30 sportsbooks, plus venue-level weather at kickoff. From that the system derives, for each team and each game:

How the ensemble works

No single model is trusted. Around a dozen run in parallel — gradient boosted trees (XGBoost, LightGBM, CatBoost), random and extremely randomised forests, ridge, elastic-net and Bayesian linear models, a logistic classifier on the cover outcome, a small neural network, plus the two non-machine-learning baselines (Elo and power ratings).

Every one of them predicts the same quantity: how many points better the home side performs than the posted line implies. That makes their outputs directly comparable, and it sets the right null — a model that has learned nothing predicts zero, produces no edge, and therefore no bet.

A meta-model then learns how much to trust each one. Its weights are constrained to be non-negative, capped so no single model can dominate, and shrunk hard toward zero. The prior is that the market is right; a model has to earn weight against it. Crucially, those weights are fitted only on predictions the models made for games they were not trained on.

How probabilities are produced

A projected margin is not yet a probability. Two independent methods run, and both must agree before a wager is taken seriously:

The two probabilities are blended. A disagreement between them is itself a warning that the projection is unstable, and it lowers the bet score.

Uncertainty is priced, not ignored

A projection of −7 from a stable, well-observed matchup is not the same as −7 from two teams with three games played and a quarterback in doubt. Extra variance is added for thin early-season samples, severe weather and uncertain availability. Wider distributions produce probabilities closer to a coin flip, which mechanically lowers the expected value and the stake.

How picks are ranked

Each candidate is scored 0–100. Expected value after vig carries the most weight, because that is what actually compounds. Cover probability above break-even, the raw size of the disagreement, and whether the edge carries the number across a key threshold contribute the rest. That score is then scaled by how much the individual models agree with each other and by the quality of the underlying data.

Bands: PASS, LEAN, PLAY, STRONG PLAY, ELITE PLAY. Only PLAY or better is eligible for the daily card. Two picks may never involve the same team, so the card cannot stack correlated exposure onto one outcome.

At standard −110 pricing the break-even rate is 52.38%. A wager needs to clear that plus the expected-value threshold before it is published.

Why closing-line value matters more than this week's record

If you take a team at −2.5 and the line closes at −4, you got a better number than the market's final, sharpest opinion. That is positive closing-line value, and it counts whether the bet won or lost.

Win rate over a few dozen wagers is almost pure noise — a 55% record over 40 bets is entirely consistent with having no edge at all. CLV stabilises far faster and is the leading indicator that a process is sound. So CLV is recorded for every published wager and reported on the performance page whether it flatters the model or not.

Guarding against fooling ourselves

Known limitations

Measured out-of-sample results

Walk-forward, retrained every 14 days, scored only on games each model had not been trained on. These are the numbers the verdict above is based on.

Current model

Data pipeline health

Model weights, feature definitions and source code are not published. Everything above describes the approach at a level intended to let you judge whether the process is sound — which is the part that matters.