New to these reports? Start here
- Dotted-underlined words have a plain-English definition — hover or tap them. Every term is also on the glossary page.
- "Null" means we found nothing, not that something broke. Most reports here are negative results, on purpose — knowing an idea doesn't work is the point.
- Two questions get asked separately. First, is the effect real? Second, is it already priced into the betting odds? An effect can be completely real and still useless to bet on.
- A "calibration" row is a self-check. It runs the same method on something already known to be true. If that fails, the whole report is unreliable — so it's reported alongside the findings.
- If a confidence interval includes zero, the real effect might be nothing at all, so no claim gets made.
Plan: does competition-adjusted college production predict the NFL better?
Written and committed 2026-10-29 before any box-score data was fetched or looked at. Results go in FINDINGS_COMPETITION.md; this file is not edited.
Question
For drafted QBs, RBs, WRs and TEs, does final-season college production adjusted for opponent defensive strength predict NFL playing time better than raw production? And does either add anything once draft position is known?
Data
- CollegeFootballData player box scores (
/games/players), seasons 2013-2022, regular season weeks 1-16 plus postseason. Opponent strength = that season's SP+ defensive rating (/ratings/sp). Opponents without an SP+ rating (FCS) get that season's worst FBS defensive rating. - Players: nflverse draft picks 2014-2023 at QB, RB, WR, TE whose final
college season is 2013-2022, linked to CFBD ids by the same name + school
matcher as
future_nfl.py.
Measures (final college season, games he appeared in)
- WR/TE: receiving yards per game. RB: scrimmage yards per game. QB: adjusted yards per attempt = (yards + 20TD - 45INT) / attempts (attempts-weighted over games).
- Adjusted: per position, the slope of a player's game value on the opponent's SP+ defensive rating, estimated within player (player-demeaned) from all FBS player-games of 2013-2022 with real volume (QB >= 10 attempts, RB >= 5 carries, WR/TE >= 1 catch). Adjusted season value = raw - slope * (his average opponent rating - league average).
- Crude alternative: raw value plus an indicator for a Power 5 school (SEC, Big Ten, Big 12, ACC, Pac-12, plus Notre Dame).
Outcome
Primary: log(1 + NFL offensive snaps in his first three seasons), zero if none. Draft classes 2014-2023 (three seasons observed through 2025).
Tests
Per position, ordinary least squares, leave-one-draft-class-out cross-validation, out-of-sampleout-of-sampleTested on data that was not used to build or tune the idea. This is the honest test; results on the data you built with are almost always flattering. R squared: 1. log(pick) alone. 2. log(pick) + raw. 3. log(pick) + adjusted. 4. log(pick) + raw + Power 5. 5. Raw alone vs adjusted alone (no pick).
Decision rule: "adjustment helps" only if model 3 beats model 2 in out-of-sample R squared for at least 3 of the 4 positions and the pooled difference has a draft-class bootstrapbootstrapRe-running a calculation on thousands of resampled versions of the data to see how much the answer wobbles. The spread of those answers becomes the confidence interval. 90% interval above zero. "Production adds to draft position" needs model 2 or 3 above model 1 on the same terms. Anything else is reported as no evidence.
Known limits, accepted up front
- Draft position drives playing time, so snaps partly measure draft capital. Model 1 is the bar for that reason.
- SP+ season ratings include the game being adjusted; small leakage.
- Drafted players only: undrafted free agents are excluded, which narrows the range of talent.