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 target · 2023

Mean EPA per target, shrunk within position.

Beats raw by
24.4%
lower out-of-sample error
RMSE raw → shrunk
0.38 → 0.29
odd vs. even weeks
Split-half reliability
0.13
how repeatable the raw stat is
Stabilizes at
127
targets to trust the number
shrunkrawthe shrink90% CI
-0.20.00.20.40.6WR avg1Brandon AiyukSF · 105+0.482CeeDee LambDAL · 182+0.433Nico CollinsHOU · 110+0.434Khalil ShakirBUF · 46+0.425Tyreek HillMIA · 172+0.406DJ MooreCHI · 138+0.357Kalif RaymondDET · 44+0.358Amon-Ra St. BrownDET · 165+0.349Adam ThielenCAR · 138+0.3410Puka NacuaLA · 160+0.3411A.J. BrownPHI · 158+0.3312A.T. PerryNO · 18+0.3313Ja'Marr ChaseCIN · 145+0.3314Jaylen WaddleMIA · 104+0.3215Keenan AllenLAC · 150+0.3216Deebo Samuel Sr.SF · 89+0.3217Brandon JohnsonDEN · 31+0.3218Justin JeffersonMIN · 100+0.3219Mike EvansTB · 137+0.3220Dontayvion WicksGB · 58+0.3121Brandin CooksDAL · 82+0.3122Trenton IrwinCIN · 32+0.3023Rashee RiceKC · 102+0.3024Lil'Jordan Humphr…DEN · 19+0.3025Amari CooperCLE · 130+0.2926Chris MooreTEN · 35+0.2927DK MetcalfSEA · 119+0.2928Tank DellHOU · 76+0.2929Nick Westbrook-Ik…TEN · 46+0.2930Chris Godwin Jr.TB · 131+0.2931KaVontae TurpinDAL · 18+0.2832Mike WilliamsLAC · 26+0.2733Olamide ZaccheausPHI · 20+0.2734Demarcus RobinsonLA · 39+0.2735Scott MillerATL · 16+0.2636Ronnie BellSF · 13+0.2637River CracraftMIA · 12+0.25

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 target · 2023 · full board

