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 rush · 2024

Mean EPA per carry. Blocking & scheme are large, un-controlled inputs.

Beats raw by
21.1%
lower out-of-sample error
RMSE raw → shrunk
0.16 → 0.13
odd vs. even weeks
Split-half reliability
0.17
how repeatable the raw stat is
Stabilizes at
145
carrys to trust the number
shrunkrawthe shrink90% CI
-0.3-0.2-0.10.00.1avg1Derrick HenryBAL · 325+0.072Jahmyr GibbsDET · 250+0.073Saquon BarkleyPHI · 348+0.064Bucky IrvingTB · 207+0.045Emari DemercadoARI · 24+0.036Bijan RobinsonATL · 305+0.027Sean TuckerTB · 50+0.018James CookBUF · 207+0.019Chuba HubbardCAR · 251+0.0110Jeremy McNicholsWAS · 56+0.0111Emanuel WilsonGB · 103+0.0112Chris Rodriguez J…WAS · 35+0.0013Dameon PierceHOU · 40-0.0014Tyler AllgeierATL · 138-0.0115J.K. DobbinsLAC · 195-0.0116Jerome FordCLE · 104-0.0117Austin EkelerWAS · 77-0.0118Isaac GuerendoSF · 84-0.0119Kareem HuntKC · 200-0.0220Chris BrooksGB · 36-0.0221James ConnerARI · 239-0.0222Isaiah DavisNYJ · 30-0.0223D'Ernest JohnsonJAX · 32-0.0324Tank BigsbyJAX · 168-0.0325Tyler GoodsonIND · 32-0.0326Ronnie RiversLA · 22-0.0327Khalil HerbertCIN · 36-0.0328Chase BrownCIN · 230-0.0329Jaleel McLaughlinDEN · 113-0.0330Patrick TaylorSF · 40-0.0431Kenny McIntoshSEA · 31-0.0432Justice HillBAL · 47-0.0433Ty JohnsonBUF · 41-0.0434Sincere McCormickLV · 39-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 rush · 2024 · full board

