Quarterback, East Carolina, 2018–22
Holton Ahlers
- Number
- No. 12
- Height
- 6′4″
- Weight
- 230 lb
- Class (2022)
- Senior
- Hometown
- Greenville, NC
- Born
- Nov 10, 1999
Holton Ahlers played quarterback at East Carolina (2018–22).
At a glance
Career highs
535passing yards, career highvs. Cincinnati, 20196touchdown passes, career hightwice; last vs. South Florida, 2022130rushing yards, career highvs. UConn, 20182rushing touchdowns, career highthree times; last at BYU, 2022Passing
| Season | Team | Cmp | Att | Pct | Yds | Y/A | TD | Int |
|---|---|---|---|---|---|---|---|---|
| 2018 | East Carolina | 127 | 262 | 48.5 | 1,785 | 6.8 | 12 | 3 |
| 2019 | East Carolina | 264 | 442 | 59.7 | 3,387 | 7.7 | 21 | 10 |
| 2020 | East Carolina | 165 | 269 | 61.3 | 1,927 | 7.2 | 18 | 9 |
| 2021 | East Carolina | 256 | 414 | 61.8 | 3,126 | 7.6 | 18 | 10 |
| 2022 | East Carolina | 315 | 469 | 67.2 | 3,708 | 7.9 | 28 | 5 |
| Career | 1,127 | 1,856 | 60.7 | 13,933 | 7.5 | 97 | 37 | |
Rushing
| Season | Team | Car | Yds | Avg | TD | Long |
|---|---|---|---|---|---|---|
| 2018 | East Carolina | 119 | 592 | 5.0 | 6 | 53 |
| 2019 | East Carolina | 108 | 359 | 3.3 | 6 | 36 |
| 2020 | East Carolina | 54 | 109 | 2.0 | 1 | 75 |
| 2021 | East Carolina | 116 | 204 | 1.8 | 6 | 34 |
| 2022 | East Carolina | 72 | 182 | 2.5 | 6 | 37 |
| Career | 469 | 1,446 | 3.1 | 25 | 75 | |
Season lines from CollegeFootballData, regular season and bowls.
On the roster
| Season | Team | No. | Pos | Class | Ht | Wt |
|---|---|---|---|---|---|---|
| 2018 | East Carolina | 12 | QB | Yr 1 | ||
| 2019 | East Carolina | 12 | QB | Yr 2 | ||
| 2020 | East Carolina | 12 | QB | Yr 3 | ||
| 2021 | East Carolina | 12 | QB | Yr 4 | ||
| 2022 | East Carolina | 12 | QB | Sr. (Yr 5) | 6′4″ | 230 |
As each season’s roster listed the player (CollegeFootballData). Classes before the latest listing are counted back from it; “Yr 1” is the year on file where that count can’t place a season he played (a redshirt, transfer or 2020 year); height and weight as last listed.
Per play
| Season | Team | Plays | EPA/play | Pctile | Median | Total | Usage | Adj. pass | Adj. rush |
|---|---|---|---|---|---|---|---|---|---|
| 2018 | East Carolina | 368 | 0.24 | 45th (n=160) | 0.26 | 87.5 | 47% | 0.22 | 0.21 |
| 2019 | East Carolina | 547 | 0.31 | 66th (n=155) | 0.27 | 169.1 | 60% | 0.45 | 0.15 |
| 2020 | East Carolina | 319 | 0.20 | 29th (n=116) | 0.27 | 62.5 | 55% | 0.30 | 0.06 |
| 2021 | East Carolina | 511 | 0.32 | 47th (n=145) | 0.33 | 162.9 | 58% | 0.44 | 0.33 |
| 2022 | East Carolina | 538 | 0.38 | 73rd (n=250) | 0.32 | 205.1 | 59% | 0.43 | 0.34 |
Expected points added: how much the player’s plays moved the team’s expected score, per play and in total. Plays: total EPA divided by EPA per play, the plays the source credits to him (for a receiver roughly his catches and runs, not every target; for a passer, not every attempt), so it can differ from attempts plus carries. Percentile: against the position’s regulars that season across all divisions on file (quarterbacks with 150+ plays, backs 60+, receivers and tight ends 30+), with how many there were (n) and their median; a dash means too few plays to rank. A season in progress uses the full-season bar scaled by games played, never below 75 plays for quarterbacks, 30 for backs and 20 for receivers. The cohort grows or shrinks with the source’s coverage each season (2025 lists far more players), so compare percentiles rather than raw EPA across years. FCS seasons are marked. Usage: the share of the team’s plays the player was part of (shown from 20 plays). Adjusted pass and rush: EPA per play adjusted for the defenses faced (CollegeFootballData’s WEPA). From CollegeFootballData, 2013 on.
Game by game
2022 East Carolina 13 games, 3,708 passing yards, 28 TD
| Date | Opponent | Result | Cmp | Att | Yds | TD | Int | Rush |
|---|---|---|---|---|---|---|---|---|
| Sep 3 | vs. | L 20–21 | 25 | 41 | 267 | 2 | 2 | 57 |
| Sep 10 | vs. | W 39–21 | 25 | 39 | 270 | 2 | 0 | −3 |
| Sep 17 | vs. | W 49–10 | 17 | 20 | 263 | 3 | 0 | −5 |
| Sep 24 | vs. | L 20–23 | 22 | 34 | 267 | 2 | 1 | 23 |
| Oct 1 | vs. | W 48–28 | 31 | 41 | 465 | 6 | 0 | 9 |
| Oct 8 | at | L 9–24 | 32 | 51 | 288 | 1 | 2 | 17 |
| Oct 15 | vs. | W 47–45 | 26 | 34 | 304 | 1 | 0 | 10 |
| Oct 22 | vs. | W 34–13 | 30 | 36 | 311 | 1 | 0 | 6 |
| Oct 28 | at | W 27–24 | 15 | 22 | 197 | 0 | 0 | 18 |
| Nov 11 | at | L 25–27 | 26 | 46 | 280 | 2 | 0 | 14 |
| Nov 19 | vs. | L 3–42 | 15 | 30 | 182 | 0 | 0 | −11 |
| Nov 26 | at | W 49–46 | 25 | 37 | 314 | 3 | 0 | −1 |
| Dec 27 ✦ | vs. | W 53–29 | 26 | 38 | 300 | 5 | 0 | 48 |
2021 East Carolina 12 games, 3,126 passing yards, 18 TD
| Date | Opponent | Result | Cmp | Att | Yds | TD | Int | Rush |
|---|---|---|---|---|---|---|---|---|
| Sep 2 | at | L 19–33 | 22 | 40 | 295 | 2 | 1 | 14 |
| Sep 11 | vs. | L 17–20 | 11 | 24 | 77 | 0 | 2 | 4 |
| Sep 18 | at | W 42–38 | 30 | 48 | 368 | 2 | 0 | −12 |
| Sep 25 | vs. | W 31–28 | 17 | 26 | 238 | 1 | 2 | 4 |
| Oct 2 | vs. | W 52–29 | 21 | 32 | 288 | 2 | 0 | 12 |
| Oct 9 | at | L 16–20 | 20 | 32 | 219 | 1 | 1 | −1 |
| Oct 23 | at | L 24–31 | 23 | 37 | 278 | 2 | 0 | 5 |
| Oct 28 | vs. | W 29–14 | 21 | 35 | 220 | 1 | 0 | 78 |
| Nov 6 | vs. | W 45–3 | 16 | 24 | 197 | 3 | 1 | 33 |
| Nov 13 | at | W 30–29 | 29 | 46 | 313 | 0 | 2 | 46 |
| Nov 20 | at | W 38–35 | 27 | 32 | 405 | 3 | 0 | 48 |
| Nov 26 | vs. | L 13–35 | 19 | 38 | 228 | 1 | 1 | −27 |
2020 East Carolina 8 games, 1,927 passing yards, 18 TD
| Date | Opponent | Result | Cmp | Att | Yds | TD | Int | Rush |
|---|---|---|---|---|---|---|---|---|
| Sep 26 | vs. | L 28–51 | 14 | 29 | 215 | 3 | 1 | 55 |
| Oct 3 | at | L 29–49 | 29 | 50 | 242 | 0 | 3 | −13 |
| Oct 10 | at | W 44–24 | 17 | 26 | 222 | 3 | 0 | 35 |
| Oct 30 | at | L 30–34 | 38 | 50 | 330 | 3 | 1 | 5 |
| Nov 7 | vs. | L 21–38 | 27 | 43 | 351 | 3 | 0 | −26 |
| Nov 13 | at | L 17–55 | 9 | 20 | 87 | 0 | 3 | −18 |
| Nov 21 | at | W 28–3 | 11 | 22 | 182 | 2 | 1 | 70 |
| Nov 28 | vs. | W 52–38 | 20 | 29 | 298 | 4 | 0 | 1 |
2019 East Carolina 12 games, 3,387 passing yards, 21 TD
| Date | Opponent | Result | Cmp | Att | Yds | TD | Int | Rush |
|---|---|---|---|---|---|---|---|---|
| Aug 31 | at | L 6–34 | 22 | 39 | 168 | 0 | 1 | 11 |
| Sep 7 | vs. | W 48–9 | 18 | 29 | 195 | 1 | 1 | 78 |
| Sep 14 | at | L 10–42 | 11 | 23 | 138 | 0 | 1 | 36 |
| Sep 21 | vs. | W 19–7 | 20 | 34 | 210 | 1 | 0 | 60 |
| Sep 28 | at | W 24–21 | 8 | 21 | 202 | 2 | 2 | 1 |
| Oct 3 | vs. | L 17–27 | 19 | 39 | 229 | 2 | 0 | 26 |
| Oct 19 | at | L 28–41 | 23 | 37 | 313 | 1 | 1 | 47 |
| Oct 26 | vs. | L 20–45 | 18 | 28 | 217 | 0 | 1 | −3 |
| Nov 2 | vs. | L 43–46 | 32 | 52 | 535 | 4 | 1 | 21 |
| Nov 9 | at | L 51–59 | 32 | 42 | 498 | 6 | 0 | 25 |
| Nov 23 | at | W 31–24 | 34 | 50 | 374 | 1 | 2 | 22 |
| Nov 30 | vs. | L 24–49 | 27 | 48 | 308 | 3 | 0 | 35 |
2018 East Carolina 10 games, 1,785 passing yards, 12 TD
| Date | Opponent | Result | Cmp | Att | Yds | TD | Int | Rush |
|---|---|---|---|---|---|---|---|---|
| Sep 8 | vs. | W 41–19 | 0 | 1 | 0 | 0 | 0 | 36 |
| Sep 22 | at | L 13–20 | 1 | 2 | 3 | 0 | 0 | 48 |
| Sep 29 | vs. | W 37–35 | 1 | 3 | 4 | 0 | 0 | 63 |
| Oct 6 | at | L 6–49 | 0 | 4 | 0 | 0 | 0 | 56 |
| Oct 13 | vs. | L 20–42 | 11 | 18 | 137 | 1 | 0 | 45 |
| Oct 20 | vs. | L 10–37 | 29 | 52 | 406 | 1 | 1 | 69 |
| Nov 3 | vs. | L 41–59 | 34 | 62 | 449 | 3 | 0 | 57 |
| Nov 10 | at | L 18–24 | 21 | 67 | 360 | 2 | 1 | 67 |
| Nov 17 | vs. | W 55–21 | 22 | 31 | 242 | 4 | 0 | 130 |
| Nov 23 | at | L 6–56 | 8 | 22 | 184 | 1 | 1 | 21 |
Box scores from CollegeFootballData, 2004 on. ✦ postseason; ★ a career high on file.
Before the draft
MVP of the 2023 Hula Bowl; MVP of the 2023 NFLPA Collegiate Bowl.
| Drill | Pro day 2023 |
|---|---|
| Height | 6′2¾″ |
| Weight | 237 lb |
| Arm length | 32¼″ |
| Hand size | 9¾″ |
| 40-yard dash | 4.95 s |
| 10-yard split | 1.77 s |
| Vertical jump | 28″ |
| Broad jump | 9′3″ |
| 3-cone drill | 7.21 s |
| 20-yard shuttle | 4.53 s |
Pre-draft measurables: Wikipedia (CC BY-SA). Rosters and honors: Wikipedia (CC BY-SA).
Is this you, or do you know of something wrong or missing here? Suggest a correction. We check each one against a source before changing the page.
