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

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
903
carrys to trust the number
shrunkrawthe shrink90% CI
-0.1-0.10.0avg1Jonathan TaylorIND · 324-0.022D'Andre SwiftCHI · 223-0.023De'Von AchaneMIA · 238-0.024Blake CorumLA · 145-0.025Javonte WilliamsDAL · 252-0.026Derrick HenryBAL · 307-0.027Kareem HuntKC · 163-0.038Rachaad WhiteTB · 133-0.039James CookBUF · 309-0.0310TreVeyon HendersonNE · 180-0.0311Kyren WilliamsLA · 259-0.0312Chris Rodriguez J…WAS · 112-0.0313Tank BigsbyPHI · 63-0.0314J.K. DobbinsDEN · 153-0.0315Kyle MonangaiCHI · 171-0.0316Jaylen WarrenPIT · 211-0.0317Audric EstiméNO · 46-0.0318David MontgomeryDET · 159-0.0419Rico DowdleCAR · 237-0.0420Jahmyr GibbsDET · 243-0.0421Keaton MitchellBAL · 59-0.0422Ty JohnsonBUF · 50-0.0423Zach CharbonnetSEA · 184-0.0424Chase BrownCIN · 233-0.0425Omarion HamptonLAC · 124-0.0426Kenneth GainwellPIT · 114-0.0427Ray DavisBUF · 58-0.0428Terrell JenningsNE · 23-0.0429Jeremy McNicholsWAS · 45-0.0430Jaleel McLaughlinDEN · 37-0.0431Samaje PerineCIN · 84-0.0432Malik DavisDAL · 52-0.0433British BrooksHOU · 17-0.0434Raheim SandersCLE · 27-0.0435DJ GiddensIND · 26-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 · 2025 · full board

