Quarterback, Virginia Tech (from Kansas), 2015–19
Ryan Willis
- Number
- No. 5
- Height
- 6′4″
- Weight
- 220 lb
- Class (2019)
- Senior
- Hometown
- Overland Park, KS
- Born
- Sep 28, 1996
Ryan Willis played quarterback at Kansas (2015–16) and Virginia Tech (2018–19).
Career highs
348passing yards, career highvs. TCU, 20164touchdown passes, career hightwice; last at Boston College, 201988rushing yards, career highat North Carolina, 2018Passing
| Season | Team | Cmp | Att | Pct | Yds | Y/A | TD | Int |
|---|---|---|---|---|---|---|---|---|
| 2015 | Kansas | 164 | 315 | 52.1 | 1,719 | 5.5 | 9 | 10 |
| 2016 | Kansas | 72 | 117 | 61.5 | 811 | 6.9 | 3 | 7 |
| 2018 | Virginia Tech | 213 | 364 | 58.5 | 2,716 | 7.5 | 24 | 9 |
| 2019 | Virginia Tech | 72 | 117 | 61.5 | 906 | 7.7 | 9 | 5 |
| Career | 521 | 913 | 57.1 | 6,152 | 6.7 | 45 | 31 | |
Rushing
| Season | Team | Car | Yds | Avg | TD | Long |
|---|---|---|---|---|---|---|
| 2015 | Kansas | 59 | −79 | −1.3 | 0 | 23 |
| 2016 | Kansas | 38 | −8 | −0.2 | 1 | 21 |
| 2018 | Virginia Tech | 113 | 354 | 3.1 | 4 | 39 |
| 2019 | Virginia Tech | 39 | 34 | 0.9 | 1 | 13 |
| Career | 249 | 301 | 1.2 | 6 | 39 | |
Season lines from CollegeFootballData, regular season and bowls.
On the roster
| Season | Team | No. | Pos | Class | Ht | Wt |
|---|---|---|---|---|---|---|
| 2015 | Kansas | 5 | QB | Yr 1 | ||
| 2016 | Kansas | 5 | QB | Yr 2 | ||
| 2018 | Virginia Tech | 5 | QB | Yr 4 | ||
| 2019 | Virginia Tech | 5 | QB | Sr. (Yr 5) | 6′4″ | 220 |
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 |
|---|---|---|---|---|---|---|---|---|---|
| 2015 | Kansas | 374 | 0.03 | 7th (n=151) | 0.24 | 10.5 | 49% | 0.05 | 0.02 |
| 2016 | Kansas | 154 | 0.06 | 6th (n=152) | 0.25 | 8.5 | 36% | 0.05 | – |
| 2018 | Virginia Tech | 474 | 0.30 | 66th (n=160) | 0.26 | 140.5 | 53% | 0.41 | 0.25 |
| 2019 | Virginia Tech | 156 | 0.30 | 62nd (n=155) | 0.27 | 47.5 | 42% | 0.37 | – |
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
2019 Virginia Tech 5 games, 906 passing yards, 9 TD
| Date | Opponent | Result | Cmp | Att | Yds | TD | Int | Rush |
|---|---|---|---|---|---|---|---|---|
| Aug 31 | at | L 28–35 | 29 | 47 | 344 | 4 | 3 | 13 |
| Sep 7 | vs. | W 31–17 | 16 | 28 | 272 | 2 | 0 | 34 |
| Sep 14 | vs. | W 24–17 | 17 | 21 | 123 | 1 | 1 | −5 |
| Sep 27 | vs. | L 10–45 | 7 | 18 | 112 | 1 | 1 | 5 |
| Oct 19 | vs. | W 43–41 | 3 | 3 | 55 | 1 | 0 | −13 |
2018 Virginia Tech 12 games, 2,716 passing yards, 24 TD
| Date | Opponent | Result | Cmp | Att | Yds | TD | Int | Rush |
|---|---|---|---|---|---|---|---|---|
| Sep 8 | vs. | W 62–17 | 4 | 7 | 64 | 0 | 0 | 7 |
| Sep 22 | at | L 35–49 | 9 | 18 | 131 | 1 | 0 | 30 |
| Sep 29 | at | W 31–14 | 17 | 27 | 332 | 3 | 0 | 5 |
| Oct 6 | vs. | L 23–45 | 31 | 52 | 309 | 2 | 1 | 16 |
| Oct 13 | at | W 22–19 | 20 | 36 | 221 | 2 | 2 | 88 |
| Oct 25 | vs. | L 28–49 | 15 | 22 | 201 | 2 | 0 | 22 |
| Nov 3 | vs. | L 21–31 | 25 | 42 | 281 | 3 | 1 | 49 |
| Nov 10 | at | L 22–52 | 22 | 34 | 231 | 3 | 0 | 65 |
| Nov 17 | vs. | L 14–38 | 18 | 36 | 216 | 1 | 2 | 13 |
| Nov 23 | vs. | W 34–31 | 14 | 33 | 199 | 1 | 2 | 41 |
| Dec 1 | vs. | W 41–20 | 18 | 26 | 312 | 4 | 0 | −15 |
| Dec 31 ✦ | vs. | L 31–35 | 20 | 31 | 219 | 2 | 1 | 33 |
2016 Kansas 6 games, 811 passing yards, 3 TD
| Date | Opponent | Result | Cmp | Att | Yds | TD | Int | Rush |
|---|---|---|---|---|---|---|---|---|
| Sep 3 | vs. | W 55–6 | 7 | 9 | 144 | 2 | 0 | 22 |
| Sep 10 | vs. | L 21–37 | 1 | 5 | 8 | 0 | 1 | −2 |
| Sep 17 | at | L 7–43 | 9 | 13 | 80 | 0 | 0 | −2 |
| Sep 29 | at | L 19–55 | 14 | 26 | 142 | 1 | 0 | −29 |
| Oct 8 | vs. | L 23–24 | 31 | 45 | 348 | 0 | 3 | 17 |
| Oct 15 | at | L 7–49 | 10 | 19 | 89 | 0 | 3 | −14 |
2015 Kansas 10 games, 1,719 passing yards, 9 TD
| Date | Opponent | Result | Cmp | Att | Yds | TD | Int | Rush |
|---|---|---|---|---|---|---|---|---|
| Sep 5 | vs. | L 38–41 | 0 | 2 | 0 | 0 | 0 | – |
| Oct 3 | at | L 13–38 | 8 | 16 | 100 | 0 | 0 | −18 |
| Oct 10 | vs. | L 7–66 | 20 | 36 | 158 | 1 | 1 | −15 |
| Oct 17 | vs. | L 20–30 | 35 | 50 | 330 | 2 | 1 | −7 |
| Oct 24 | at | L 10–58 | 12 | 31 | 191 | 1 | 2 | −20 |
| Oct 31 | vs. | L 7–62 | 20 | 34 | 181 | 1 | 0 | −27 |
| Nov 7 | at | L 20–59 | 17 | 34 | 214 | 1 | 2 | 1 |
| Nov 14 | at | L 17–23 | 20 | 41 | 203 | 1 | 1 | 11 |
| Nov 21 | vs. | L 0–49 | 13 | 36 | 127 | 0 | 2 | −22 |
| Nov 28 | vs. | L 14–45 | 19 | 35 | 215 | 2 | 1 | 18 |
Box scores from CollegeFootballData, 2004 on. ✦ postseason; ★ a career high on file.
Before the draft
| Drill | Pro day 2020 |
|---|---|
| Height | 6′4″ |
| Weight | 225 lb |
| Arm length | 32¾″ |
| Hand size | 9½″ |
Pre-draft measurables: 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.
