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

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
324
carrys to trust the number
shrunkrawthe shrink90% CI
-0.2-0.10.0avg1Alvin KamaraNO · 121-0.002Dion LewisNE · 180-0.033Kareem HuntKC · 272-0.054Corey GrantJAX · 30-0.055Aaron JonesGB · 81-0.056Alex CollinsBAL · 212-0.067Ezekiel ElliottDAL · 242-0.068Corey ClementPHI · 75-0.079Duke JohnsonCLE · 82-0.0710Rod SmithDAL · 55-0.0711Mark IngramNO · 230-0.0712Alfred MorrisDAL · 115-0.0713Jamaal WilliamsGB · 153-0.0714Todd GurleyLA · 279-0.0715Matt BreidaSF · 105-0.0716Rex BurkheadNE · 64-0.0817Le'Veon BellPIT · 322-0.0818Jordan HowardCHI · 276-0.0819Elijhaa PennyARI · 31-0.0820Orleans DarkwaNYG · 172-0.0821Peyton BarberTB · 108-0.0822Leonard FournetteJAX · 269-0.0823Devonta FreemanATL · 196-0.0824Austin EkelerLAC · 47-0.0825Wayne GallmanNYG · 111-0.0926Tion GreenDET · 42-0.0927Cameron Artis-Pay…CAR · 18-0.0928Marshawn LynchLV · 207-0.0929Devontae BookerDEN · 79-0.0930James ConnerPIT · 32-0.0931Travaris CadetBUF · 23-0.0932Robert TurbinIND · 23-0.0933Charles SimsTB · 22-0.0934Charcandrick WestKC · 18-0.09

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 · 2017 · full board

