NFL · Empirical Bayes

True-Talent Leaderboards

A raw single-season rate is a noisy guess at a player’s real ability, and the noise is worst for the smallest samples — so a naïve leaderboard is topped by whoever got lucky in the fewest tries. This one shrinks every rate toward its position-group prior by how much the sample can be trusted, and shows a 90% credible interval instead of a point. Toggle raw vs. shrunk to watch the flukes fall back to the pack.

EPA per dropback · 2017

Mean QB EPA per dropback.

Beats raw by
14.9%
lower out-of-sample error
RMSE raw → shrunk
0.17 → 0.14
odd vs. even weeks
Split-half reliability
0.47
how repeatable the raw stat is
Stabilizes at
190
dropbacks to trust the number
shrunkrawthe shrink90% CI
-0.20.00.2avg1Tom BradyNE · 618+0.182Jimmy GaroppoloSF · 184+0.163Philip RiversLAC · 592+0.154Carson WentzPHI · 473+0.155Drew BreesNO · 553+0.156Jared GoffLA · 500+0.157Alex SmithKC · 540+0.138Ben RoethlisbergerPIT · 582+0.129Matt RyanATL · 550+0.1010Case KeenumMIN · 504+0.0911Jameis WinstonTB · 474+0.0812Deshaun WatsonHOU · 224+0.0713Sam BradfordMIN · 48+0.0714Aaron RodgersGB · 261+0.0615Matthew StaffordDET · 615+0.0516Patrick MahomesKC · 37+0.0517Blake BortlesJAX · 550+0.0518Derek CarrLV · 537+0.0419Russell WilsonSEA · 597+0.0420Ryan FitzpatrickTB · 172+0.0321Josh McCownNYJ · 432+0.0322Kirk CousinsWAS · 581+0.0323Tyrod TaylorBUF · 466+0.0124David FalesMIA · 45+0.0025EJ ManuelLV · 47-0.0026Cam NewtonCAR · 527-0.0027Carson PalmerARI · 290-0.0028Landry JonesPIT · 31-0.0029Marcus MariotaTEN · 479-0.0130Geno SmithNYG · 39-0.0331Jay CutlerMIA · 449-0.0332Andy DaltonCIN · 534-0.0433Dak PrescottDAL · 523-0.04

Each row is a player: the solid dot is the shrunk estimate, the hollow dot the raw rate, joined by the red pull of regression; the grey bar is the 90% credible interval. A hollow shrunk dot means the sample is below the stabilization line — the number is mostly the position prior. Switch to Raw rank and watch the small-sample names climb.

EPA per dropback · 2017 · full board

