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 · 2022

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
385
carrys to trust the number
shrunkrawthe shrink90% CI
-0.1-0.1-0.10.00.1avg1Nick ChubbCLE · 303-0.012Miles SandersPHI · 260-0.013Breece HallNYJ · 80-0.014Aaron JonesGB · 213-0.015Rashaad PennySEA · 57-0.016Tyler AllgeierATL · 211-0.017Jeff WilsonMIA · 176-0.028J.K. DobbinsBAL · 92-0.029Elijah MitchellSF · 45-0.0210Jaylen WarrenPIT · 77-0.0211Kenneth GainwellPHI · 53-0.0212Tony PollardDAL · 193-0.0213D'Andre SwiftDET · 100-0.0214D'Onta ForemanCAR · 204-0.0215James CookBUF · 89-0.0216Christian McCaffr…SF · 246-0.0317Josh JacobsLV · 341-0.0318AJ DillonGB · 186-0.0319Caleb HuntleyATL · 76-0.0320Khalil HerbertCHI · 129-0.0321Raheem MostertMIA · 181-0.0322Benny SnellPIT · 20-0.0323Chuba HubbardCAR · 95-0.0324Joshua KelleyLAC · 69-0.0325Darrel WilliamsARI · 21-0.0326Cordarrelle Patte…ATL · 144-0.0327Austin EkelerLAC · 204-0.0328Clyde Edwards-Hel…KC · 71-0.0329Jordan MasonSF · 43-0.0330DeeJay DallasSEA · 35-0.0431Darrell HendersonLA · 70-0.0432Matt BreidaNYG · 54-0.0433Raheem BlackshearCAR · 23-0.0434Ronald JonesKC · 17-0.0435Dontrell HilliardTEN · 22-0.0436Avery WilliamsATL · 22-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 · 2022 · full board

