DOWN X DOWN › players › compare
Season over · final
2025
2025 season · final Every snap of the 2025 season, kept as it ended.Back to 2026 →

2025 season · compare · quarterbacks

Compare players

Two or three players of the same position, side by side: where each one grades against the league, where the ball finds each of them, and how their weeks line up.

56 in the league pool
Who · up to three, same position groupStart over
10
Justin HerbertQB · Chargers · graded
✕
13
Brock PurdyQB · 49ers · graded
✕

The address bar is the share link. Copy it, text it, post it: whoever opens it sees the same players. The Compare button on player pages builds on this set until you start over or switch positions.

Where they rank · among 56 quarterbacks with 50 attempts+League percentiles
Justin HerbertBrock Purdy
EPA per dropback
+0.0353rd
+0.2192nd
CPOEcompletion over expected
+1.669th
+7.796th
Sack rateper dropback, lower is better
10%19th
4%88th
Yards per attempt
7.372nd
7.683rd
TD rateper attempt
5%78th
7%97th
INT rateper attempt, lower is better
3%35th
4%24th
Depth of targetair yards per attempt
7.853rd
7.644th
Rush EPA per game
+0.9972nd
+1.8090th

Each bar is the league pool; the markers are the players. Right is better, the dashed line is the median. The best value in each row is marked green.

Playstyle · how each is used, against the league's quarterbacksamong 56 quarterbacks
Justin HerbertBrock Purdy
JustinScrambler
BrockMotion offenseUnder centerAttacks the middle
Deep shareattempts 20+ yards downfield
13%63rd
11%49th
Middle of the fieldattempts between the numbers
22%67th
25%85th
Play actionshare of attempts
22%49th
25%73rd
RPOshare of dropbacks
1%21st
1%13th
Scramblesshare of dropbacks
9%79th
7%63rd
Shotgunshare of dropbacks
85%62nd
73%8th
Against the blitzEPA per dropback, blitzed minus not
+0.0658th
-0.1624th
Motiondropbacks with pre-snap motion
52%44th
71%99th

Every trait is a share of his own dropbacks, so volume does not move it. Each bar is the league's qualifying quarterbacks; the markers are the players and the thin line is the median. Styles are not grades: a high or low share describes the role, not how well he plays it. The tags are each player's traits furthest from the middle.

The shape · percentile radarBigger and rounder is more complete
EPA / DBCPOESacksY/ATD rateINT rateDepthRush EPA
Where he wins · EPA per throw by lane and depthSame scale across
Justin Herbert
Loading…
Brock Purdy
Loading…

Green cells turn targets into points, red cells lose them. Cells with one target are left grey.

Where the EPA comes from · the season split by what happened on his playsPassing and rushing EPA

Brock Purdy gets the most from the ball in the air (+80.8 EPA), Justin Herbert gets the most scrambling (+29.0 EPA), and Justin also gives the most back on sacks (−84.4).

Justin Herbert+32.0
Brock Purdy+79.3
Air yardsAfter the catchIncompletionsInterceptionsSacksScramblesDesigned runsTwo-point tries
PartJustinBrock
Air yardson completions+69.8+0.11 a dropback · 64th+80.8+0.26 a dropback · 96th
After the catchhis share, catch to whistle+236.3+0.38 a dropback · 54th+117.7+0.38 a dropback · 51st
Incompletionsspikes included−139.1−0.23 a dropback · 71st−66.0−0.21 a dropback · 83rd
Interceptions−66.5−0.11 a dropback · 37th−47.0−0.15 a dropback · 15th
Sacks−84.4−0.14 a dropback · 24th−21.5−0.07 a dropback · 90th
Scrambles+29.0+0.05 a dropback · 81st+5.8+0.02 a dropback · 40th
Designed runskneels included−14.1 · 12th+10.4 · 97th
Two-point triesnot in the rates+1.1−0.8
Total+32.0615 dropbacks+79.3313 dropbacks

