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.
Which College Rosters Held the Most Future NFL Players?
Study, 2026-10-29. For each school and season, how many players on that roster later played at least one NFL snap?
Answer: 2017 Alabama, with 48 future NFL players on one roster. Alabama also has the second (2016, 47) and seventh/eighth spots. Georgia 2020 (46) and 2019 (45) and Michigan 2019 (44) round out the top five. Averaged over 2012-2020, Alabama put 40.6 future NFL players on each roster, then Ohio State 37.3, Michigan 32.9, LSU 31.6 and Georgia 30.9.
Method (fetch_rosters.py, future_nfl.py)
- Rosters: CollegeFootballData
/roster, every team, 2008-2025 (one call per season; 18 calls). Names, team, season, position only. - Future NFL player: any offensive, defensive or special-teams snap in nflverse snap counts, which start in 2013. 7,360 players.
- Matching: normalised name (accents, punctuation, Jr/II/III removed; display, legal and football names tried) plus school, using a hand-built alias list for the two sources' spellings (Mississippi -> Ole Miss, etc.). Only roster seasons in the 7 years before his first NFL snap count, which stops a later same-named player being credited. 311 cases of two roster players with the same name at one school kept the one with more seasons.
- Complete seasons: 2012-2020. A 2012 senior first played in 2013, the first snap-count season. 2021 and later rosters still have players in college or just arriving, so their counts will rise.
Top school-seasons, 2012-2020
| School | Season | Future NFL players | Roster size |
|---|---|---|---|
| Alabama | 2017 | 48 | 126 |
| Alabama | 2016 | 47 | 129 |
| Georgia | 2020 | 46 | 147 |
| Georgia | 2019 | 45 | 132 |
| Michigan | 2019 | 44 | 148 |
| Georgia | 2018 | 43 | 122 |
| Alabama | 2018 | 42 | 118 |
| Alabama | 2015 | 42 | 122 |
| Ohio State | 2019 | 41 | 128 |
| Alabama | 2019 | 41 | 126 |
Leader each season: 2012 Florida (39), 2013 Ohio State / Florida (37), 2014
Ohio State (40), 2015 Alabama (42), 2016 Alabama (47), 2017 Alabama (48), 2018
Georgia (43), 2019 Georgia (45), 2020 Georgia (46). Full lists in
results.json.
How complete is the matching?
- 6,124 of 7,360 NFL players matched a roster. Most of the rest were in college before 2008 (veterans still playing in 2013) or went to schools CollegeFootballData has no rosters for.
- Players who first played in 2015 or later, school in the data: 96% matched (4,605 of 4,803). The misses are mostly small-school rosters the source lacks (Ferris State, North Dakota State, Ivy League) and non-roster athletes (Cyril Grayson, an LSU sprinter). Big programs are close to complete, so the top of the list is solid; small schools are undercounted.
- A same-name, same-school mix-up within 7 years could still add a false match; rare, and it would only move counts by one or two.
Files
fetch_rosters.py (needs CFBD_API_KEY), future_nfl.py, results.json,
data/rosters.parquet, data/matches.parquet.