EPA per dropback leaderboard for the 2017 NFL season, shrunk by empirical Bayes with 90% credible intervals, ranked by the shrunk estimate.
#PlayerTeamPosdropbacksRawShrunk90% interval
1Tom BradyNEQB618+0.23+0.18+0.09+0.27
2Jimmy Garoppolo◦ provisionalSFQB184+0.31+0.16+0.03+0.30
3Philip RiversLACQB592+0.20+0.15+0.06+0.25
4Carson WentzPHIQB473+0.21+0.15+0.05+0.25
5Drew BreesNOQB553+0.19+0.15+0.05+0.24
6Jared GoffLAQB500+0.19+0.15+0.05+0.24
7Alex SmithKCQB540+0.17+0.13+0.03+0.22
8Ben RoethlisbergerPITQB582+0.15+0.12+0.02+0.21
9Matt RyanATLQB550+0.13+0.10+0.01+0.20
10Case KeenumMINQB504+0.12+0.09-0.01+0.19
11Jameis WinstonTBQB474+0.10+0.08-0.02+0.18
12Deshaun WatsonHOUQB224+0.11+0.07-0.06+0.20
13Sam Bradford◦ provisionalMINQB48+0.27+0.07-0.10+0.23
14Aaron RodgersGBQB261+0.08+0.06-0.07+0.18
15Matthew StaffordDETQB615+0.06+0.05-0.04+0.14
16Patrick Mahomes◦ provisionalKCQB37+0.21+0.05-0.12+0.22
17Blake BortlesJAXQB550+0.06+0.05-0.05+0.14
18Derek CarrLVQB537+0.05+0.04-0.06+0.14
19Russell WilsonSEAQB597+0.04+0.04-0.05+0.13
20Ryan Fitzpatrick◦ provisionalTBQB172+0.04+0.03-0.11+0.16
21Josh McCownNYJQB432+0.03+0.03-0.08+0.13
22Kirk CousinsWASQB581+0.03+0.03-0.07+0.12
23Tyrod TaylorBUFQB466+0.01+0.01-0.09+0.11
24David Fales◦ provisionalMIAQB45-0.05+0.00-0.16+0.17
25EJ Manuel◦ provisionalLVQB47-0.07-0.00-0.17+0.17
26Cam NewtonCARQB527-0.01-0.00-0.10+0.09
27Carson PalmerARIQB290-0.01-0.00-0.12+0.12
28Landry Jones◦ provisionalPITQB31-0.12-0.00-0.18+0.17
29Marcus MariotaTENQB479-0.02-0.01-0.11+0.09
30Geno Smith◦ provisionalNYGQB39-0.26-0.03-0.20+0.14
31Jay CutlerMIAQB449-0.05-0.03-0.13+0.07
32Nate Sudfeld◦ provisionalPHIQB26-0.43-0.04-0.21+0.14
33Andy DaltonCINQB534-0.06-0.04-0.13+0.06
34Dak PrescottDALQB523-0.06-0.04-0.14+0.06
35Kevin Hogan◦ provisionalCLEQB81-0.18-0.04-0.20+0.11
36Nick Foles◦ provisionalPHIQB106-0.16-0.05-0.20+0.10
37Brock Osweiler◦ provisionalDENQB182-0.11-0.05-0.18+0.09
38Drew Stanton◦ provisionalARIQB166-0.13-0.05-0.19+0.08
39Matt Moore◦ provisionalMIAQB138-0.15-0.06-0.20+0.09
40Cody Kessler◦ provisionalCLEQB29-0.53-0.06-0.23+0.12
41Sean Mannion◦ provisionalLAQB40-0.40-0.06-0.23+0.11
42Jacoby BrissettINDQB519-0.09-0.06-0.16+0.04
43Joe FlaccoBALQB574-0.09-0.06-0.16+0.03
44Brian HoyerNEQB228-0.14-0.07-0.19+0.06
45Paxton Lynch◦ provisionalDENQB54-0.36-0.07-0.23+0.10
46Mike Glennon◦ provisionalCHIQB148-0.18-0.07-0.21+0.07
47Eli ManningNYGQB607-0.10-0.08-0.17+0.02
48Mitchell TrubiskyCHIQB361-0.12-0.08-0.18+0.03
49Trevor SiemianDENQB384-0.13-0.08-0.19+0.03
50T.J. Yates◦ provisionalHOUQB111-0.26-0.09-0.23+0.06
51C.J. BeathardSFQB242-0.17-0.09-0.21+0.04
52Tom SavageHOUQB243-0.20-0.10-0.23+0.02
53Bryce Petty◦ provisionalNYJQB121-0.30-0.11-0.25+0.04
54Nathan Peterman◦ provisionalBUFQB48-0.61-0.11-0.28+0.06
55Blaine GabbertARIQB194-0.28-0.13-0.26-0.00
56Brett HundleyGBQB346-0.22-0.13-0.25-0.02
57Matt Cassel◦ provisionalTENQB50-0.76-0.15-0.31+0.02
58DeShone KizerCLEQB513-0.22-0.15-0.25-0.06

How the shrinkage works

Two estimators

Rate stats (completion %, success rate, catch rate) use a beta-binomial model: a Beta(α, β) prior fit by marginal likelihood over each position group, then a Beta posterior per player. Per-play averages (EPA, CPOE, yards) use a normal-normal model with DerSimonian–Laird between-player variance. Both pull each player toward their group by exactly how thin their sample is.

Does it help? & the fine print

The trust panel’s numbers come from a leakage-free odd/even-week holdout: fit on odd weeks, predict even-week raw. Shrinkage lowers out-of-sample error for every stat. Priors are fit per season and per position (WR and TE separately), so a TE’s baseline isn’t a skill. Regular season only, 2016–2025. Rushing and receiving efficiency are heavily scheme-driven — read the wide bands as the honesty they are.

Source: nflverse play-by-play. Counted and computed deterministically — never modeled by a language model. Built by build_nfl_leaderboards.py (byte-reproducible).