Loading
Loading
Loading
Loading
Player / QB
Regular season production, 2016 through 2025.
Altitude is EPA per dropback with the luck taken out: interception plays priced as incompletions, sack-fumbles as clean sacks, shown as the historical percentile of every qualifying QB game since 2016. The band is the claim; differences between adjacent bands are often noise.
W1
56
Level
W2
65
Cruising
W3
49
Level
W4
93
Soaring
W5
85
Cruising
W6
92
Soaring
W7
68
Cruising
W8
47
Level
W9
11
Turbulence
W11
82
Cruising
W12
78
Cruising
W13
91
Soaring
W14
51
Level
W15
37
Turbulence
W16
88
Cruising
W17
57
Level
Season mean Altitude 66 across 16 qualifying games. Rushing identity is not graded here; his baseline is 11 rushing yards a game.
Time to throw and aggressiveness are style axes that sit beside the Altitude score, never replace it; CPOE is the tracking-model completion skill.
Time to throw
Headline2.83s
QB median 2.80s
Track spans the middle 90% of 64 qualified seasons; the notch is the median.
Aggressiveness
20%
QB median 15%
Track spans the middle 90% of 64 qualified seasons; the notch is the median.
Air yards to sticks
-0.1 yd
QB median -1.1 yd
Track spans the middle 90% of 64 qualified seasons; the notch is the median.
Accuracy and pressure rates persist year over year (.43 to .48) but add nothing to predicting future clean EPA, so none of them enters the Altitude score; read them as style and environment.
Bad throw rate
Headline12.5%
QB median 15.9%
Track spans the middle 90% of 56 qualified seasons; the notch is the median.
On-target rate
74.8%
QB median 74.0%
Track spans the middle 90% of 56 qualified seasons; the notch is the median.
Pressure rate
21.6%
QB median 21.6%
2025 / QB
Season splits from pre-aggregated charting views. Missing datasets stay hidden.
Against every qualifying QB season in 2025. Metrics below their sample minimum say so instead of pretending.
EPA per dropback
88thpercentile
38 qualifying seasons
CPOE
73rdpercentile
42 qualifying seasons
Yards per attempt
77thpercentile
42 qualifying seasons
Regular season only. Column definitions live in the glossary and at /explore.
| Season | Team | G | Att | Cmp | Pass yds | TD | INT | EPA per dropback | CPOE | Y/A |
|---|---|---|---|---|---|---|---|---|---|---|
| 2025 | DAL | 17 | 600 | 404 | 4552 | 30 | 10 | 0.18 | 2.20 | 7.59 |
| 2024 | DAL | 8 | 286 | 185 | 1978 | 11 |
Dropback production by situation bucket. Small buckets are noisy; check anything surprising with a test in the builder.
| Situation | Dropbacks | EPA per dropback | Success rate | CPOE |
|---|---|---|---|---|
| Shotgun | 496 | 0.14 | 0.48 | 2.21 |
| Trailing | 382 | 0.19 | 0.50 | 3.09 |
| Home | 317 | 0.21 | 0.49 | 2.84 |
| Away | 314 | 0.14 | 0.46 | 1.56 |
| 1st down & long | 218 | 0.16 | 0.49 | 0.86 |
Data refreshed 1 day ago. Built on data from the nflverse project.
CPOE
+4.8
QB median -0.3
Track spans the middle 90% of 64 qualified seasons; the notch is the median.
Time to throw by season
2016
2.88s
2017
2.82s
2018
2.82s
2019
2.88s
2020
2.77s
2021
2.75s
2022
2.72s
2023
2.71s
2024
2.79s
2025
2.83s
League tracking aggregates; NFL-qualified weeks only.
Track spans the middle 90% of 56 qualified seasons; the notch is the median.
Pocket time
2.40s
QB median 2.40s
Track spans the middle 90% of 56 qualified seasons; the notch is the median.
Bad throw rate by season
2018
17.3%
2019
14.8%
2020
15.1%
2021
14.7%
2022
17.3%
2023
11.7%
2024
17.9%
2025
12.5%
ESPN QBR, 2025 average
69.1across 16 games
ESPN QBR shown as a benchmark. On identical frames, the Altitude score is steadier game to game (.517 vs .470 split-half).
PFR advanced charting, 2018 onward; qualified seasons only.
| 8 |
| -0.03 |
| -0.85 |
| 6.92 |
| 2023 | DAL | 17 | 590 | 410 | 4516 | 36 | 9 | 0.19 | 3.93 | 7.65 |
| 2022 | DAL | 12 | 394 | 261 | 2860 | 23 | 15 | 0.10 | 0.02 | 7.26 |
| 2021 | DAL | 16 | 596 | 410 | 4449 | 37 | 10 | 0.17 | 2.31 | 7.46 |
| 2020 | DAL | 5 | 222 | 151 | 1856 | 9 | 4 | 0.14 | 0.30 | 8.36 |
| 2019 | DAL | 16 | 596 | 388 | 4902 | 30 | 11 | 0.20 | 0.97 | 8.22 |
| 2018 | DAL | 16 | 526 | 356 | 3885 | 22 | 8 | 0.04 | 1.11 | 7.39 |
| 2017 | DAL | 16 | 490 | 308 | 3324 | 22 | 13 | -0.06 | -0.24 | 6.78 |
| 2016 | DAL | 16 | 459 | 311 | 3667 | 23 | 4 | 0.25 | 4.25 | 7.99 |
| Leading | 136 | 0.25 | 0.47 | 0.94 |
| 2nd down & long | 116 | 0.11 | 0.46 | -0.73 |
| Neutral | 113 | 0.04 | 0.42 | 0.73 |
| Red zone | 111 | -0.10 | 0.38 | -1.66 |
| Two minute | 80 | 0.48 | 0.56 | 12.36 |
| No huddle | 74 | 0.12 | 0.47 | -3.69 |
| 2nd down & medium | 70 | 0.34 | 0.53 | 11.09 |
| 3rd down & long | 68 | 0.04 | 0.31 | 2.59 |
| 3rd down & medium | 60 | 0.06 | 0.45 | 3.92 |
| 3rd down & short | 36 | 0.21 | 0.56 | -5.37 |
| 2nd down & short | 24 | 0.16 | 0.46 | -2.18 |
| 4th down & short | 18 | 0.44 | 0.61 | 3.92 |
| 4th down & medium | 6 | 1.12 | 0.67 | 34.90 |
| 1st down & medium | 5 | 0.45 | 0.60 | 6.89 |
| 1st down & short | 4 | 0.91 | 0.75 | 12.99 |
| 4th down & long | 3 | 0.02 | 0.67 | 5.54 |