Computed from every play, garbage time excluded. FBS rank among players with enough volume
| Defense | Value | FBS rank |
|---|---|---|
| Havoc plays | 8 | 129th / 2758 |
| Tackles for loss | 6 | 130th / 2112 |
| Run stops | 23 | 132nd / 3422 |
| Sacks | 1 | — |
| Pass breakups | 2 | — |
| Interceptions | 0 | — |
| Forced fumbles | 0 | — |
| Tackles | 58 | — |
Where Willis's plays went: throw and catch spots, air yards and yards after the catch, read from the play-by-play
The play-by-play names the defender on breakups, interceptions and tackles, but not the man in coverage on every throw, so true times-targeted isn't in the text. Coverage plays is the closest stand-in; exact targets come from hand charting.
3 seasons at 2 schools since 2014 · box-score totals, snap share estimated from play-by-play
| Season | Team | G | Snaps | Tkl | TFL | Sacks | INT | PD | Havoc |
|---|---|---|---|---|---|---|---|---|---|
| 2026 so far | Charlotte#134 · 1-7 | 8 | 93% | 66 | 6 | 0.5 | 0 | 2 | 8 |
| 2025 | Charlotte#135 · 1-11 | 11 | 44% | 55 | 3.5 | 0 | 0 | 2 | 3 |
| 2024 | Navy#36 · 10-3 | 1 | 3% | — | — | — | 0 | — | 0 |
Past seasons are summed from ESPN box scores; success rates and snap shares come from the play-by-play. Gavin Willis's team rank is that season's final TDC rank. A dash means the stat wasn't recorded.
Gavin Willis's box score, game by game, from ESPN, with a 0–10 game score for each (hover it for how it works). Click a result for the full game
| Defense | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Wk | Opponent | Result | Game score | Tkl | Solo | TFL | Sacks | Hur | PD | INT | TD |
| 1 | L 41–43 | 6.1 | 7 | 2 | 0 | 0 | 0 | 0 | · | · | |
| 2 | @ | L 9–41 | 7.9 | 7 | 4 | 2.5 | 0 | 0 | 0 | · | · |
| 3 | @ | L 21–26 | 6.0 | 5 | 4 | 0 | 0 | 0 | 0 | · | · |
| 4 | L 7–34 | 9.0 | 11 | 6 | 2.5 | 0.5 | 2 | 0 | · | · | |
| 5 | L 8–59 | 8.1 | 13 | 6 | 0 | 0 | 0 | 1 | · | · | |
| 6 | @ | L 10–50 | 5.6 | 4 | 2 | 0 | 0 | 0 | 0 | · | · |
| 7 | @ | W 38–31 | 7.8 | 7 | 5 | 1 | 0 | 0 | 1 | · | · |
| 9 | L 31–38 | 7.4 | 12 | 7 | 0 | 0 | 0 | 0 | · | · | |
| 2026 · 8 games | 7.2 | 66 | 36 | 6 | 0.5 | 2 | 2 | · | · | ||
FBS rank among qualifying players
| Defense | 2026 | FBS rank |
|---|---|---|
| Tackles | 66 | 43rd / 5664 |
| Solo | 36 | — |
| Tackles for loss | 6 | 155th / 2634 |
| Sacks | 0.5 | 1127th / 1383 |
| QB hurries | 2 | 418th / 1549 |
| Passes defended | 2 | 471st / 1772 |
| Defensive TD | 0 | — |
Estimated snaps from a model trained on real NFL snap counts. Ranges in brackets are where the real number lands 80% of the time: wide for a single game, tighter over the season. How it works
| Game | Start | Opp. plays | Est. snaps | Plays made | Penalties | Snap share |
|---|---|---|---|---|---|---|
| Wk 1 · The Citadel | ✓ LB | 63 | ~55 (28–63) | 7 | · | 87% |
| Wk 2 · Ole Miss | ✓ LB | 58 | ~57 (29–58) | 7 | 1 | 98% |
| Wk 3 · App State | ✓ LB | 76 | ~59 (30–69) | 4 | · | 78% |
| Wk 4 · Louisiana | ✓ LB | 78 | ~78 (40–78) | 11 | · | 100% |
| Wk 5 · Memphis | — | 89 | ~89 (45–89) | 14 | · | 100% |
| Wk 6 · North Texas | — | 70 | ~60 (30–70) | 4 | · | 86% |
| Wk 7 · Temple | ✓ LB | 61 | ~59 (30–61) | 8 | · | 97% |
| Wk 9 · Tulane | — | 70 | ~70 (36–70) | 12 | · | 100% |
| Season | 5 GS | 565 | 527 (442–565) | 67 | 1 | 93% |
10 LBs on the Charlotte roster, ordered by tkl
| # | Player | Pos | Class | Tkl | TFL | Sacks | INT | PD |
|---|---|---|---|---|---|---|---|---|
| Gavin Willis | LB | 66 | 6 | 0.5 | — | 2 | ||
| 19 | Kadin Schmitz | LB | SR | 55 | 5 | 2 | — | 0 |
| Jerry Wall III | LB | 23 | 2 | 1 | — | 0 | ||
| 30 | Stellan Bowman | LB | SO | 10 | 1 | 0 | — | 0 |
| 36 | Parker Startz | LB | SO | 5 | 0 | 0 | — | 0 |
| 25 | Gray Patterson | LB | FR | — | — | — | — | — |
| 32 | Latrell Sellers | LB | FR | — | — | — | — | — |
| 45 | Mikey Domanik | LB | FR | — | — | — | — | — |
| 46 | Will Estes | LB | FR | — | — | — | — | — |
| 47 | Leo Housel-Rajacich | LB | FR | — | — | — | — | — |
Stats, EPA and usage come from CollegeFootballData.com and refresh daily. FBS ranks only count players with enough volume for the stat to mean something. Qualifying for EPA takes —+ plays per team game. Charlotte depth chart →