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.

Target success rate · 2019

Share of targets with positive EPA, shrunk within position.

Beats raw by
21.9%
lower out-of-sample error
RMSE raw → shrunk
11.7% → 9.1%
odd vs. even weeks
Split-half reliability
0.19
how repeatable the raw stat is
Stabilizes at
128
targets to trust the number
shrunkrawthe shrink90% CI
45%50%55%60%TE avg1Darren WallerLV · 11757.7%2Travis KelceKC · 13657.0%3Hunter HenryLAC · 7756.8%4George KittleSF · 10756.4%5Jared CookNO · 6555.7%6Kyle RudolphMIN · 4955.6%7Jason WittenDAL · 8555.6%8Tyler HigbeeLA · 8955.5%9Foster MoreauLV · 2555.2%10Austin HooperATL · 9954.8%11Will DisslySEA · 2754.5%12O.J. HowardTB · 5354.4%13James O'Shaughnes…JAX · 2054.4%14Nick BoyleBAL · 4454.4%15Jonnu SmithTEN · 4454.4%16Nick VannettPIT · 2254.3%17Taysom HillNO · 2254.3%18Darren FellsHOU · 4854.3%19Dallas GoedertPHI · 8754.2%20Hayden HurstBAL · 3954.2%21Blake JarwinDAL · 4154.1%22Adam ShaheenCHI · 1453.9%23Jeff HeuermanDEN · 2053.7%24Benjamin WatsonNE · 2453.6%25Virgil GreenLAC · 1353.5%26Jeremy SprinkleWAS · 4153.5%27Marcedes LewisGB · 1953.4%28Maxx WilliamsARI · 1953.4%29Zach ErtzPHI · 13653.2%30Ross DwelleySF · 2253.0%

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.

Target success rate · 2019 · full board