EPA per rush leaderboard for the 2025 NFL season, shrunk by empirical Bayes with 90% credible intervals, ranked by the shrunk estimate.
#PlayerTeamPoscarrysRawShrunk90% interval
1Jonathan Taylor◦ provisionalINDRB324+0.06-0.02-0.06+0.03
2D'Andre Swift◦ provisionalCHIRB223+0.07-0.02-0.07+0.03
3De'Von Achane◦ provisionalMIARB238+0.06-0.02-0.07+0.02
4Blake Corum◦ provisionalLARB145+0.11-0.02-0.07+0.03
5Javonte Williams◦ provisionalDALRB252+0.05-0.02-0.07+0.02
6Derrick Henry◦ provisionalBALRB307+0.03-0.02-0.07+0.02
7Kareem Hunt◦ provisionalKCRB163+0.06-0.03-0.07+0.02
8Rachaad White◦ provisionalTBRB133+0.08-0.03-0.07+0.02
9James Cook◦ provisionalBUFRB309+0.02-0.03-0.07+0.02
10TreVeyon Henderson◦ provisionalNERB180+0.05-0.03-0.07+0.02
11Kyren Williams◦ provisionalLARB259+0.02-0.03-0.07+0.02
12Chris Rodriguez Jr.◦ provisionalWASRB112+0.06-0.03-0.08+0.02
13Tank Bigsby◦ provisionalPHIRB63+0.12-0.03-0.08+0.02
14J.K. Dobbins◦ provisionalDENRB153+0.03-0.03-0.08+0.02
15Kyle Monangai◦ provisionalCHIRB171+0.02-0.03-0.08+0.02
16Jaylen Warren◦ provisionalPITRB211-0.00-0.03-0.08+0.01
17Audric Estimé◦ provisionalNORB46+0.10-0.03-0.08+0.01
18David Montgomery◦ provisionalDETRB159+0.00-0.04-0.08+0.01
19Rico Dowdle◦ provisionalCARRB237-0.01-0.04-0.08+0.01
20Jahmyr Gibbs◦ provisionalDETRB243-0.01-0.04-0.08+0.01
21Keaton Mitchell◦ provisionalBALRB59+0.04-0.04-0.09+0.01
22Ty Johnson◦ provisionalBUFRB50+0.06-0.04-0.09+0.01
23Zach Charbonnet◦ provisionalSEARB184-0.01-0.04-0.08+0.01
24Chase Brown◦ provisionalCINRB233-0.02-0.04-0.08+0.01
25Omarion Hampton◦ provisionalLACRB124-0.01-0.04-0.09+0.01
26Kenneth Gainwell◦ provisionalPITRB114-0.01-0.04-0.09+0.01
27Ray Davis◦ provisionalBUFRB58+0.02-0.04-0.09+0.01
28Terrell Jennings◦ provisionalNERB23+0.10-0.04-0.09+0.01
29Jeremy McNichols◦ provisionalWASRB45+0.03-0.04-0.09+0.01
30Jaleel McLaughlin◦ provisionalDENRB37+0.04-0.04-0.09+0.01
31Samaje Perine◦ provisionalCINRB84-0.00-0.04-0.09+0.01
32Malik Davis◦ provisionalDALRB52+0.02-0.04-0.09+0.01
33Brian Robinson◦ provisionalSFRB92-0.01-0.04-0.09+0.01
34British Brooks◦ provisionalHOURB17+0.13-0.04-0.09+0.01
35Aaron Jones◦ provisionalMINRB132-0.02-0.04-0.09+0.01
36Devin Singletary◦ provisionalNYGRB119-0.02-0.04-0.09+0.01
37Raheim Sanders◦ provisionalCLERB27+0.03-0.04-0.09+0.01
38DJ Giddens◦ provisionalINDRB26+0.00-0.04-0.09+0.01
39Trey Benson◦ provisionalARIRB29-0.01-0.04-0.09+0.01
40Jordan Mason◦ provisionalMINRB159-0.04-0.04-0.09+0.01
41Jacory Croskey-Merritt◦ provisionalWASRB176-0.04-0.04-0.09+0.01
42Najee Harris◦ provisionalLACRB15-0.02-0.04-0.09+0.01
43Jaret Patterson◦ provisionalLACRB41-0.04-0.04-0.09+0.01
44Sean Tucker◦ provisionalTBRB86-0.04-0.04-0.09+0.01
45Bijan Robinson◦ provisionalATLRB288-0.04-0.04-0.09+0.00
46Justice Hill◦ provisionalBALRB18-0.07-0.04-0.09+0.01
47Trevor Etienne◦ provisionalCARRB20-0.08-0.04-0.09+0.01
48Tyjae Spears◦ provisionalTENRB72-0.05-0.04-0.09+0.01
49Kendre Miller◦ provisionalNORB47-0.06-0.04-0.09+0.01
50Hunter Luepke◦ provisionalDALRB16-0.10-0.04-0.09+0.01
51Miles Sanders◦ provisionalDALRB20-0.09-0.04-0.09+0.01
52James Conner◦ provisionalARIRB32-0.09-0.04-0.09+0.01
53Isaiah Davis◦ provisionalNYJRB43-0.08-0.04-0.09+0.01
54Khalil Herbert◦ provisionalNYJRB16-0.14-0.04-0.09+0.01
55Jerome Ford◦ provisionalCLERB24-0.13-0.04-0.09+0.01
56Tyrone Tracy Jr.◦ provisionalNYGRB176-0.06-0.04-0.09+0.00
57Hassan Haskins◦ provisionalLACRB17-0.17-0.04-0.09+0.01
58Emanuel Wilson◦ provisionalGBRB125-0.06-0.04-0.09+0.00
59LeQuint Allen Jr.◦ provisionalJAXRB23-0.14-0.04-0.09+0.01
60Jaylen Wright◦ provisionalMIARB70-0.08-0.04-0.09+0.00
61Michael Carter◦ provisionalARIRB92-0.07-0.04-0.09+0.00
62Tahj Brooks◦ provisionalCINRB16-0.25-0.05-0.10+0.01
63Antonio Gibson◦ provisionalNERB25-0.19-0.05-0.10+0.00
64Chris Brooks◦ provisionalGBRB27-0.18-0.05-0.10+0.00
65Josh Jacobs◦ provisionalGBRB234-0.06-0.05-0.09-0.00
66Kenneth Walker III◦ provisionalSEARB221-0.06-0.05-0.09-0.00
67Ty Chandler◦ provisionalMINRB17-0.32-0.05-0.10+0.00
68Tyler Allgeier◦ provisionalATLRB143-0.08-0.05-0.09+0.00
69Emari Demercado◦ provisionalARIRB44-0.16-0.05-0.10+0.00
70Devin Neal◦ provisionalNORB57-0.14-0.05-0.10+0.00
71Jaydon Blue◦ provisionalDALRB38-0.20-0.05-0.10+0.00
72Christian McCaffrey◦ provisionalSFRB311-0.07-0.05-0.09-0.00
73Bhayshul Tuten◦ provisionalJAXRB84-0.12-0.05-0.10+0.00
74Ollie Gordon II◦ provisionalMIARB70-0.14-0.05-0.10+0.00
75Travis Etienne◦ provisionalJAXRB260-0.07-0.05-0.09-0.00
76Kaleb Johnson◦ provisionalPITRB28-0.28-0.05-0.10+0.00
77Kimani Vidal◦ provisionalLACRB155-0.09-0.05-0.10-0.00
78Evan Hull◦ provisionalNORB19-0.41-0.05-0.10+0.00
79Jawhar Jordan◦ provisionalHOURB43-0.21-0.05-0.10+0.00
80Cam Skattebo◦ provisionalNYGRB102-0.12-0.05-0.10-0.00
81Zavier Scott◦ provisionalMINRB32-0.28-0.05-0.10+0.00
82Nick Chubb◦ provisionalHOURB122-0.11-0.05-0.10-0.00
83Brashard Smith◦ provisionalKCRB44-0.22-0.05-0.10-0.00
84Isiah Pacheco◦ provisionalKCRB118-0.12-0.05-0.10-0.00
85Braelon Allen◦ provisionalNYJRB19-0.46-0.05-0.10+0.00
86Raheem Mostert◦ provisionalLVRB22-0.41-0.05-0.10-0.00
87George Holani◦ provisionalSEARB22-0.42-0.05-0.10-0.00
88Chuba Hubbard◦ provisionalCARRB135-0.12-0.05-0.10-0.00
89Tony Pollard◦ provisionalTENRB242-0.09-0.05-0.10-0.01
90Saquon Barkley◦ provisionalPHIRB281-0.09-0.05-0.10-0.01
91Breece Hall◦ provisionalNYJRB243-0.09-0.05-0.10-0.01
92Rhamondre Stevenson◦ provisionalNERB131-0.14-0.05-0.10-0.01
93Bam Knight◦ provisionalARIRB83-0.20-0.05-0.10-0.01
94Quinshon Judkins◦ provisionalCLERB231-0.11-0.06-0.10-0.01
95Dylan Sampson◦ provisionalCLERB65-0.26-0.06-0.11-0.01
96RJ Harvey◦ provisionalDENRB147-0.16-0.06-0.11-0.01
97Woody Marks◦ provisionalHOURB196-0.15-0.06-0.11-0.01
98Alvin Kamara◦ provisionalNORB131-0.22-0.06-0.11-0.02
99Bucky Irving◦ provisionalTBRB173-0.21-0.07-0.11-0.02
100Ashton Jeanty◦ provisionalLVRB267-0.24-0.09-0.13-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).