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 dropback · 2020

Mean QB EPA per dropback.

Beats raw by
14.9%
lower out-of-sample error
RMSE raw → shrunk
0.17 → 0.14
odd vs. even weeks
Split-half reliability
0.47
how repeatable the raw stat is
Stabilizes at
190
dropbacks to trust the number
shrunkrawthe shrink90% CI
-0.20.00.2avg1Aaron RodgersGB · 543+0.282Patrick MahomesKC · 612+0.253Josh AllenBUF · 599+0.244Ryan TannehillTEN · 507+0.215Deshaun WatsonHOU · 595+0.196Tom BradyTB · 629+0.187Philip RiversIND · 561+0.168Baker MayfieldCLE · 508+0.159Kirk CousinsMIN · 559+0.1510Drew BreesNO · 402+0.1511Ryan FitzpatrickMIA · 282+0.1412Chad HenneKC · 40+0.1413Justin HerbertLAC · 626+0.1314Lamar JacksonBAL · 403+0.1315Jimmy GaroppoloSF · 151+0.1216Russell WilsonSEA · 606+0.1217Marcus MariotaLV · 27+0.1218Dak PrescottDAL · 233+0.1219Mason RudolphPIT · 45+0.1120Derek CarrLV · 540+0.1121Joe BurrowCIN · 433+0.1122Matt RyanATL · 669+0.1023Matthew StaffordDET · 563+0.1024Mitchell TrubiskyCHI · 316+0.0925Ben RoethlisbergerPIT · 625+0.0926C.J. BeathardSF · 113+0.0927Kyle AllenWAS · 96+0.0828Tyrod TaylorLAC · 32+0.0829Teddy BridgewaterCAR · 523+0.0730Brett RypienDEN · 41+0.0731Gardner MinshewJAX · 357+0.0632Kyler MurrayARI · 579+0.06

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 dropback · 2020 · full board

EPA per dropback leaderboard for the 2020 NFL season, shrunk by empirical Bayes with 90% credible intervals, ranked by the shrunk estimate.
#PlayerTeamPosdropbacksRawShrunk90% interval
1Aaron RodgersGBQB543+0.34+0.28+0.18+0.37
2Patrick MahomesKCQB612+0.30+0.25+0.16+0.34
3Josh AllenBUFQB599+0.28+0.24+0.14+0.33
4Ryan TannehillTENQB507+0.25+0.21+0.11+0.30
5Deshaun WatsonHOUQB595+0.22+0.19+0.10+0.28
6Tom BradyTBQB629+0.21+0.18+0.09+0.27
7Philip RiversINDQB561+0.19+0.16+0.07+0.26
8Baker MayfieldCLEQB508+0.18+0.15+0.06+0.25
9Kirk CousinsMINQB559+0.17+0.15+0.06+0.24
10Drew BreesNOQB402+0.17+0.15+0.04+0.25
11Ryan FitzpatrickMIAQB282+0.17+0.14+0.02+0.26
12Chad Henne◦ provisionalKCQB40+0.35+0.14-0.03+0.30
13Justin HerbertLACQB626+0.14+0.13+0.04+0.22
14Lamar JacksonBALQB403+0.14+0.13+0.02+0.23
15Jimmy Garoppolo◦ provisionalSFQB151+0.16+0.12-0.02+0.26
16Russell WilsonSEAQB606+0.13+0.12+0.03+0.21
17Marcus Mariota◦ provisionalLVQB27+0.31+0.12-0.06+0.29
18Dak PrescottDALQB233+0.14+0.12-0.01+0.24
19Mason Rudolph◦ provisionalPITQB45+0.21+0.11-0.05+0.28
20Derek CarrLVQB540+0.11+0.11+0.01+0.20
21Joe BurrowCINQB433+0.11+0.11+0.00+0.21
22Matt RyanATLQB669+0.10+0.10+0.01+0.19
23Matthew StaffordDETQB563+0.10+0.10+0.00+0.19
24Mitchell TrubiskyCHIQB316+0.09+0.09-0.02+0.20
25Ben RoethlisbergerPITQB625+0.09+0.09-0.00+0.18
26C.J. Beathard◦ provisionalSFQB113+0.08+0.09-0.06+0.23
27Kyle Allen◦ provisionalWASQB96+0.06+0.08-0.07+0.23
28Tyrod Taylor◦ provisionalLACQB32-0.01+0.08-0.10+0.25
29Teddy BridgewaterCARQB523+0.06+0.07-0.03+0.17
30Brett Rypien◦ provisionalDENQB41-0.04+0.07-0.10+0.23
31Gardner MinshewJAXQB357+0.05+0.06-0.04+0.17
32Kyler MurrayARIQB579+0.05+0.06-0.03+0.16
33John Wolford◦ provisionalLAQB40-0.08+0.06-0.11+0.23
34Jared GoffLAQB574+0.04+0.06-0.04+0.15
35Garrett Gilbert◦ provisionalDALQB39-0.13+0.05-0.12+0.22
36Nick MullensSFQB347+0.01+0.04-0.07+0.15
37Brian Hoyer◦ provisionalNEQB26-0.36+0.04-0.14+0.21
38Jalen Hurts◦ provisionalPHIQB161-0.03+0.03-0.10+0.17
39Colt McCoy◦ provisionalNYGQB72-0.12+0.03-0.13+0.19
40Joe Flacco◦ provisionalNYJQB141-0.07+0.02-0.12+0.16
41Cam NewtonNEQB398-0.01+0.02-0.08+0.13
42Brandon Allen◦ provisionalCINQB149-0.06+0.02-0.12+0.16
43Jeff Driskel◦ provisionalDENQB76-0.18+0.01-0.14+0.17
44Andy DaltonDALQB357-0.03+0.01-0.10+0.12
45Chase Daniel◦ provisionalDETQB45-0.33+0.01-0.16+0.18
46Tua TagovailoaMIAQB310-0.05+0.00-0.11+0.12
47Mike Glennon◦ provisionalJAXQB189-0.10-0.01-0.14+0.13
48Jarrett Stidham◦ provisionalNEQB48-0.40-0.01-0.17+0.16
49Daniel JonesNYGQB494-0.05-0.01-0.11+0.09
50PJ Walker◦ provisionalCARQB60-0.37-0.02-0.18+0.14
51Drew LockDENQB464-0.08-0.03-0.13+0.07
52Ryan Finley◦ provisionalCINQB41-0.59-0.03-0.20+0.14
53Nick FolesCHIQB330-0.10-0.03-0.15+0.08
54Alex SmithWASQB274-0.12-0.03-0.15+0.09
55Ben DiNucci◦ provisionalDALQB49-0.56-0.04-0.21+0.12
56Dwayne HaskinsWASQB262-0.15-0.05-0.17+0.07
57Jake Luton◦ provisionalJAXQB118-0.31-0.06-0.21+0.08
58Carson WentzPHIQB492-0.17-0.10-0.19+0.00
59Sam DarnoldNYJQB398-0.20-0.10-0.21+0.00

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