EPA per rush leaderboard for the 2022 NFL season, shrunk by empirical Bayes with 90% credible intervals, ranked by the shrunk estimate.
#PlayerTeamPoscarrysRawShrunk90% interval
1Nick Chubb◦ provisionalCLERB303+0.05-0.01-0.06+0.05
2Miles Sanders◦ provisionalPHIRB260+0.05-0.01-0.07+0.05
3Breece Hall◦ provisionalNYJRB80+0.17-0.01-0.08+0.06
4Aaron Jones◦ provisionalGBRB213+0.06-0.01-0.07+0.05
5Rashaad Penny◦ provisionalSEARB57+0.23-0.01-0.08+0.06
6Tyler Allgeier◦ provisionalATLRB211+0.05-0.01-0.07+0.05
7Jeff Wilson◦ provisionalMIARB176+0.04-0.02-0.08+0.05
8J.K. Dobbins◦ provisionalBALRB92+0.10-0.02-0.09+0.05
9Elijah Mitchell◦ provisionalSFRB45+0.22-0.02-0.09+0.05
10Jaylen Warren◦ provisionalPITRB77+0.11-0.02-0.09+0.05
11Kenneth Gainwell◦ provisionalPHIRB53+0.15-0.02-0.10+0.05
12Tony Pollard◦ provisionalDALRB193+0.02-0.02-0.09+0.04
13D'Andre Swift◦ provisionalDETRB100+0.07-0.02-0.09+0.05
14D'Onta Foreman◦ provisionalCARRB204+0.02-0.02-0.09+0.04
15James Cook◦ provisionalBUFRB89+0.07-0.02-0.09+0.05
16Christian McCaffrey◦ provisionalSFRB246+0.01-0.03-0.09+0.04
17Josh Jacobs◦ provisionalLVRB341-0.00-0.03-0.08+0.03
18AJ Dillon◦ provisionalGBRB186+0.01-0.03-0.09+0.04
19Caleb Huntley◦ provisionalATLRB76+0.05-0.03-0.10+0.04
20Khalil Herbert◦ provisionalCHIRB129+0.01-0.03-0.10+0.03
21Raheem Mostert◦ provisionalMIARB181-0.01-0.03-0.10+0.03
22Benny Snell◦ provisionalPITRB20+0.22-0.03-0.11+0.04
23Chuba Hubbard◦ provisionalCARRB95+0.02-0.03-0.10+0.04
24Joshua Kelley◦ provisionalLACRB69+0.04-0.03-0.11+0.04
25Darrel Williams◦ provisionalARIRB21+0.20-0.03-0.11+0.04
26Cordarrelle Patterson◦ provisionalATLRB144-0.00-0.03-0.10+0.03
27Austin Ekeler◦ provisionalLACRB204-0.01-0.03-0.10+0.03
28Clyde Edwards-Helaire◦ provisionalKCRB71+0.03-0.03-0.11+0.04
29Jordan Mason◦ provisionalSFRB43+0.07-0.03-0.11+0.04
30DeeJay Dallas◦ provisionalSEARB35+0.09-0.04-0.11+0.04
31James Conner◦ provisionalARIRB183-0.01-0.04-0.10+0.03
32Darrell Henderson◦ provisionalLARB70+0.02-0.04-0.11+0.04
33Gus Edwards◦ provisionalBALRB87-0.00-0.04-0.11+0.03
34Alexander Mattison◦ provisionalMINRB74+0.01-0.04-0.11+0.03
35Isiah Pacheco◦ provisionalKCRB170-0.02-0.04-0.10+0.03
36Matt Breida◦ provisionalNYGRB54+0.01-0.04-0.11+0.03
37Eno Benjamin◦ provisionalNORB78-0.01-0.04-0.11+0.03
38Raheem Blackshear◦ provisionalCARRB23+0.06-0.04-0.12+0.04
39Latavius Murray◦ provisionalDENRB172-0.03-0.04-0.11+0.02
40Brian Robinson◦ provisionalWASRB205-0.03-0.04-0.10+0.02
41Ronald Jones◦ provisionalKCRB17+0.07-0.04-0.12+0.03
42Dontrell Hilliard◦ provisionalTENRB22+0.03-0.04-0.12+0.03
43Avery Williams◦ provisionalATLRB22+0.01-0.04-0.12+0.03
44Travis Etienne◦ provisionalJAXRB221-0.04-0.04-0.11+0.02
45Damien Harris◦ provisionalNERB106-0.04-0.04-0.11+0.03
46Samaje Perine◦ provisionalCINRB96-0.04-0.05-0.11+0.02
47Malcolm Brown◦ provisionalLARB18-0.03-0.05-0.12+0.03
48Rhamondre Stevenson◦ provisionalNERB210-0.05-0.05-0.11+0.02
49Boston Scott◦ provisionalPHIRB54-0.05-0.05-0.12+0.03
50Corey Clement◦ provisionalARIRB15-0.05-0.05-0.12+0.03
51Marlon Mack◦ provisionalDENRB16-0.06-0.05-0.12+0.03
52Jaret Patterson◦ provisionalWASRB17-0.06-0.05-0.12+0.03
53Ezekiel Elliott◦ provisionalDALRB231-0.05-0.05-0.11+0.01
54Zamir White◦ provisionalLVRB17-0.09-0.05-0.12+0.03
55Justice Hill◦ provisionalBALRB49-0.07-0.05-0.12+0.02
56Phillip Lindsay◦ provisionalINDRB16-0.11-0.05-0.12+0.03
57Sony Michel◦ provisionalLACRB36-0.08-0.05-0.12+0.03
58Saquon Barkley◦ provisionalNYGRB295-0.05-0.05-0.11+0.01
59Kevin Harris◦ provisionalNERB18-0.11-0.05-0.12+0.03
60Joe Mixon◦ provisionalCINRB210-0.06-0.05-0.11+0.01
61Hassan Haskins◦ provisionalTENRB25-0.10-0.05-0.12+0.03
62Travis Homer◦ provisionalSEARB19-0.13-0.05-0.13+0.03
63Malik Davis◦ provisionalDALRB38-0.09-0.05-0.12+0.02
64Ke'Shawn Vaughn◦ provisionalTBRB17-0.18-0.05-0.13+0.02
65Mike Boone◦ provisionalDENRB24-0.15-0.05-0.13+0.02
66Kyren Williams◦ provisionalLARB35-0.12-0.05-0.13+0.02
67Ty Johnson◦ provisionalNYJRB30-0.14-0.05-0.13+0.02
68Kenneth Walker III◦ provisionalSEARB228-0.07-0.05-0.11+0.01
69Gary Brightwell◦ provisionalNYGRB31-0.14-0.05-0.13+0.02
70J.D. McKissic◦ provisionalWASRB22-0.18-0.05-0.13+0.02
71Craig Reynolds◦ provisionalDETRB23-0.18-0.05-0.13+0.02
72Cam Akers◦ provisionalLARB188-0.07-0.05-0.12+0.01
73Derrick Henry◦ provisionalTENRB349-0.06-0.05-0.11+0.00
74Javonte Williams◦ provisionalDENRB47-0.13-0.06-0.13+0.02
75David Montgomery◦ provisionalCHIRB201-0.08-0.06-0.12+0.01
76JaMycal Hasty◦ provisionalJAXRB46-0.15-0.06-0.13+0.02
77Kareem Hunt◦ provisionalCLERB123-0.09-0.06-0.13+0.01
78Dare Ogunbowale◦ provisionalHOURB43-0.17-0.06-0.13+0.02
79Zack Moss◦ provisionalINDRB93-0.11-0.06-0.13+0.01
80Brandon Bolden◦ provisionalLVRB17-0.37-0.06-0.14+0.02
81Rex Burkhead◦ provisionalHOURB26-0.26-0.06-0.14+0.02
82Jonathan Williams◦ provisionalWASRB37-0.21-0.06-0.13+0.01
83Jerick McKinnon◦ provisionalKCRB72-0.14-0.06-0.13+0.01
84Kenyan Drake◦ provisionalBALRB109-0.11-0.06-0.13+0.01
85Devin Singletary◦ provisionalBUFRB177-0.09-0.06-0.13+0.00
86Isaiah Spiller◦ provisionalLACRB18-0.40-0.06-0.14+0.01
87Antonio Gibson◦ provisionalWASRB149-0.11-0.06-0.13+0.00
88Trestan Ebner◦ provisionalCHIRB24-0.35-0.06-0.14+0.01
89Mark Ingram◦ provisionalNORB64-0.17-0.06-0.14+0.01
90James Robinson◦ provisionalNYJRB110-0.13-0.07-0.13+0.00
91Keaontay Ingram◦ provisionalARIRB27-0.34-0.07-0.14+0.01
92Jamaal Williams◦ provisionalDETRB263-0.10-0.07-0.13-0.01
93Justin Jackson◦ provisionalDETRB43-0.25-0.07-0.14+0.01
94Bam Knight◦ provisionalNYJRB85-0.16-0.07-0.14+0.00
95Rachaad White◦ provisionalTBRB130-0.14-0.07-0.14-0.00
96Najee Harris◦ provisionalPITRB272-0.11-0.07-0.13-0.01
97Deon Jackson◦ provisionalINDRB68-0.23-0.07-0.15-0.00
98Chase Edmonds◦ provisionalDENRB68-0.23-0.07-0.15-0.00
99Tyrion Davis-Price◦ provisionalSFRB34-0.40-0.07-0.15-0.00
100Dameon Pierce◦ provisionalHOURB220-0.13-0.08-0.14-0.01
101Nyheim Hines◦ provisionalBUFRB24-0.55-0.08-0.15-0.00
102Royce Freeman◦ provisionalHOURB41-0.38-0.08-0.15-0.00
103Michael Carter◦ provisionalNYJRB114-0.19-0.08-0.15-0.01
104Jonathan Taylor◦ provisionalINDRB192-0.15-0.08-0.14-0.02
105Leonard Fournette◦ provisionalTBRB189-0.20-0.10-0.16-0.03
106Alvin Kamara◦ provisionalNORB223-0.18-0.10-0.16-0.03
107Melvin Gordon◦ provisionalDENRB90-0.33-0.10-0.17-0.03
108Dalvin Cook◦ provisionalMINRB264-0.18-0.10-0.16-0.04

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