How the football model works
Everything below is the actual method, the actual backtest, and the things that were tried and did not survive. The rule the whole site runs on: a change ships only if it beats the previous model on a proper score on seasons it was not tuned on. Winners are a proven read. Spread and total calls are leans, and the page says so wherever they appear.
The rating
Each team carries an Elo rating updated after every game by the FiveThirtyEight recipe: the winner gains, the loser loses, scaled by a margin-of-victory multiplier that is logarithmic in the margin and discounted when a heavy favorite runs up the score. Points per Elo are 1/22 for the NFL and 1/18 for college; home field is worth 56 and 55 Elo (about 2.5 and 3 points); a bye or extra rest is worth up to 28 Elo. Between seasons the NFL keeps two thirds of a team's deviation from average, college three quarters — and college blends 75% of an external prior into that number (below).
Alongside Elo, each team carries opponent-adjusted scoring ratings — points above average scored and allowed, exponentially weighted — which produce the model total together with kickoff weather: wind over 12 mph, cold under 25°F and precipitation each take points off an outdoor total; a roof adds a little back.
Quarterback (NFL)
Every quarterback carries a rolling value in EPA per game (nflverse), and every team carries a rolling value of whoever has been starting for it. The adjustment for a game is starter minus team: zero when the usual starter plays, negative for a backup, positive for the rare upgrade. Starters for upcoming games come from nflverse's daily depth charts, overridden by the injury report. Weight 0.5, chosen on 2012–19 and held out on 2020–25: winner log-loss 0.6376 → 0.6315, winners 63.7% → 64.0%.
Season prior (college)
Pure Elo is weakest in September, when it only knows last year's results. At the season boundary the college rating is 25% its regressed Elo and 75% a prior built from the previous season's SP+ (points above average → Elo). Tuned on 2019–22, held out 2023–25: log-loss 0.561 → 0.550, winners 70.1% → 70.6%. Returning production was tested on top and added nothing, so it is not used.
The three calls
The winner probability is a normal on the predicted margin. The spread call is which side of the posted number the model's margin lands on; its probability blends the model margin 15/85 with the market, which the backtest found gives the honest confidence — the pure model is overconfident against a line that already knows everything the model knows. The total works the same way against the posted total.
Locks, closers, openers
A pick re-prices as the line moves until kickoff and is locked strictly before the start — the record enforces that in the query, not by promise. The first side the model took is kept and graded against the opening number too, and the closing-line value (how far the close moved toward that side) is recorded on every pick. CLV shows up weeks before a win–loss record means anything.
Backtest — NFL, held out 2020–25
Walk-forward: every game is priced from ratings that have seen only the games before it, against nflverse's closing lines. Parameters were chosen on 2012–19 and frozen.
| Season | Games | Winners | ATS | O/U |
|---|---|---|---|---|
| 2020 | 269 | 174/269 · 64.7% | 129-140 · 48.0% | 120-144-5 · 45.5% |
| 2021 | 285 | 170/285 · 59.6% | 136-145-4 · 48.4% | 144-138-3 · 51.1% |
| 2022 | 284 | 177/284 · 62.3% | 140-134-10 · 51.1% | 130-151-3 · 46.3% |
| 2023 | 285 | 177/285 · 62.1% | 122-149-14 · 45.0% | 140-141-4 · 49.8% |
| 2024 | 285 | 193/285 · 67.7% | 134-147-4 · 47.7% | 141-141-3 · 50.0% |
| 2025 | 285 | 188/285 · 66.0% | 145-139-1 · 51.1% | 153-132 · 53.7% |
| Pooled | 1693 | 63.7% | 48.6% | 49.4% |
The closing moneyline picks winners at 66.5% over the same games; the model is 2.5 points behind it, which is where public data runs out. Against closing spreads (48.4%) and totals (49.4%) the model is a coin flip; breakeven at −110 is 52.4%.
| Said | Avg said | Happened | n |
|---|---|---|---|
| 50–60% | 54.9% | 54.5% | 611 |
| 60–70% | 64.8% | 63.1% | 498 |
| 70–80% | 74.9% | 70.0% | 383 |
| 80%+ | 85.8% | 84.7% | 196 |
Backtest — college, held out 2023–25
| Season | Games | Winners | ATS | O/U |
|---|---|---|---|---|
| 2024 | 919 | 635/919 · 69.1% | 433-455-16 · 48.8% | 449-438-15 · 50.6% |
| 2025 | 934 | 679/934 · 72.7% | 466-451-12 · 50.8% | 449-483 · 48.2% |
| 2026 | 40 | 28/40 · 70.0% | 13-26-1 · 33.3% | 19-21 · 47.5% |
Against a 58.5% pick-the-home-team baseline. Against closing spreads the college model is 49.9%; against the opening number it is 52.3% over 2,147 games — the market moves toward the model's side during the week and closes the gap. Totals 48.8%.
| Said | Happened | n |
|---|---|---|
| 50–60% | 53.4% | 671 |
| 60–70% | 64.1% | 569 |
| 70–80% | 75.1% | 518 |
| 80–90% | 88.5% | 401 |
| 90%+ | 94.6% | 239 |
Tested and rejected
- ✗Updating the rating on EPA margin instead of points (NFL) — worse at every blend on the tune window (log-loss 0.6244 → 0.6256 at the mildest). Points are what the market prices, and the QB adjustment already carries the efficiency signal.
- ✗Pricing injuries beyond the quarterback (NFL) — every player listed Out or Doubtful valued by prior snap share × position weight. Best setting moved log-loss 0.6244 → 0.6242, a tenth of the bar.
- ✗Returning production on top of SP+ (college) — no improvement over the SP+ prior alone.
- ✗Dynamic home field (NFL) — a league-wide home advantage learned on the fly instead of a fixed 2.5 points. Worse at every learning rate; the fixed value already sits where the decade's average is.
- ✗Pace-adjusted totals (NFL) — scaling the model total by each side's plays per game against the league average. The total's Brier score did not move at any blend; the scoring ratings already carry it.
- ✗Early-season K boost, divisional-game margin shrink, body-clock travel (NFL) — a higher rating speed in September was worse; compressing divisional margins and docking an away side two-plus time zones from home each moved log-loss by a ten-thousandth. None ship.
The bar for shipping anything is 0.002 nats per game of winner log-loss on the tune window, then a check that it holds on the held-out seasons. Eight experiments in a row landing inside noise, while the QB adjustment and SP+ prior cleared cleanly, is the honest shape of the ceiling: on public data, the remaining gap to the market is what the books know that public data does not. From here the model is judged by closing-line value on locked picks, not by more backtest sweeps.
Data
nflverse (schedules, results, closing lines, play-by-play, player stats, depth charts, injuries), ESPN (schedules, scores, injury reports, one book's line as a fallback), TheRundown (multi-book spreads, totals and moneylines — the consensus and best price on every page), CollegeFootballData (college lines with openers, SP+, talent, returning production, advanced season stats), FTN charting via nflverse (play-action, RPO, screens, motion, pass rushers), Open-Meteo (kickoff weather).
Informational only. 21+, 1-800-GAMBLER.