NCAA Football Projections

NCAA FB · built Aug 30, 2026 08:09
All Models

This site publishes output from a college football model built from play-by-play data. Everything below describes how a number gets made, so you can judge how much weight it deserves.

Every value on this site

TermWhat it means
PtsProjected points for that team. The spread and total carry the signal; these two numbers just split them.
TotalProjected combined points.
ByProjected margin of victory for the favourite.
EPAExpected points added. How much a play changed the offense's expected next-score value. A 12-yard gain on 3rd-and-10 is worth far more than on 1st-and-25.
Off EPA/playAverage EPA the offense generated per play, garbage time excluded. Higher is better.
Def EPA/playAverage EPA the defense allowed per play. Lower is better — negative means opposing offenses lost value.
NetOff EPA/play minus Def EPA/play.
Prior SRSOpponent-adjusted rating in points, solved from last season's game margins across the whole schedule network so FCS and FBS sit on one scale.
Off / Def scoringOpponent-adjusted points a team adds or allows relative to average.
PaceOffensive plays per game.
LineThe market's number for that pick.
ModelThis model's equivalent number for the same pick — so both sides of a game mirror each other.
EdgeLine minus Model, in points. Positive means the market is offering more than the model thinks the pick needs.
Win%Model probability that pick wins, from its projection and its own historical error spread (about 17.8 points).
Mkt%Probability implied by the price, including the vig.
EV%Expected profit per unit staked, if the model's probability were correct. It usually is not.
Proj EPAA player's projected season EPA contribution: his shrunk per-play rate times projected involvement.

The expected points model

Every play starts from a game state: down, distance, field position, time left in the half, score, timeouts. A gradient-boosted classifier predicts which of seven outcomes happens next — offense touchdown, field goal or safety; defense touchdown, field goal or safety; or no more scoring this half. Expected points is the probability-weighted value of that distribution, and EPA is how much a play moved it.

The model trains on five seasons, excluding garbage time so blowout snaps don't teach it what normal football looks like. Overtime is excluded entirely — no clock and a fixed starting point make it a different game. Held-out log loss is 1.296 against a 1.946 uniform baseline, and predicted touchdown probability tracks observed rates to within 1.3 percentage points.

Attributing plays to players

One EPA value per play gets apportioned to the players involved. Direct attribution covers cases with a clear owner: the quarterback on a dropback, the ball-carrier on a run, the kicker, and defenders credited with sacks, interceptions, pass breakups, forced fumbles and pressures. Shared attribution covers targeted receivers, who carry the play's EPA at a lower confidence weight since passer and receiver both shape the outcome.

Because the data source records no quarterback on incomplete passes, the passer is recovered by parsing the play description and matching the name against that team's roster — about 108,000 plays, with ambiguous names skipped rather than guessed.

Shrinkage

A cornerback with three interceptions in limited snaps is not better than a season-long starter, but raw rates say otherwise. Every player rate is pulled toward its position group's average by an amount estimated from the data itself — how much of the observed spread is real talent versus sampling noise. Quarterbacks need roughly 140 plays before their own numbers outweigh the prior; havoc-driven defensive roles need far fewer, because the spread between roles is genuinely large.

Team and game projections

Team ratings come from SRS solved on game margins, which is opponent-adjusted by construction: strength propagates through the schedule network, so a dominant FCS team is measured against the same scale as an FBS one. A margin model combines the rating gap, home field, and a roster-change signal built bottom-up from returning and transferring players. A separate model projects the total from opponent-adjusted scoring ratings and pace.

Validated leave-one-season-out on roughly 3,200 FBS games: 13.9 points of margin error and 66% of winners correct. That is a reasonable preseason model and clearly worse than a sharp betting line.

Market comparison and EV

The Market tab compares the model against posted odds. Treat EV% as a disagreement detector, not a betting signal — the model's error is larger than the market's, so a big number more often means the model is wrong about that game than that the book is.

Data model

  • plays — one row per snap with game state, EPA, and a garbage-time flag.
  • play_player_stats — which players did what on each play.
  • player_play_epa — each player's share of a play's EPA, with an attribution type and confidence weight.
  • player_season_shrunk — season rates after shrinkage, with percentiles within position.
  • team_returning_production — how much of last season's production returns, and what arrived by transfer.
  • transfer_translation — how production is expected to survive a change of competition level.
  • game_projections / projection_log — current projections, and an append-only record of the first projection made for each game.

Known limitations

  • Offensive linemen have no direct attribution; receivers reach team projections only through their quarterback.
  • Defensive player value is splash-play EPA — it measures playmaking, not per-snap contribution.
  • Ratings use the prior season only. Nothing here learns from the current season's results yet.
  • No injury, weather, travel, or coaching-change information.
  • Totals in extreme mismatches are the least reliable output.