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

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
183
carrys to trust the number
shrunkrawthe shrink90% CI
-0.2-0.10.00.1avg1Mike GillisleeBUF · 101+0.042LeSean McCoyBUF · 235+0.003Ezekiel ElliottDAL · 322-0.004Jay AjayiMIA · 260-0.015Robert TurbinIND · 47-0.026Bilal PowellNYJ · 131-0.027Le'Veon BellPIT · 261-0.028Rex BurkheadCIN · 74-0.029Devonta FreemanATL · 227-0.0210Kenneth DixonBAL · 88-0.0211Kerwynn WilliamsARI · 18-0.0312Jordan HowardCHI · 252-0.0313Chris ThompsonWAS · 69-0.0314Kenyan DrakeMIA · 33-0.0415Tevin ColemanATL · 118-0.0416Jalen RichardLV · 83-0.0417Mark IngramNO · 208-0.0518Eddie LacyGB · 71-0.0519John KuhnNO · 18-0.0520Dion LewisNE · 64-0.0521Derrick HenryTEN · 110-0.0522Tim HightowerNO · 133-0.0523Latavius MurrayLV · 195-0.0524Danny WoodheadLAC · 19-0.0525DeAndre WashingtonLV · 87-0.0526Jeremy HillCIN · 222-0.0527Andre WilliamsLAC · 18-0.0528Benny CunninghamLA · 21-0.0529C.J. ProsiseSEA · 30-0.0630DeMarco MurrayTEN · 293-0.0631Corey GrantJAX · 32-0.0632Ameer AbdullahDET · 18-0.0633Kenjon BarnerPHI · 27-0.0634Kapri BibbsDEN · 29-0.07

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

