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

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
304
attempts to trust the number
shrunkrawthe shrink90% CI
-5+0+5avg1Josh AllenBUF · 545+3.42Brock PurdySF · 427+3.33Tua TagovailoaMIA · 543+3.14Russell WilsonDEN · 415+3.05Dak PrescottDAL · 581+2.76Mason RudolphPIT · 69+2.77Jalen HurtsPHI · 500+2.58Kirk CousinsMIN · 302+2.49Lamar JacksonBAL · 441+2.310Nick MullensMIN · 143+2.111Derek CarrNO · 523+2.112Jake BrowningCIN · 234+2.013Patrick MahomesKC · 562+1.914Tyrod TaylorNYG · 164+1.815C.J. BeathardJAX · 52+1.816Geno SmithSEA · 472+1.717Jared GoffDET · 573+1.018Jordan LoveGB · 559+0.919Joe BurrowCIN · 351+0.920Trevor LawrenceJAX · 552+0.821Ryan TannehillTEN · 222+0.722Justin FieldsCHI · 339+0.623Daniel JonesNYG · 153+0.424Baker MayfieldTB · 548+0.325C.J. StroudHOU · 476+0.326Sam DarnoldSF · 44+0.227Deshaun WatsonCLE · 165+0.228Will LevisTEN · 247+0.129Justin HerbertLAC · 443+0.030Case KeenumHOU · 51-0.031Sam HowellWAS · 578-0.132Desmond RidderATL · 375-0.5

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

CPOE leaderboard for the 2023 NFL season, shrunk by empirical Bayes with 90% credible intervals, ranked by the shrunk estimate.
#PlayerTeamPosattemptsRawShrunk90% interval
1Josh AllenBUFQB545+5.0+3.4+0.9+5.8
2Brock PurdySFQB427+5.4+3.3+0.7+6.0
3Tua TagovailoaMIAQB543+4.5+3.1+0.6+5.5
4Russell WilsonDENQB415+4.9+3.0+0.3+5.7
5Dak PrescottDALQB581+3.9+2.7+0.3+5.1
6Mason Rudolph◦ provisionalPITQB69+12.4+2.7-1.0+6.4
7Jalen HurtsPHIQB500+3.8+2.5+0.0+5.1
8Kirk Cousins◦ provisionalMINQB302+4.3+2.4-0.5+5.3
9Lamar JacksonBALQB441+3.5+2.3-0.4+4.9
10Nick Mullens◦ provisionalMINQB143+5.7+2.1-1.2+5.5
11Derek CarrNOQB523+3.0+2.1-0.4+4.6
12Jake Browning◦ provisionalCINQB234+3.9+2.0-1.1+5.0
13Patrick MahomesKCQB562+2.7+1.9-0.5+4.4
14Tyrod Taylor◦ provisionalNYGQB164+4.4+1.8-1.5+5.1
15C.J. Beathard◦ provisionalJAXQB52+9.8+1.8-2.0+5.6
16Geno SmithSEAQB472+2.4+1.7-0.9+4.2
17Jared GoffDETQB573+1.3+1.0-1.4+3.4
18Jordan LoveGBQB559+1.1+0.9-1.5+3.3
19Joe BurrowCINQB351+1.2+0.9-1.9+3.7
20Trevor LawrenceJAXQB552+0.9+0.8-1.7+3.2
21Ryan Tannehill◦ provisionalTENQB222+1.0+0.7-2.4+3.8
22Justin FieldsCHIQB339+0.8+0.6-2.2+3.5
23Daniel Jones◦ provisionalNYGQB153+0.3+0.4-2.9+3.8
24Baker MayfieldTBQB548+0.2+0.3-2.1+2.8
25C.J. StroudHOUQB476+0.2+0.3-2.2+2.9
26Sam Darnold◦ provisionalSFQB44-1.4+0.2-3.6+4.1
27Deshaun Watson◦ provisionalCLEQB165-0.3+0.2-3.1+3.5
28Will Levis◦ provisionalTENQB247-0.4+0.1-3.0+3.1
29Justin HerbertLACQB443-0.3+0.0-2.6+2.6
30Case Keenum◦ provisionalHOUQB51-2.9-0.0-3.8+3.8
31Sam HowellWASQB578-0.4-0.1-2.5+2.3
32Mitchell Trubisky◦ provisionalPITQB104-2.2-0.2-3.8+3.3
33Jarrett Stidham◦ provisionalDENQB62-3.7-0.2-4.0+3.5
34Tyler Huntley◦ provisionalBALQB35-7.1-0.3-4.2+3.6
35Jimmy Garoppolo◦ provisionalLVQB165-1.9-0.4-3.7+2.9
36Jeff Driskel◦ provisionalCLEQB25-11.0-0.4-4.3+3.5
37Tyson Bagent◦ provisionalCHIQB138-2.4-0.4-3.8+3.0
38Andy Dalton◦ provisionalCARQB57-5.5-0.5-4.2+3.3
39Desmond RidderATLQB375-1.3-0.5-3.3+2.2
40Jameis Winston◦ provisionalNOQB45-8.0-0.6-4.4+3.2
41Drew Lock◦ provisionalSEAQB75-5.1-0.6-4.3+3.0
42Bryce YoungCARQB476-1.4-0.7-3.2+1.9
43Tim Boyle◦ provisionalNYJQB74-5.6-0.7-4.4+3.0
44Tommy DeVito◦ provisionalNYGQB168-2.9-0.7-4.0+2.6
45Kyler Murray◦ provisionalARIQB262-2.3-0.8-3.8+2.2
46Joshua DobbsMINQB398-1.8-0.8-3.5+1.9
47Kenny PickettPITQB310-2.1-0.8-3.7+2.0
48Joe Flacco◦ provisionalCLEQB197-2.9-0.8-4.0+2.4
49Brian Hoyer◦ provisionalLVQB42-11.2-0.9-4.8+2.9
50Blaine Gabbert◦ provisionalKCQB34-15.4-1.1-5.0+2.8
51Anthony Richardson◦ provisionalINDQB81-7.7-1.2-4.9+2.4
52Mac JonesNEQB339-2.9-1.3-4.1+1.5
53Matthew StaffordLAQB495-2.6-1.4-3.9+1.1
54Easton Stick◦ provisionalLACQB169-4.8-1.4-4.7+1.9
55Zach WilsonNYJQB343-3.1-1.4-4.2+1.4
56Bailey Zappe◦ provisionalNEQB202-4.4-1.5-4.7+1.7
57Brett Rypien◦ provisionalLAQB37-19.0-1.6-5.5+2.2
58Davis Mills◦ provisionalHOUQB38-19.5-1.7-5.6+2.1
59Aidan O'ConnellLVQB322-3.9-1.8-4.6+1.1
60Gardner MinshewINDQB465-3.3-1.8-4.4+0.8
61Taylor Heinicke◦ provisionalATLQB127-9.1-2.3-5.8+1.1
62Trevor Siemian◦ provisionalNYJQB144-8.9-2.5-5.9+0.8
63Dorian Thompson-Robinson◦ provisionalCLEQB105-11.7-2.6-6.2+0.9
64PJ Walker◦ provisionalCLEQB105-13.0-3.0-6.5+0.6

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