EPA per rush leaderboard for the 2024 NFL season, shrunk by empirical Bayes with 90% credible intervals, ranked by the shrunk estimate.
#PlayerTeamPoscarrysRawShrunk90% interval
1Derrick HenryBALRB325+0.12+0.07-0.00+0.14
2Jahmyr GibbsDETRB250+0.14+0.07-0.01+0.15
3Saquon BarkleyPHIRB348+0.11+0.06-0.01+0.13
4Bucky IrvingTBRB207+0.10+0.04-0.05+0.12
5Emari Demercado◦ provisionalARIRB24+0.52+0.03-0.09+0.15
6Bijan RobinsonATLRB305+0.06+0.02-0.05+0.10
7Sean Tucker◦ provisionalTBRB50+0.20+0.01-0.10+0.12
8James CookBUFRB207+0.05+0.01-0.07+0.09
9Chuba HubbardCARRB251+0.04+0.01-0.07+0.09
10Jeremy McNichols◦ provisionalWASRB56+0.16+0.01-0.10+0.12
11Emanuel Wilson◦ provisionalGBRB103+0.09+0.01-0.09+0.10
12Chris Rodriguez Jr.◦ provisionalWASRB35+0.23+0.00-0.12+0.12
13Dameon Pierce◦ provisionalHOURB40+0.18-0.00-0.12+0.11
14Tyler Allgeier◦ provisionalATLRB138+0.04-0.01-0.10+0.08
15J.K. DobbinsLACRB195+0.02-0.01-0.09+0.07
16Jerome Ford◦ provisionalCLERB104+0.05-0.01-0.11+0.09
17Austin Ekeler◦ provisionalWASRB77+0.06-0.01-0.12+0.09
18Isaac Guerendo◦ provisionalSFRB84+0.06-0.01-0.12+0.09
19Kareem HuntKCRB200+0.01-0.02-0.10+0.07
20Chris Brooks◦ provisionalGBRB36+0.13-0.02-0.13+0.10
21James ConnerARIRB239+0.01-0.02-0.10+0.06
22Isaiah Davis◦ provisionalNYJRB30+0.15-0.02-0.14+0.10
23D'Ernest Johnson◦ provisionalJAXRB32+0.10-0.03-0.14+0.09
24Tank BigsbyJAXRB168-0.01-0.03-0.12+0.06
25Tyler Goodson◦ provisionalINDRB32+0.08-0.03-0.15+0.09
26Ronnie Rivers◦ provisionalLARB22+0.13-0.03-0.15+0.09
27Khalil Herbert◦ provisionalCINRB36+0.06-0.03-0.15+0.08
28Chase BrownCINRB230-0.02-0.03-0.11+0.05
29Jaleel McLaughlin◦ provisionalDENRB113-0.01-0.03-0.13+0.06
30Patrick Taylor◦ provisionalSFRB40+0.03-0.04-0.15+0.08
31Kenny McIntosh◦ provisionalSEARB31+0.05-0.04-0.15+0.08
32Justice Hill◦ provisionalBALRB47+0.02-0.04-0.15+0.08
33Ty Johnson◦ provisionalBUFRB41+0.02-0.04-0.15+0.08
34Sincere McCormick◦ provisionalLVRB39+0.01-0.04-0.15+0.07
35Jordan MasonSFRB153-0.04-0.04-0.13+0.05
36Michael Carter◦ provisionalARIRB35-0.01-0.05-0.16+0.07
37Rico DowdleDALRB235-0.04-0.05-0.13+0.03
38David MontgomeryDETRB186-0.05-0.05-0.14+0.04
39Samaje Perine◦ provisionalKCRB20-0.03-0.05-0.17+0.07
40Ray Davis◦ provisionalBUFRB113-0.05-0.05-0.15+0.04
41Raheem Blackshear◦ provisionalCARRB15-0.04-0.05-0.18+0.07
42Aaron JonesMINRB255-0.05-0.05-0.13+0.02
43JaMycal Hasty◦ provisionalNERB20-0.05-0.05-0.17+0.07
44Pierre Strong◦ provisionalCLERB26-0.06-0.05-0.17+0.06
45Christian McCaffrey◦ provisionalSFRB50-0.06-0.05-0.17+0.06
46De'Von AchaneMIARB203-0.06-0.05-0.14+0.03
47Tyjae Spears◦ provisionalTENRB84-0.06-0.06-0.16+0.05
48Joe MixonHOURB247-0.06-0.06-0.14+0.02
49Brian RobinsonWASRB187-0.06-0.06-0.15+0.03
50Najee HarrisPITRB263-0.06-0.06-0.14+0.02
51Roschon Johnson◦ provisionalCHIRB55-0.08-0.06-0.17+0.05
52Trey Benson◦ provisionalARIRB63-0.08-0.06-0.17+0.05
53Josh JacobsGBRB303-0.07-0.06-0.14+0.01
54Hassan Haskins◦ provisionalLACRB34-0.11-0.06-0.18+0.05
55Braelon Allen◦ provisionalNYJRB92-0.08-0.07-0.17+0.04
56Jordan Mims◦ provisionalNORB20-0.16-0.07-0.19+0.05
57Julius Chestnut◦ provisionalTENRB22-0.15-0.07-0.19+0.05
58Kenneth Walker IIISEARB153-0.08-0.07-0.16+0.02
59Kyren WilliamsLARB316-0.07-0.07-0.14+0.00
60Zach Charbonnet◦ provisionalSEARB135-0.08-0.07-0.16+0.02
61Jonathan TaylorINDRB305-0.08-0.07-0.14+0.00
62Audric Estimé◦ provisionalDENRB76-0.10-0.07-0.17+0.04
63Alvin KamaraNORB228-0.08-0.07-0.15+0.01
64Antonio Gibson◦ provisionalNERB120-0.09-0.07-0.17+0.03
65Kendre Miller◦ provisionalNORB39-0.14-0.07-0.19+0.04
66Craig Reynolds◦ provisionalDETRB31-0.16-0.07-0.19+0.04
67Ameer Abdullah◦ provisionalLVRB66-0.11-0.07-0.18+0.03
68Devin Singletary◦ provisionalNYGRB113-0.10-0.07-0.17+0.02
69Deuce Vaughn◦ provisionalDALRB17-0.24-0.07-0.20+0.05
70Jeff Wilson◦ provisionalMIARB16-0.29-0.08-0.20+0.05
71Breece HallNYJRB212-0.10-0.08-0.16+0.00
72Rachaad White◦ provisionalTBRB144-0.11-0.08-0.17+0.01
73Keaton Mitchell◦ provisionalBALRB15-0.35-0.08-0.20+0.04
74Miles Sanders◦ provisionalCARRB55-0.16-0.08-0.19+0.03
75Jaylen Warren◦ provisionalPITRB120-0.12-0.08-0.18+0.01
76Tony PollardTENRB261-0.10-0.08-0.16-0.01
77Tyrone Tracy Jr.NYGRB192-0.11-0.08-0.17-0.00
78Kimani Vidal◦ provisionalLACRB43-0.20-0.09-0.20+0.03
79Blake Corum◦ provisionalLARB58-0.17-0.09-0.20+0.02
80Kenneth Gainwell◦ provisionalPHIRB75-0.15-0.09-0.19+0.02
81Cordarrelle Patterson◦ provisionalPITRB32-0.25-0.09-0.21+0.03
82Gus Edwards◦ provisionalLACRB102-0.14-0.09-0.19+0.01
83Jamaal Williams◦ provisionalNORB48-0.20-0.09-0.20+0.02
84Ty Chandler◦ provisionalMINRB56-0.19-0.09-0.20+0.02
85Will Shipley◦ provisionalPHIRB30-0.28-0.09-0.21+0.02
86Dare Ogunbowale◦ provisionalHOURB30-0.28-0.09-0.21+0.02
87Isiah Pacheco◦ provisionalKCRB83-0.16-0.09-0.20+0.01
88Trey Sermon◦ provisionalINDRB56-0.20-0.09-0.20+0.01
89Carson Steele◦ provisionalKCRB56-0.21-0.10-0.21+0.01
90Cam Akers◦ provisionalMINRB104-0.18-0.11-0.20-0.01
91Ezekiel Elliott◦ provisionalDALRB74-0.22-0.11-0.21-0.00
92Javonte Williams◦ provisionalDENRB139-0.17-0.11-0.20-0.02
93Nick Chubb◦ provisionalCLERB102-0.20-0.12-0.21-0.02
94Travis EtienneJAXRB150-0.18-0.12-0.21-0.03
95D'Andre SwiftCHIRB253-0.15-0.12-0.20-0.04
96Zack Moss◦ provisionalCINRB74-0.27-0.13-0.23-0.02
97Rhamondre StevensonNERB207-0.18-0.13-0.21-0.05
98Jaylen Wright◦ provisionalMIARB68-0.30-0.13-0.24-0.03
99Alexander Mattison◦ provisionalLVRB134-0.23-0.14-0.23-0.05
100D'Onta Foreman◦ provisionalCLERB71-0.34-0.15-0.25-0.04
101Raheem Mostert◦ provisionalMIARB85-0.36-0.17-0.27-0.06
102Zamir White◦ provisionalLVRB65-0.56-0.21-0.32-0.10

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).