Every play is split by what happened: completions at the catch into air yards and yards after the catch (nflverse's air EPA), the cost of the ones that fell incomplete or were picked, sacks, scrambles and designed runs. Bars share one scale, gains right of the line and losses left. The rate is per dropback, with its percentile among the league's qualifying quarterbacks; the best rate in each row is green.

Where the ball finds them · same scale, same fieldloading plays

Justin Herbert

Loading…

Brock Purdy

Loading…

Targets placed by air yards and side of the field, from each team's play file.

On one field · every throw, same fieldFilled is caught, a ring is not
Loading…
Depth butterfly · J.Herbert and B.PurdySolid is caught
Loading…

Back to back by depth band. The widest band is where the offense goes to him; the gap between solid and faded is where it misses.

The race · cumulative yardsFlat steps are byes
Week by week · groupedSame Sunday, side by side
The shape of their seasons · each one's last 3 games, week by weekWeeks 1 to 18
Justin HerbertBrock Purdy

Dropbackslast 3 games

2538
123456789101112131415161718
Justin 33Brock 33

Pass yardslast 3 games

150262
123456789101112131415161718
Justin 248.7Brock 241.7

EPA / dropbacklast 3 games

-0.22+0.28
123456789101112131415161718
Justin +0.15Brock +0.20

CPOElast 3 games

-5.5+6.9
123456789101112131415161718
Justin +8.4Brock +7.2

Each line is a player's trailing 3 games (rates are pooled over the games, not averaged); the faint dots are single games. The shaded band is the league's middle half of single games at the position, the dashed line its median. A line that climbs out of the band is a role getting bigger.

Floor and ceiling · boom, solid or dud, week by weekBoom 262+ · dud under 150
J.Herbert
318Wk 1242Wk 2300Wk 3203Wk 4166Wk 5264Wk 6420Wk 7227Wk 8250Wk 9220Wk 1081Wk 1112Wk 12151Wk 13139Wk 14210Wk 15300Wk 16236Wk 1718Wk 1819Wk 1920Wk 2021Wk 2122Wk 22
233 ± 78
B.Purdy
277Wk 12Wk 23Wk 3309Wk 45Wk 56Wk 67Wk 78Wk 89Wk 910Wk 10200Wk 11193Wk 12168Wk 1314Wk 14295Wk 15295Wk 16303Wk 17127Wk 1819Wk 1920Wk 2021Wk 2122Wk 22
241 ± 65

Thresholds are the quartiles of every game week by qualified quarterbacks this season (598 player weeks). The right column is the average week and its swing.

Fantasy · points, rank and range, week by week
StandardJ.HerbertB.Purdy
Points a game17.9QB1019.7QB6
Season286.9QB10177.4QB23
Most weeks12.5–27.713.0–28.1
Booms · busts5 · 225+ · under 123 · 225+ · under 12
Half PPRJ.HerbertB.Purdy
Points a game17.9QB1019.7QB6
Season286.9QB10177.4QB23
Most weeks12.5–27.713.0–28.1
Booms · busts5 · 225+ · under 123 · 225+ · under 12
PPRJ.HerbertB.Purdy
Points a game17.9QB1019.7QB6
Season286.9QB10177.4QB23
Most weeks12.5–27.713.0–28.1
Booms · busts5 · 225+ · under 123 · 225+ · under 12

Ranks are among players at each one's own position. A missing bar is a week he did not score: a bye or a missed game. The format you pick is remembered on this device.

Week by week · aligned
WeekJ.HerbertB.Purdy
Wk 1318277
Wk 2242·
Wk 3300·
Wk 4203309
Wk 5166·
Wk 6264·
Wk 7420·
Wk 8227·
Wk 9250·
Wk 10220·
Wk 1181200
Wk 12·193
Wk 13151168
Wk 14139·
Wk 15210295
Wk 16300295
Wk 17236303
Wk 18·127
Season37272167

Rows are league weeks, so byes and missed games show as gaps. The best value each week is marked green.

Season stats · side by side, with league rank
SeasonJ.HerbertB.Purdy
Attempts512284
Completions340197
Pass yards37272167
Touchdowns2620
EPA per dropback+0.0327th+0.215th
CPOE+1.618th+7.73rd
Sack rate10%46th4%7th
Yards per attempt7.316th7.610th
TD rate5%13th7%2nd
INT rate3%37th4%43rd
Depth of target7.827th7.632nd
Rush EPA per game+0.9916th+1.806th
Careers · passing yards a game, season by seasonRegular season
Justin HerbertBrock Purdy
100200300
202020212022202320242025*
PlayerGAttYdsTDYds/gBest seasonThis season
Justin Herbert2020 to 2025 · 6 seasons953,43824,820163261.32021: 5,014294.9 a game232.9below his career rate
Brock Purdy2022 to 2025 · 4 seasons491,35311,68584238.52023: 4,280267.5 a game240.8above his career rate

Regular season only, from each player's career file. * 2025 is through Week 22; its dot is hollow because the season is not over. "This season" compares this year's rate with his earlier seasons. Hover a dot for the season's line.