EPA per rush leaderboard for the 2017 NFL season, shrunk by empirical Bayes with 90% credible intervals, ranked by the shrunk estimate.
#PlayerTeamPoscarrysRawShrunk90% interval
1Alvin Kamara◦ provisionalNORB121+0.25-0.00-0.07+0.07
2Dion Lewis◦ provisionalNERB180+0.10-0.03-0.09+0.04
3Kareem Hunt◦ provisionalKCRB272+0.01-0.05-0.11+0.01
4Corey Grant◦ provisionalJAXRB30+0.44-0.05-0.13+0.03
5Aaron Jones◦ provisionalGBRB81+0.12-0.05-0.13+0.02
6Alex Collins◦ provisionalBALRB212-0.01-0.06-0.13+0.00
7Ezekiel Elliott◦ provisionalDALRB242-0.02-0.06-0.13-0.00
8Corey Clement◦ provisionalPHIRB75+0.07-0.07-0.14+0.01
9Duke Johnson◦ provisionalCLERB82+0.05-0.07-0.14+0.01
10Rod Smith◦ provisionalDALRB55+0.10-0.07-0.14+0.01
11Mark Ingram◦ provisionalNORB230-0.03-0.07-0.13-0.01
12Alfred Morris◦ provisionalDALRB115+0.01-0.07-0.14+0.00
13Jamaal Williams◦ provisionalGBRB153-0.01-0.07-0.14-0.00
14Todd Gurley◦ provisionalLARB279-0.04-0.07-0.13-0.01
15Matt Breida◦ provisionalSFRB105+0.00-0.07-0.14-0.00
16Rex Burkhead◦ provisionalNERB64+0.03-0.08-0.15-0.00
17Le'Veon Bell◦ provisionalPITRB322-0.06-0.08-0.14-0.02
18Jordan Howard◦ provisionalCHIRB276-0.05-0.08-0.14-0.02
19Elijhaa Penny◦ provisionalARIRB31+0.10-0.08-0.16-0.00
20Orleans Darkwa◦ provisionalNYGRB172-0.05-0.08-0.15-0.01
21Peyton Barber◦ provisionalTBRB108-0.03-0.08-0.15-0.01
22Leonard Fournette◦ provisionalJAXRB269-0.06-0.08-0.14-0.02
23Devonta Freeman◦ provisionalATLRB196-0.06-0.08-0.15-0.02
24Austin Ekeler◦ provisionalLACRB47+0.00-0.08-0.16-0.01
25Wayne Gallman◦ provisionalNYGRB111-0.05-0.09-0.16-0.01
26Tion Green◦ provisionalDETRB42-0.00-0.09-0.16-0.01
27Cameron Artis-Payne◦ provisionalCARRB18+0.09-0.09-0.17-0.01
28Marshawn Lynch◦ provisionalLVRB207-0.07-0.09-0.15-0.02
29Devontae Booker◦ provisionalDENRB79-0.06-0.09-0.16-0.02
30James Conner◦ provisionalPITRB32-0.01-0.09-0.17-0.01
31Javorius Allen◦ provisionalBALRB153-0.07-0.09-0.16-0.02
32Melvin Gordon◦ provisionalLACRB284-0.08-0.09-0.15-0.03
33Derrick Henry◦ provisionalTENRB176-0.08-0.09-0.16-0.02
34Travaris Cadet◦ provisionalBUFRB23-0.02-0.09-0.17-0.01
35Robert Turbin◦ provisionalINDRB23-0.04-0.09-0.17-0.01
36Charles Sims◦ provisionalTBRB22-0.04-0.09-0.17-0.01
37T.J. Yeldon◦ provisionalJAXRB49-0.07-0.09-0.17-0.02
38Latavius Murray◦ provisionalMINRB216-0.09-0.09-0.16-0.03
39Dalvin Cook◦ provisionalMINRB74-0.08-0.09-0.17-0.02
40Frank Gore◦ provisionalINDRB261-0.09-0.09-0.16-0.03
41Charcandrick West◦ provisionalKCRB18-0.06-0.09-0.18-0.01
42J.D. McKissic◦ provisionalSEARB46-0.08-0.09-0.17-0.02
43Stevan Ridley◦ provisionalPITRB26-0.07-0.10-0.17-0.02
44Chris Carson◦ provisionalSEARB49-0.09-0.10-0.17-0.02
45Giovani Bernard◦ provisionalCINRB105-0.09-0.10-0.17-0.02
46Kenyan Drake◦ provisionalMIARB134-0.09-0.10-0.17-0.03
47Kapri Bibbs◦ provisionalWASRB21-0.10-0.10-0.18-0.02
48C.J. Anderson◦ provisionalDENRB245-0.10-0.10-0.16-0.04
49Marlon Mack◦ provisionalINDRB93-0.10-0.10-0.17-0.02
50Bilal Powell◦ provisionalNYJRB178-0.10-0.10-0.16-0.03
51Darren Sproles◦ provisionalPHIRB15-0.14-0.10-0.18-0.02
52Jeremy Hill◦ provisionalCINRB37-0.12-0.10-0.18-0.02
53Alfred Blue◦ provisionalHOURB71-0.11-0.10-0.17-0.03
54Christian McCaffrey◦ provisionalCARRB117-0.11-0.10-0.17-0.03
55Chris Thompson◦ provisionalWASRB64-0.12-0.10-0.18-0.03
56Joe Mixon◦ provisionalCINRB178-0.11-0.10-0.17-0.03
57Kenjon Barner◦ provisionalPHIRB16-0.19-0.10-0.18-0.02
58Rob Kelley◦ provisionalWASRB62-0.13-0.10-0.18-0.03
59Jalen Richard◦ provisionalLVRB56-0.14-0.10-0.18-0.03
60Jay Ajayi◦ provisionalPHIRB208-0.11-0.10-0.17-0.04
61Jacquizz Rodgers◦ provisionalTBRB64-0.14-0.10-0.18-0.03
62Malcolm Brown◦ provisionalLARB63-0.14-0.10-0.18-0.03
63Tevin Coleman◦ provisionalATLRB156-0.12-0.10-0.17-0.04
64James White◦ provisionalNERB43-0.16-0.10-0.18-0.03
65Andre Ellington◦ provisionalHOURB20-0.24-0.11-0.19-0.03
66D'Onta Foreman◦ provisionalHOURB78-0.14-0.11-0.18-0.03
67Tarik Cohen◦ provisionalCHIRB87-0.14-0.11-0.18-0.03
68Lamar Miller◦ provisionalHOURB238-0.12-0.11-0.17-0.04
69Carlos Hyde◦ provisionalSFRB240-0.12-0.11-0.17-0.04
70DeAndre Washington◦ provisionalLVRB57-0.18-0.11-0.19-0.03
71Wendell Smallwood◦ provisionalPHIRB47-0.19-0.11-0.19-0.03
72Branden Oliver◦ provisionalLACRB35-0.23-0.11-0.19-0.03
73LeGarrette Blount◦ provisionalPHIRB174-0.13-0.11-0.18-0.04
74Mike Gillislee◦ provisionalNERB104-0.15-0.11-0.18-0.04
75Terrance West◦ provisionalBALRB40-0.23-0.11-0.19-0.03
76Kerwynn Williams◦ provisionalARIRB120-0.15-0.11-0.18-0.04
77Isaiah Crowell◦ provisionalCLERB207-0.14-0.11-0.18-0.05
78Elijah McGuire◦ provisionalNYJRB88-0.18-0.11-0.19-0.04
79Mike Tolbert◦ provisionalBUFRB66-0.20-0.12-0.19-0.04
80Terron Ward◦ provisionalATLRB30-0.31-0.12-0.19-0.04
81Jamaal Charles◦ provisionalDENRB69-0.20-0.12-0.19-0.04
82Chris Johnson◦ provisionalARIRB45-0.26-0.12-0.19-0.04
83LeSean McCoy◦ provisionalBUFRB287-0.14-0.12-0.18-0.06
84Dwayne Washington◦ provisionalDETRB20-0.45-0.12-0.20-0.04
85Matt Forte◦ provisionalNYJRB103-0.18-0.12-0.19-0.05
86Theo Riddick◦ provisionalDETRB84-0.21-0.12-0.19-0.05
87Paul Perkins◦ provisionalNYGRB41-0.31-0.12-0.20-0.04
88Shane Vereen◦ provisionalNYGRB45-0.30-0.12-0.20-0.04
89DeMarco Murray◦ provisionalTENRB184-0.17-0.12-0.19-0.06
90Damien Williams◦ provisionalMIARB46-0.32-0.13-0.20-0.05
91Mike Davis◦ provisionalSEARB68-0.29-0.13-0.21-0.06
92Eddie Lacy◦ provisionalSEARB69-0.29-0.13-0.21-0.06
93Doug Martin◦ provisionalTBRB139-0.21-0.13-0.20-0.06
94Chris Ivory◦ provisionalJAXRB112-0.24-0.13-0.21-0.06
95Jonathan Stewart◦ provisionalCARRB198-0.20-0.14-0.20-0.07
96Samaje Perine◦ provisionalWASRB175-0.21-0.14-0.20-0.07
97Ameer Abdullah◦ provisionalDETRB165-0.22-0.14-0.21-0.07
98Thomas Rawls◦ provisionalSEARB58-0.39-0.14-0.22-0.07
99Jerick McKinnon◦ provisionalMINRB151-0.24-0.14-0.21-0.07
100Adrian Peterson◦ provisionalARIRB156-0.26-0.15-0.22-0.08

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