Snap share
57%
6 of 6 started · likely 43–63%
Tackles
27
560th of 5406 in FBS
Solo
19
Tackles for loss
5
136th of 2447 in FBS
Sacks
1
489th of 1212 in FBS
Interceptions
1
109th of 526 in FBS

Advanced

Computed from every play, garbage time excluded. FBS rank among players with enough volume

DefenseValueFBS rank
Havoc plays5269th / 2573
Tackles for loss2627th / 1909
Run stops31912th / 3262
Sacks0—
Pass breakups3—
Interceptions0—
Forced fumbles0—
Tackles23—

Charting

Where Willis's plays went: throw and catch spots, air yards and yards after the catch, read from the play-by-play

Passes defended
3
3 broken up · 0 intercepted
QB hurries
0
as the play text names the rusher
Tackles after a catch
20
11.4 yds per catch on those
YAC on those catches
3.8
yds after the catch before his tackle
Coverage plays
23
PBUs + INTs + tackles after a catch

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.

Career

4 seasons at 2 schools since 2014 · box-score totals, snap share estimated from play-by-play

SeasonTeamGSnapsTklTFLSacksINTPDHavoc
2026 so farJames Madison#47 · 7-0657%2751125
2025James Madison#19 · 12-258%70001—
2024Cincinnati#70 · 5-7617%700000
2023Cincinnati#93 · 3-9844%1200201

Past seasons are summed from ESPN box scores; success rates and snap shares come from the play-by-play. Ken Willis's team rank is that season's final TDC rank. A dash means the stat wasn't recorded.

Game Log

Ken 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

7.1 avg. game scoreBest: 8.8 vs Wagner (Week 2)3 of 6 games at 8.0+
Defense
WkOpponentResultGame scoreTklSoloTFLSacksHurPDINTTD
1LibertyW 20–137.1761000··
2WagnerW 87–38.8751100··
3@San Diego StateW 26–138.2742001··
4@Old DominionW 46–205.8110001··
5MarshallW 45–174.7210000··
6@Georgia SouthernW 27–248.23210001·
7Georgia StateW 49–22—no stats recorded
2026 · 6 games7.1271951021·

2026 Season Stats

FBS rank among qualifying players

Defense2026FBS rank
Tackles27560th / 5406
Solo19—
Tackles for loss5136th / 2447
Sacks1489th / 1212
QB hurries0—
Passes defended2336th / 1588
Defensive TD0—
Interceptions2026FBS rank
Interceptions1109th / 526
Return yards0—
Pick-sixes0—
Fumbles2026FBS rank
Fumbles0—
Lost0—
Recovered1—

Snaps by Game

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

GameStartOpp. playsEst. snapsPlays madePenaltiesSnap share
Wk 1 · Liberty✓ CB66~64 (26–66)7·97%
Wk 2 · Wagner✓ CB67~66 (27–67)7·99%
Wk 3 · San Diego State✓ CB77~69 (28–73)8190%
Wk 4 · Old Dominion✓ CB68~27 (0–45)3240%
Wk 5 · Marshall✓ CB81~27 (0–45)2·33%
Wk 6 · Georgia Southern✓ CB65~24 (0–40)2237%
Season6 GS490277 (210–308)29557%

Position Room

21 DBs on the James Madison roster, ordered by tkl

#PlayerPosClassTklTFLSacksINTPD
24Jayon HarveySJR491.50—3
31Seth GathersSSO330.50—3
Ken WillisCB275112
14KJ FloweSJR2120—4
16TJ McGillSSR1600—1
6DJ KellyCBSO140043
25Terrence JonesSJR101.50—0
7Roddrey McWilliamsCBSO700—1
11LaRon DuesCBFR710—1
1Damier MinkahCBSR400—0
27Jamal OlfordCBSO40011
22Chase ReganSJR300—0
30D'Kwan ThomasSFR300—0
35Joshua PrinceSJR100—0
41George LovelaceCBJR100—0
7Javis MynattSSR—————
18Jase RhodesSFR—————
28Kamden JenningsCBFR—————
32Chase MillerSSR—————
33Trey GibsonCBFR—————
47Kevin KabaseleSJR—————

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. James Madison depth chart →