EPA per target leaderboard for the 2023 NFL season, shrunk by empirical Bayes with 90% credible intervals, ranked by the shrunk estimate.
#PlayerTeamPostargetsRawShrunk90% interval
1Brandon Aiyuk◦ provisionalSFWR105+0.78+0.48+0.30+0.66
2CeeDee LambDALWR182+0.57+0.43+0.27+0.59
3Nico Collins◦ provisionalHOUWR110+0.66+0.43+0.25+0.61
4Khalil Shakir◦ provisionalBUFWR46+0.94+0.42+0.21+0.63
5Tyreek HillMIAWR172+0.53+0.40+0.25+0.56
6DJ MooreCHIWR138+0.47+0.35+0.18+0.52
7Kalif Raymond◦ provisionalDETWR44+0.68+0.35+0.14+0.56
8Amon-Ra St. BrownDETWR165+0.43+0.34+0.18+0.50
9Adam ThielenCARWR138+0.44+0.34+0.17+0.51
10Puka NacuaLAWR160+0.42+0.34+0.18+0.50
11A.J. BrownPHIWR158+0.42+0.33+0.17+0.50
12A.T. Perry◦ provisionalNOWR18+1.06+0.33+0.10+0.56
13Ja'Marr ChaseCINWR145+0.42+0.33+0.16+0.50
14Jaylen Waddle◦ provisionalMIAWR104+0.44+0.32+0.14+0.51
15Keenan AllenLACWR150+0.41+0.32+0.16+0.49
16Deebo Samuel Sr.◦ provisionalSFWR89+0.46+0.32+0.14+0.51
17Brandon Johnson◦ provisionalDENWR31+0.69+0.32+0.10+0.54
18Justin Jefferson◦ provisionalMINWR100+0.43+0.32+0.13+0.50
19Mike EvansTBWR137+0.39+0.32+0.15+0.48
20Dontayvion Wicks◦ provisionalGBWR58+0.50+0.31+0.11+0.52
21Brandin Cooks◦ provisionalDALWR82+0.44+0.31+0.12+0.50
22Trenton Irwin◦ provisionalCINWR32+0.61+0.30+0.09+0.52
23Rashee Rice◦ provisionalKCWR102+0.39+0.30+0.12+0.48
24Lil'Jordan Humphrey◦ provisionalDENWR19+0.75+0.30+0.07+0.52
25Amari CooperCLEWR130+0.35+0.29+0.12+0.46
26Chris Moore◦ provisionalTENWR35+0.52+0.29+0.08+0.51
27DK Metcalf◦ provisionalSEAWR119+0.36+0.29+0.12+0.47
28Tank Dell◦ provisionalHOUWR76+0.40+0.29+0.10+0.48
29Nick Westbrook-Ikhine◦ provisionalTENWR46+0.45+0.29+0.08+0.50
30Chris Godwin Jr.TBWR131+0.34+0.29+0.12+0.46
31Jayden Reed◦ provisionalGBWR95+0.36+0.29+0.10+0.47
32KaVontae Turpin◦ provisionalDALWR18+0.68+0.28+0.06+0.51
33Darius Slayton◦ provisionalNYGWR79+0.37+0.28+0.09+0.47
34Tyler Lockett◦ provisionalSEAWR124+0.33+0.28+0.11+0.45
35Mike Williams◦ provisionalLACWR26+0.49+0.27+0.05+0.50
36Tee Higgins◦ provisionalCINWR76+0.35+0.27+0.08+0.47
37Olamide Zaccheaus◦ provisionalPHIWR20+0.55+0.27+0.05+0.50
38Demarcus Robinson◦ provisionalLAWR39+0.42+0.27+0.06+0.49
39Nelson Agholor◦ provisionalBALWR45+0.40+0.27+0.06+0.48
40Noah Brown◦ provisionalHOUWR56+0.37+0.27+0.07+0.48
41Chris OlaveNOWR139+0.31+0.27+0.10+0.44
42Odell Beckham Jr.◦ provisionalBALWR64+0.34+0.27+0.07+0.46
43Scott Miller◦ provisionalATLWR16+0.54+0.26+0.03+0.49
44DeVonta Smith◦ provisionalPHIWR113+0.30+0.26+0.09+0.44
45Michael Wilson◦ provisionalARIWR59+0.32+0.26+0.06+0.46
46Diontae Johnson◦ provisionalPITWR87+0.30+0.26+0.07+0.44
47Ronnie Bell◦ provisionalSFWR13+0.52+0.26+0.02+0.49
48Gabe Davis◦ provisionalBUFWR82+0.29+0.25+0.07+0.44
49David Bell◦ provisionalCLEWR23+0.39+0.25+0.03+0.48
50Jameson Williams◦ provisionalDETWR42+0.32+0.25+0.04+0.46
51River Cracraft◦ provisionalMIAWR12+0.50+0.25+0.02+0.48
52Dyami Brown◦ provisionalWASWR23+0.37+0.25+0.03+0.47
53Braxton Berrios◦ provisionalMIAWR33+0.33+0.25+0.03+0.47
54Wan'Dale Robinson◦ provisionalNYGWR78+0.28+0.25+0.06+0.44
55George Pickens◦ provisionalPITWR106+0.27+0.25+0.07+0.43
56Christian Kirk◦ provisionalJAXWR85+0.28+0.25+0.06+0.44
57Mack Hollins◦ provisionalATLWR30+0.32+0.25+0.03+0.47
58Josh Downs◦ provisionalINDWR98+0.27+0.25+0.06+0.43
59Zay Flowers◦ provisionalBALWR109+0.27+0.25+0.07+0.42
60Jake Bobo◦ provisionalSEAWR25+0.32+0.24+0.02+0.47
61Romeo Doubs◦ provisionalGBWR96+0.26+0.24+0.06+0.43
62Alec Pierce◦ provisionalINDWR65+0.26+0.24+0.04+0.44
63Kyle Philips◦ provisionalTENWR22+0.30+0.24+0.01+0.46
64Deonte Harty◦ provisionalBUFWR21+0.29+0.24+0.01+0.46
65Marvin Mims Jr.◦ provisionalDENWR33+0.27+0.24+0.02+0.46
66Stefon DiggsBUFWR161+0.24+0.24+0.08+0.40
67Richie James◦ provisionalKCWR14+0.30+0.24+0.01+0.47
68Jordan Addison◦ provisionalMINWR108+0.24+0.23+0.06+0.41
69Courtland Sutton◦ provisionalDENWR91+0.24+0.23+0.05+0.42
70Jamison Crowder◦ provisionalWASWR20+0.27+0.23+0.01+0.46
71Calvin RidleyJAXWR137+0.24+0.23+0.06+0.40
72Jauan Jennings◦ provisionalSFWR33+0.24+0.23+0.01+0.45
73DJ Chark◦ provisionalCARWR66+0.23+0.23+0.03+0.43
74Josh Reynolds◦ provisionalDETWR64+0.23+0.23+0.03+0.43
75KhaDarel Hodge◦ provisionalATLWR23+0.23+0.23+0.00+0.45
76Andrei Iosivas◦ provisionalCINWR25+0.21+0.23+0.00+0.45
77Malik Heath◦ provisionalGBWR24+0.20+0.22+0.00+0.45
78Isaiah McKenzie◦ provisionalINDWR14+0.16+0.22-0.01+0.45
79Ray-Ray McCloud◦ provisionalSFWR15+0.16+0.22-0.01+0.45
80Alex Erickson◦ provisionalLACWR29+0.19+0.22+0.00+0.44
81Ben Skowronek◦ provisionalLAWR12+0.12+0.22-0.01+0.45
82Tre Tucker◦ provisionalLVWR34+0.18+0.22+0.00+0.44
83Michael Thomas◦ provisionalNOWR64+0.20+0.22+0.02+0.42
84Jerry Jeudy◦ provisionalDENWR87+0.19+0.22+0.03+0.40
85Julio Jones◦ provisionalPHIWR19+0.12+0.21-0.01+0.44
86Jamal Agnew◦ provisionalJAXWR21+0.12+0.21-0.01+0.44
87Isaiah Hodgins◦ provisionalNYGWR33+0.12+0.21-0.01+0.42
88Jakobi Meyers◦ provisionalLVWR106+0.17+0.20+0.02+0.38
89Rashid Shaheed◦ provisionalNOWR75+0.16+0.20+0.01+0.40
90Byron Pringle◦ provisionalWASWR22+0.05+0.20-0.02+0.43
91Greg Dortch◦ provisionalARIWR41+0.12+0.20-0.01+0.41
92Michael PittmanINDWR158+0.18+0.20+0.04+0.36
93Josh Palmer◦ provisionalLACWR61+0.14+0.20-0.00+0.40
94Jalen Tolbert◦ provisionalDALWR36+0.09+0.20-0.02+0.41
95Mecole Hardman◦ provisionalKCWR24+0.03+0.20-0.03+0.42
96Tutu Atwell◦ provisionalLAWR68+0.14+0.20+0.00+0.39
97Jalin Hyatt◦ provisionalNYGWR40+0.08+0.19-0.02+0.40
98Tim Jones◦ provisionalJAXWR19-0.05+0.19-0.04+0.42
99Michael Gallup◦ provisionalDALWR57+0.10+0.19-0.01+0.39
100Lynn Bowden◦ provisionalNOWR16-0.14+0.19-0.04+0.42
101Jaxon Smith-Njigba◦ provisionalSEAWR93+0.13+0.19+0.00+0.37
102Quentin Johnston◦ provisionalLACWR67+0.11+0.19-0.01+0.38
103Parker Washington◦ provisionalJAXWR21-0.07+0.19-0.04+0.41
104Keelan Doss◦ provisionalLACWR13-0.23+0.19-0.05+0.42
105Justin Watson◦ provisionalKCWR53+0.08+0.19-0.02+0.39
106DeAndre HopkinsTENWR137+0.14+0.18+0.01+0.35
107Samori Toure◦ provisionalGBWR19-0.13+0.18-0.05+0.41
108Jalen Guyton◦ provisionalLACWR21-0.11+0.18-0.05+0.41
109Treylon Burks◦ provisionalTENWR30-0.03+0.18-0.04+0.40
110Trent Sherfield◦ provisionalBUFWR22-0.10+0.18-0.04+0.40
111Cedrick Wilson Jr.◦ provisionalMIAWR38+0.01+0.18-0.03+0.39
112Rashod Bateman◦ provisionalBALWR56+0.06+0.18-0.02+0.38
113Marquez Valdes-Scantling◦ provisionalKCWR42+0.02+0.18-0.04+0.39
114Hunter Renfrow◦ provisionalLVWR37-0.01+0.18-0.04+0.39
115K.J. Osborn◦ provisionalMINWR75+0.08+0.18-0.02+0.37
116Quez Watkins◦ provisionalPHIWR21-0.16+0.17-0.05+0.40
117Cooper Kupp◦ provisionalLAWR97+0.10+0.17-0.01+0.36
118Xavier Gipson◦ provisionalNYJWR38-0.02+0.17-0.04+0.39
119Christian Watson◦ provisionalGBWR53+0.04+0.17-0.03+0.38
120Drake London◦ provisionalATLWR112+0.11+0.17-0.01+0.35
121Allen Lazard◦ provisionalNYJWR49+0.01+0.17-0.04+0.37
122DeVante Parker◦ provisionalNEWR55+0.02+0.17-0.04+0.37
123Donovan Peoples-Jones◦ provisionalDETWR25-0.16+0.17-0.06+0.39
124Calvin Austin III◦ provisionalPITWR30-0.11+0.16-0.05+0.38
125Brandon Powell◦ provisionalMINWR44-0.03+0.16-0.05+0.37
126Curtis Samuel◦ provisionalWASWR91+0.07+0.16-0.02+0.35
127Derius Davis◦ provisionalLACWR17-0.35+0.16-0.07+0.39
128Tyler Boyd◦ provisionalCINWR98+0.06+0.15-0.03+0.34
129Robert Woods◦ provisionalHOUWR75+0.03+0.15-0.04+0.35
130Xavier Hutchinson◦ provisionalHOUWR19-0.35+0.15-0.07+0.38
131Marquise Goodwin◦ provisionalCLEWR13-0.64+0.15-0.08+0.38
132Terry McLaurinWASWR132+0.07+0.15-0.02+0.32
133Ty Montgomery◦ provisionalNEWR12-0.71+0.15-0.08+0.38
134John Metchie III◦ provisionalHOUWR30-0.20+0.15-0.07+0.37
135Davante AdamsLVWR175+0.08+0.14-0.02+0.30
136Allen Robinson◦ provisionalPITWR49-0.09+0.14-0.07+0.35
137Terrace Marshall Jr.◦ provisionalCARWR33-0.22+0.14-0.08+0.35
138Deven Thompkins◦ provisionalTBWR25-0.35+0.13-0.09+0.36
139Rondale Moore◦ provisionalARIWR63-0.07+0.13-0.07+0.33
140Zay Jones◦ provisionalJAXWR64-0.07+0.13-0.07+0.33
141Darnell Mooney◦ provisionalCHIWR61-0.08+0.13-0.07+0.33
142Kadarius Toney◦ provisionalKCWR38-0.22+0.13-0.09+0.34
143Sterling Shepard◦ provisionalNYGWR22-0.51+0.12-0.10+0.34
144Elijah Moore◦ provisionalCLEWR104-0.02+0.12-0.06+0.30
145Jalen Reagor◦ provisionalNEWR23-0.49+0.12-0.11+0.34
146Skyy Moore◦ provisionalKCWR38-0.25+0.12-0.10+0.33
147DeMario Douglas◦ provisionalNEWR79-0.07+0.11-0.08+0.30
148Tyler Scott◦ provisionalCHIWR32-0.35+0.11-0.10+0.33
149JuJu Smith-Schuster◦ provisionalNEWR47-0.22+0.11-0.10+0.32
150Kendrick Bourne◦ provisionalNEWR55-0.17+0.11-0.10+0.31
151Chase Claypool◦ provisionalMIAWR21-0.63+0.11-0.12+0.33
152Tyquan Thornton◦ provisionalNEWR23-0.58+0.11-0.12+0.33
153Randall Cobb◦ provisionalNYJWR18-0.80+0.10-0.13+0.33
154Trey Palmer◦ provisionalTBWR69-0.13+0.10-0.09+0.30
155Marquise Brown◦ provisionalARIWR104-0.07+0.09-0.09+0.27
156Zach Pascal◦ provisionalARIWR15-1.16+0.08-0.15+0.31
157Van Jefferson◦ provisionalATLWR43-0.41+0.07-0.14+0.28
158Garrett WilsonNYJWR168-0.06+0.06-0.10+0.22
159Jahan Dotson◦ provisionalWASWR83-0.19+0.06-0.13+0.25
160Parris Campbell◦ provisionalNYGWR27-0.83+0.04-0.18+0.26
161Jonathan Mingo◦ provisionalCARWR85-0.29+0.02-0.17+0.21
162Cedric Tillman◦ provisionalCLEWR44-0.60+0.01-0.20+0.22

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