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.

CPOE · 2024

Completion % over expected (accounts for depth & situation).

Beats raw by
17.9%
lower out-of-sample error
RMSE raw → shrunk
4.9 → 4.0
odd vs. even weeks
Split-half reliability
0.35
how repeatable the raw stat is
Stabilizes at
202
attempts to trust the number
shrunkrawthe shrink90% CI
-5+0+5avg1Joe BurrowCIN · 628+5.42Jalen HurtsPHI · 334+5.13Geno SmithSEA · 554+4.44Jared GoffDET · 510+4.45Marcus MariotaWAS · 42+3.76Lamar JacksonBAL · 454+3.57Russell WilsonPIT · 306+3.18Sam DarnoldMIN · 514+3.19Joe Milton IIINE · 27+2.910Baker MayfieldTB · 562+2.911Tua TagovailoaMIA · 388+2.812Jayden DanielsWAS · 461+2.813Derek CarrNO · 262+2.314Malik WillisGB · 53+2.315Patrick MahomesKC · 553+2.216Drake MayeNE · 322+2.117Tyler HuntleyMIA · 124+1.818Kyler MurrayARI · 521+1.819Brock PurdySF · 440+1.720Justin HerbertLAC · 485+1.721Tommy DeVitoNYG · 41+1.722Justin FieldsPIT · 152+1.623Mitchell TrubiskyBUF · 25+1.624Daniel JonesNYG · 317+1.325Skylar ThompsonMIA · 32+1.226Joshua DobbsSF · 46+1.227Joe FlaccoIND · 242+1.128Kirk CousinsATL · 437+1.029Kenny PickettPHI · 39+1.030Josh AllenBUF · 459+0.931Bryce YoungCAR · 359+0.8

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.

CPOE · 2024 · full board

CPOE leaderboard for the 2024 NFL season, shrunk by empirical Bayes with 90% credible intervals, ranked by the shrunk estimate.
#PlayerTeamPosattemptsRawShrunk90% interval
1Joe BurrowCINQB628+6.8+5.4+2.9+7.8
2Jalen HurtsPHIQB334+7.5+5.1+2.0+8.1
3Geno SmithSEAQB554+5.6+4.4+1.8+7.0
4Jared GoffDETQB510+5.7+4.4+1.7+7.0
5Marcus Mariota◦ provisionalWASQB42+16.6+3.7-0.8+8.2
6Lamar JacksonBALQB454+4.6+3.5+0.7+6.2
7Russell WilsonPITQB306+4.5+3.1-0.0+6.2
8Sam DarnoldMINQB514+3.9+3.1+0.4+5.7
9Joe Milton III◦ provisionalNEQB27+17.1+2.9-1.7+7.6
10Baker MayfieldTBQB562+3.6+2.9+0.4+5.5
11Tua TagovailoaMIAQB388+3.8+2.8-0.1+5.8
12Jayden DanielsWASQB461+3.5+2.8+0.0+5.5
13Derek CarrNOQB262+3.3+2.3-1.0+5.6
14Malik Willis◦ provisionalGBQB53+6.9+2.3-2.2+6.7
15Patrick MahomesKCQB553+2.6+2.2-0.4+4.7
16Drake MayeNEQB322+2.8+2.1-0.9+5.2
17Tyler Huntley◦ provisionalMIAQB124+3.1+1.8-2.1+5.7
18Kyler MurrayARIQB521+2.1+1.8-0.8+4.4
19Brock PurdySFQB440+2.1+1.7-1.0+4.5
20Justin HerbertLACQB485+1.9+1.7-1.0+4.4
21Tommy DeVito◦ provisionalNYGQB41+4.7+1.7-2.9+6.2
22Justin Fields◦ provisionalPITQB152+2.4+1.6-2.1+5.4
23Mitchell Trubisky◦ provisionalBUFQB25+5.8+1.6-3.1+6.3
24Daniel JonesNYGQB317+1.5+1.3-1.8+4.4
25Skylar Thompson◦ provisionalMIAQB32+2.2+1.2-3.4+5.8
26Joshua Dobbs◦ provisionalSFQB46+1.6+1.2-3.3+5.6
27Joe FlaccoINDQB242+1.1+1.1-2.3+4.4
28Kirk CousinsATLQB437+1.0+1.0-1.8+3.8
29Kenny Pickett◦ provisionalPHIQB39+0.5+1.0-3.6+5.5
30Josh AllenBUFQB459+0.8+0.9-1.8+3.7
31Tanner McKee◦ provisionalPHIQB45-0.0+0.9-3.6+5.3
32Bryce YoungCARQB359+0.7+0.8-2.2+3.8
33Jordan LoveGBQB411+0.6+0.8-2.1+3.6
34Gardner MinshewLVQB281+0.5+0.7-2.5+4.0
35Bo NixDENQB546+0.6+0.7-1.9+3.3
36Mason RudolphTENQB214+0.2+0.6-2.8+4.1
37Jimmy Garoppolo◦ provisionalLAQB40-3.1+0.4-4.2+4.9
38Brandon Allen◦ provisionalSFQB27-5.0+0.3-4.3+5.0
39Caleb WilliamsCHIQB522-0.1+0.2-2.4+2.8
40Mac JonesJAXQB250-0.5+0.2-3.1+3.5
41Will LevisTENQB292-0.4+0.2-3.0+3.4
42Andy Dalton◦ provisionalCARQB156-1.1+0.1-3.6+3.8
43Dak PrescottDALQB277-0.9-0.0-3.3+3.2
44Trevor LawrenceJAXQB272-1.0-0.1-3.4+3.1
45Desmond Ridder◦ provisionalLVQB78-3.2-0.1-4.3+4.1
46Matthew StaffordLAQB500-0.7-0.2-2.8+2.5
47Trey Lance◦ provisionalDALQB40-6.9-0.3-4.8+4.3
48Jameis WinstonCLEQB288-1.8-0.6-3.8+2.6
49Deshaun WatsonCLEQB210-2.2-0.6-4.1+2.9
50Jacoby Brissett◦ provisionalNEQB150-2.9-0.6-4.4+3.1
51Tim Boyle◦ provisionalNYGQB46-8.5-0.7-5.2+3.8
52Michael Penix Jr.◦ provisionalATLQB102-4.4-0.8-4.8+3.3
53Bailey Zappe◦ provisionalCLEQB30-13.6-0.8-5.5+3.8
54Davis Mills◦ provisionalHOUQB36-11.7-0.9-5.5+3.7
55C.J. StroudHOUQB509-1.7-0.9-3.6+1.7
56Aidan O'ConnellLVQB232-3.6-1.4-4.8+2.0
57Aaron RodgersNYJQB568-2.6-1.6-4.2+0.9
58Jake Haener◦ provisionalNOQB37-17.3-1.8-6.4+2.8
59Drew Lock◦ provisionalNYGQB173-6.1-2.2-5.9+1.4
60Dorian Thompson-Robinson◦ provisionalCLEQB106-11.7-3.3-7.4+0.7
61Spencer RattlerNOQB213-9.1-4.1-7.6-0.7
62Cooper RushDALQB303-8.1-4.4-7.6-1.3
63Anthony RichardsonINDQB249-10.9-5.5-8.9-2.2

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