Target success rate leaderboard for the 2019 NFL season, shrunk by empirical Bayes with 90% credible intervals, ranked by the shrunk estimate.
#PlayerTeamPostargetsRawShrunk90% interval
1Darren Waller◦ provisionalLVTE11763.2%57.7%52.5%62.9%
2Travis KelceKCTE13661.0%57.0%52.0%62.0%
3Hunter Henry◦ provisionalLACTE7763.6%56.8%51.1%62.5%
4George Kittle◦ provisionalSFTE10760.8%56.4%51.0%61.7%
5Jared Cook◦ provisionalNOTE6561.5%55.7%49.8%61.5%
6Kyle Rudolph◦ provisionalMINTE4963.3%55.6%49.5%61.7%
7Jason Witten◦ provisionalDALTE8560.0%55.6%50.0%61.2%
8Tyler Higbee◦ provisionalLATE8959.6%55.5%50.0%61.0%
9Foster Moreau◦ provisionalLVTE2568.0%55.2%48.6%61.8%
10Austin Hooper◦ provisionalATLTE9957.6%54.8%49.4%60.2%
11Will Dissly◦ provisionalSEATE2763.0%54.5%47.9%61.0%
12O.J. Howard◦ provisionalTBTE5358.5%54.4%48.3%60.5%
13James O'Shaughnessy◦ provisionalJAXTE2065.0%54.4%47.6%61.1%
14Nick Boyle◦ provisionalBALTE4459.1%54.4%48.1%60.6%
15Jonnu Smith◦ provisionalTENTE4459.1%54.4%48.1%60.6%
16Nick Vannett◦ provisionalPITTE2263.6%54.3%47.6%61.0%
17Taysom Hill◦ provisionalNOTE2263.6%54.3%47.6%61.0%
18Darren Fells◦ provisionalHOUTE4858.3%54.3%48.1%60.4%
19Dallas Goedert◦ provisionalPHITE8756.3%54.2%48.6%59.7%
20Hayden Hurst◦ provisionalBALTE3959.0%54.2%47.8%60.5%
21Blake Jarwin◦ provisionalDALTE4158.5%54.1%47.8%60.4%
22Adam Shaheen◦ provisionalCHITE1464.3%53.9%47.0%60.7%
23Jeff Heuerman◦ provisionalDENTE2060.0%53.7%47.0%60.4%
24Benjamin Watson◦ provisionalNETE2458.3%53.6%46.9%60.2%
25Virgil Green◦ provisionalLACTE1361.5%53.5%46.6%60.4%
26Jeremy Sprinkle◦ provisionalWASTE4156.1%53.5%47.2%59.8%
27Marcedes Lewis◦ provisionalGBTE1957.9%53.4%46.6%60.1%
28Maxx Williams◦ provisionalARITE1957.9%53.4%46.6%60.1%
29Zach ErtzPHITE13653.7%53.2%48.2%58.2%
30Ross Dwelley◦ provisionalSFTE2254.5%53.0%46.3%59.7%
31C.J. Uzomah◦ provisionalCINTE4153.7%52.9%46.6%59.2%
32Ryan Griffin◦ provisionalNYJTE4353.5%52.9%46.6%59.2%
33Cameron Brate◦ provisionalTBTE5552.7%52.7%46.7%58.8%
34Matt LaCosse◦ provisionalNETE1952.6%52.7%45.9%59.4%
35Jacob Hollister◦ provisionalSEATE5952.5%52.7%46.7%58.6%
36Delanie Walker◦ provisionalTENTE3151.6%52.5%46.0%59.0%
37Nick O'Leary◦ provisionalJAXTE1850.0%52.4%45.6%59.1%
38Seth DeValve◦ provisionalJAXTE1850.0%52.4%45.6%59.1%
39Greg Olsen◦ provisionalCARTE8351.8%52.4%46.7%58.0%
40Tyler Eifert◦ provisionalCINTE6451.6%52.3%46.4%58.2%
41Charles Clay◦ provisionalARITE2450.0%52.3%45.6%58.9%
42Anthony Firkser◦ provisionalTENTE2450.0%52.3%45.6%58.9%
43Josh Perkins◦ provisionalPHITE1346.2%52.1%45.2%59.0%
44Tommy Sweeney◦ provisionalBUFTE1346.2%52.1%45.2%59.0%
45Robert Tonyan◦ provisionalGBTE1546.7%52.1%45.2%58.9%
46Derek Carrier◦ provisionalLVTE1947.4%52.0%45.3%58.8%
47Jack Doyle◦ provisionalINDTE7350.7%52.0%46.2%57.8%
48Ricky Seals-Jones◦ provisionalCLETE2347.8%52.0%45.3%58.6%
49Eric Ebron◦ provisionalINDTE5250.0%51.9%45.8%58.0%
50Josh Hill◦ provisionalNOTE3548.6%51.8%45.4%58.2%
51Dan Arnold◦ provisionalARITE1442.9%51.7%44.9%58.6%
52Durham Smythe◦ provisionalMIATE1442.9%51.7%44.9%58.6%
53Demetrius Harris◦ provisionalCLETE2846.4%51.6%45.0%58.1%
54Logan Thomas◦ provisionalDETTE2846.4%51.6%45.0%58.1%
55Ian Thomas◦ provisionalCARTE3046.7%51.6%45.1%58.1%
56Hale Hentges◦ provisionalWASTE1540.0%51.4%44.5%58.2%
57Jesse James◦ provisionalDETTE2744.4%51.3%44.7%57.9%
58Mark Andrews◦ provisionalBALTE9849.0%51.1%45.6%56.5%
59Luke Stocker◦ provisionalATLTE1435.7%51.0%44.2%57.9%
60Tyler Kroft◦ provisionalBUFTE1435.7%51.0%44.2%57.9%
61Dawson Knox◦ provisionalBUFTE5046.0%50.8%44.7%57.0%
62Kaden Smith◦ provisionalNYGTE4344.2%50.6%44.3%56.9%
63Irv Smith◦ provisionalMINTE4744.7%50.6%44.4%56.8%
64T.J. Hockenson◦ provisionalDETTE5945.8%50.5%44.5%56.5%
65Jordan Matthews◦ provisionalPHITE1225.0%50.3%43.4%57.3%
66N'Keal Harry◦ provisionalNETE2437.5%50.3%43.7%57.0%
67Jimmy Graham◦ provisionalGBTE6045.0%50.3%44.3%56.2%
68Vernon Davis◦ provisionalWASTE1931.6%50.0%43.2%56.8%
69Blake Bell◦ provisionalKCTE1526.7%50.0%43.1%56.9%
70Geoff Swaim◦ provisionalJAXTE1729.4%50.0%43.2%56.8%
71Jordan Akins◦ provisionalHOUTE5543.6%50.0%43.9%56.1%
72Noah Fant◦ provisionalDENTE6642.4%49.2%43.3%55.1%
73Gerald Everett◦ provisionalLATE6041.7%49.2%43.2%55.2%
74Mike Gesicki◦ provisionalMIATE8943.8%49.1%43.5%54.6%
75Trey Burton◦ provisionalCHITE2429.2%49.0%42.4%55.7%
76Evan Engram◦ provisionalNYGTE6841.2%48.7%42.9%54.6%
77Vance McDonald◦ provisionalPITTE5538.2%48.4%42.3%54.4%
78Rhett Ellison◦ provisionalNYGTE2825.0%47.8%41.2%54.3%

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