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:
- Efficiency — points and yards per drive, yards per play,
third-down and red-zone conversion, explosive-drive rate, three-and-out
rate and turnovers, each computed for offence and defence separately.
- Opponent adjustment — raw form is corrected for the
quality of the opposition faced, so a defence that has played three elite
offences is not judged as though it played three poor ones.
- Garbage-time filtering — scoring once a game is already
decided is discounted, because blowout points predict very little.
- Recency — the last 3, 5 and 8 games alongside the full
season, so recent form is weighted without letting one result dominate.
- Team strength — a margin-aware Elo and a ridge-regularised
least-squares power rating solved over every prior game, with an
offence/defence split and an empirically fitted home-field advantage.
- Situation — rest days, short weeks, byes, travel distance,
time-zone shift, altitude, neutral sites and conference games.
- Weather — temperature, wind, gusts, precipitation and snow at
kickoff for outdoor venues, from a historical archive so the effect can
actually be backtested rather than merely asserted.
- Market structure — the opening number, the current number,
movement between them, and how far the price sits from a key number.
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:
- A discrete margin model. Football margins are lumpy — real
games land on 3 and 7 far more often than on 2 or 5. The probability of
each whole-number margin is modelled on that lattice, with the
key-number weights measured from historical results rather than assumed,
and the distribution re-centred so those weights don't quietly drag every
projection toward 3.
- Monte Carlo. Each game is simulated 50,000 times by simulating
the scoring process — possessions, then touchdowns, field goals and
empty drives — rather than by adding noise to an average. The clustering
at 3 and 7 emerges from the mechanics instead of being pasted on.
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
- No leakage, structurally. Features are produced in a single
chronological pass: each game's feature row is emitted from the current
state, and only then is that game's result folded in. A feature cannot
contain information from its own game or from any later one.
- Walk-forward validation. Models are retrained from scratch on
each block using only games that had already finished, and are never
scored on data they were trained on.
- Provider artefacts excluded. Anything whose availability
depends on which data source covered which season is kept out of the
model, so it cannot learn to recognise an era instead of a matchup.
- Live in-game lines excluded. An in-game price on a finished
game sits close to the final margin. Treating one as a pre-game number
would leak the result directly — an early version of this system did
exactly that and produced a spectacular, entirely fake 58% record.
- Intervals, not point estimates. Bootstrap confidence intervals
accompany every headline number. If the interval spans zero, the result
is reported as not significant.
Known limitations
- College football injuries are effectively unavailable. There is
no mandatory reporting, and the public feed typically carries a handful
of entries for the entire sport. No injury adjustment is applied, and
picks say so explicitly rather than implying a clean bill of health. NFL
injury data, by contrast, is comprehensive.
- Historical odds depth varies. Multi-book history is deep for some
seasons and thin for others, which limits how far back cross-book
disagreement can be studied.
- No player-level projections. There is no depth chart, snap-count
or usage model, so a specific starter's absence is not priced beyond the
crude positional adjustment used in the NFL.
- Public betting percentages are not used, because no free source
of them is reliable enough to test properly.
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.