EPA per rush leaderboard for the 2016 NFL season, shrunk by empirical Bayes with 90% credible intervals, ranked by the shrunk estimate.
#PlayerTeamPoscarrysRawShrunk90% interval
1Mike Gillislee◦ provisionalBUFRB101+0.23+0.04-0.05+0.12
2LeSean McCoyBUFRB235+0.06+0.00-0.07+0.08
3Ezekiel ElliottDALRB322+0.04-0.00-0.07+0.06
4Jay AjayiMIARB260+0.03-0.01-0.08+0.06
5Robert Turbin◦ provisionalINDRB47+0.21-0.02-0.11+0.08
6Bilal Powell◦ provisionalNYJRB131+0.06-0.02-0.10+0.06
7Le'Veon BellPITRB261+0.02-0.02-0.09+0.05
8Rex Burkhead◦ provisionalCINRB74+0.11-0.02-0.11+0.07
9Devonta FreemanATLRB227+0.02-0.02-0.09+0.05
10Kenneth Dixon◦ provisionalBALRB88+0.08-0.02-0.11+0.06
11Kerwynn Williams◦ provisionalARIRB18+0.39-0.03-0.14+0.07
12Jordan HowardCHIRB252-0.00-0.03-0.10+0.04
13Chris Thompson◦ provisionalWASRB69+0.07-0.03-0.13+0.06
14Kenyan Drake◦ provisionalMIARB33+0.16-0.04-0.14+0.06
15Tevin Coleman◦ provisionalATLRB118+0.01-0.04-0.12+0.04
16Jalen Richard◦ provisionalLVRB83+0.03-0.04-0.13+0.05
17Mark IngramNORB208-0.02-0.05-0.12+0.03
18Eddie Lacy◦ provisionalGBRB71+0.03-0.05-0.14+0.05
19John Kuhn◦ provisionalNORB18+0.24-0.05-0.15+0.06
20Dion Lewis◦ provisionalNERB64+0.03-0.05-0.14+0.05
21Derrick Henry◦ provisionalTENRB110-0.00-0.05-0.13+0.04
22Tim Hightower◦ provisionalNORB133-0.02-0.05-0.13+0.03
23Latavius MurrayLVRB195-0.03-0.05-0.12+0.03
24Danny Woodhead◦ provisionalLACRB19+0.19-0.05-0.15+0.05
25DeAndre Washington◦ provisionalLVRB87+0.00-0.05-0.14+0.04
26Jeremy HillCINRB222-0.03-0.05-0.12+0.02
27Andre Williams◦ provisionalLACRB18+0.16-0.05-0.16+0.05
28Benny Cunningham◦ provisionalLARB21+0.12-0.05-0.16+0.05
29C.J. Prosise◦ provisionalSEARB30+0.06-0.06-0.16+0.04
30DeMarco MurrayTENRB293-0.04-0.06-0.12+0.01
31Jacquizz Rodgers◦ provisionalTBRB129-0.03-0.06-0.14+0.03
32Darren Sproles◦ provisionalPHIRB94-0.03-0.06-0.15+0.03
33Rob Kelley◦ provisionalWASRB168-0.04-0.06-0.14+0.02
34Corey Grant◦ provisionalJAXRB32+0.03-0.06-0.16+0.04
35Ameer Abdullah◦ provisionalDETRB18+0.07-0.06-0.16+0.04
36Kenjon Barner◦ provisionalPHIRB27+0.02-0.06-0.16+0.04
37Ryan Mathews◦ provisionalPHIRB157-0.06-0.07-0.15+0.01
38Alfred Morris◦ provisionalDALRB69-0.05-0.07-0.16+0.03
39Kapri Bibbs◦ provisionalDENRB29-0.02-0.07-0.17+0.03
40Aaron Ripkowski◦ provisionalGBRB34-0.03-0.07-0.17+0.03
41LeGarrette BlountNERB299-0.06-0.07-0.13-0.00
42David JohnsonARIRB293-0.06-0.07-0.14-0.00
43Paul Perkins◦ provisionalNYGRB112-0.06-0.07-0.15+0.01
44Terron Ward◦ provisionalATLRB31-0.05-0.07-0.17+0.03
45Chris Johnson◦ provisionalARIRB25-0.05-0.07-0.17+0.03
46DeAngelo Williams◦ provisionalPITRB98-0.07-0.07-0.16+0.01
47Darren McFadden◦ provisionalDALRB24-0.06-0.07-0.17+0.03
48Cameron Artis-Payne◦ provisionalCARRB36-0.07-0.07-0.17+0.02
49James White◦ provisionalNERB39-0.07-0.07-0.17+0.02
50Akeem Hunt◦ provisionalHOURB20-0.07-0.07-0.18+0.03
51Orleans Darkwa◦ provisionalNYGRB30-0.07-0.07-0.17+0.03
52Christine Michael◦ provisionalGBRB148-0.08-0.07-0.16+0.01
53Jonathan Grimes◦ provisionalHOURB23-0.08-0.08-0.18+0.03
54Ka'Deem Carey◦ provisionalCHIRB32-0.08-0.08-0.18+0.02
55Matt Jones◦ provisionalWASRB99-0.08-0.08-0.16+0.01
56Jonathan StewartCARRB218-0.08-0.08-0.15-0.00
57Carlos HydeSFRB218-0.08-0.08-0.15-0.00
58Peyton Barber◦ provisionalTBRB55-0.09-0.08-0.17+0.02
59Theo Riddick◦ provisionalDETRB92-0.08-0.08-0.17+0.01
60Melvin GordonLACRB254-0.08-0.08-0.15-0.01
61Alex Collins◦ provisionalSEARB31-0.11-0.08-0.18+0.02
62Byron Marshall◦ provisionalPHIRB19-0.14-0.08-0.18+0.02
63Matt ForteNYJRB218-0.09-0.08-0.15-0.01
64Shane Vereen◦ provisionalNYGRB33-0.12-0.08-0.18+0.02
65Alfred Blue◦ provisionalHOURB100-0.10-0.08-0.17+0.00
66Jamize Olawale◦ provisionalLVRB17-0.18-0.08-0.19+0.02
67Bobby Rainey◦ provisionalNYGRB17-0.19-0.08-0.19+0.02
68Frank GoreINDRB263-0.09-0.09-0.15-0.02
69Wendell Smallwood◦ provisionalPHIRB77-0.11-0.09-0.18+0.01
70Denard Robinson◦ provisionalJAXRB41-0.14-0.09-0.18+0.01
71Giovani Bernard◦ provisionalCINRB91-0.11-0.09-0.17+0.00
72Isaiah CrowellCLERB198-0.10-0.09-0.16-0.01
73Damien Williams◦ provisionalMIARB35-0.17-0.09-0.19+0.01
74Fozzy Whittaker◦ provisionalCARRB57-0.14-0.09-0.18+0.00
75Andre Ellington◦ provisionalARIRB34-0.19-0.09-0.19+0.01
76Mike Tolbert◦ provisionalCARRB35-0.19-0.09-0.19+0.01
77C.J. Anderson◦ provisionalDENRB110-0.13-0.10-0.18-0.01
78Terrance WestBALRB193-0.12-0.10-0.17-0.02
79Duke Johnson◦ provisionalCLERB73-0.17-0.10-0.19-0.01
80Spencer WareKCRB214-0.12-0.10-0.17-0.03
81Ronnie Hillman◦ provisionalLACRB41-0.23-0.10-0.20-0.01
82Zach Zenner◦ provisionalDETRB88-0.17-0.10-0.19-0.02
83Kenneth Farrow◦ provisionalLACRB60-0.19-0.10-0.20-0.01
84Shaun Draughn◦ provisionalSFRB74-0.19-0.11-0.20-0.02
85Knile Davis◦ provisionalKCRB18-0.47-0.11-0.21-0.01
86Thomas Rawls◦ provisionalSEARB109-0.17-0.11-0.20-0.03
87Charcandrick West◦ provisionalKCRB88-0.19-0.11-0.20-0.02
88Arian Foster◦ provisionalMIARB22-0.43-0.11-0.21-0.01
89Lamar MillerHOURB268-0.14-0.11-0.18-0.05
90Devontae Booker◦ provisionalDENRB174-0.16-0.12-0.19-0.04
91Charles Sims◦ provisionalTBRB51-0.26-0.12-0.21-0.02
92Mike Davis◦ provisionalSFRB19-0.55-0.12-0.22-0.02
93T.J. Yeldon◦ provisionalJAXRB130-0.18-0.12-0.20-0.04
94Rashad Jennings◦ provisionalNYGRB180-0.18-0.12-0.20-0.05
95Malcolm Brown◦ provisionalLARB18-0.64-0.13-0.23-0.02
96Jeremy Langford◦ provisionalCHIRB62-0.29-0.13-0.22-0.04
97Jonathan Williams◦ provisionalBUFRB27-0.51-0.13-0.23-0.03
98Dwayne Washington◦ provisionalDETRB90-0.24-0.13-0.22-0.04
99Matt Asiata◦ provisionalMINRB121-0.22-0.13-0.22-0.05
100Jerick McKinnon◦ provisionalMINRB161-0.20-0.13-0.21-0.05
101DuJuan Harris◦ provisionalSFRB38-0.42-0.13-0.23-0.04
102Josh Ferguson◦ provisionalINDRB15-0.86-0.13-0.24-0.03
103Adrian Peterson◦ provisionalMINRB37-0.49-0.14-0.24-0.05
104Todd GurleyLARB278-0.19-0.15-0.21-0.08
105James Starks◦ provisionalGBRB64-0.37-0.15-0.24-0.06
106Doug Martin◦ provisionalTBRB144-0.25-0.15-0.23-0.07
107Justin Forsett◦ provisionalDENRB87-0.32-0.15-0.24-0.07
108Chris Ivory◦ provisionalJAXRB117-0.29-0.16-0.24-0.07

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