Computed from every play, garbage time excluded. FBS rank among players with enough volume
| Defense | Value | FBS rank |
|---|---|---|
| Havoc plays | 1 | 1749th / 2573 |
| Tackles for loss | 0 | — |
| Run stops | 1 | 2643rd / 3263 |
| Sacks | 0 | — |
| Pass breakups | 1 | — |
| Interceptions | 0 | — |
| Forced fumbles | 0 | — |
| Tackles | 5 | — |
Where Williams'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.
Keith Williams'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
FBS rank among qualifying players
| Defense | 2026 | FBS rank |
|---|---|---|
| Tackles | 10 | 2030th / 5408 |
| Solo | 3 | — |
| Tackles for loss | 0 | — |
| Sacks | 0 | — |
| QB hurries | 0 | — |
| Passes defended | 0 | — |
| Defensive TD | 0 | — |
| Interceptions | 2026 | FBS rank |
|---|---|---|
| Interceptions | 1 | 110th / 527 |
| Return yards | 24 | — |
| Pick-sixes | 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 | Opp. plays | Est. snaps | Plays made | Special teams | Snap share |
|---|---|---|---|---|---|
| Wk 1 · Jacksonville State | 54 | ~3 (0–17) | 1 | · | 6% |
| Wk 1 · Fordham | 48 | ~25 (3–45) | 4 | 1 | 52% |
| Wk 2 · Air Force | 66 | ~1 (0–6) | 1 | · | 2% |
| Wk 3 · Sacramento State | 66 | ~23 (2–42) | 2 | · | 35% |
| Wk 5 · Wyoming | 49 | ~19 (2–34) | 2 | · | 39% |
| Season | 403 | 71 (0–136) | 10 | 1 | 18% |
13 LBs on the North Dakota State roster, ordered by tkl
| # | Player | Pos | Class | Tkl | TFL | Sacks | INT | PD |
|---|---|---|---|---|---|---|---|---|
| Donovan Woolen | LB | 51 | 3.5 | 1.5 | 1 | 3 | ||
| 3 | Gavin Sell | LB | FR | 36 | 5 | 1 | 1 | 1 |
| 25 | Ray James Jr. | LB | SO | 23 | 2 | 0.5 | 1 | 1 |
| 41 | Peder Haugo | LB | SO | 15 | 1.5 | 1 | — | 0 |
| 42 | Alex Elliott | LB | JR | 14 | 0 | 0 | — | 0 |
| Keith Williams | LB | 10 | 0 | 0 | 1 | 0 | ||
| Noah Taylor | LB | 4 | 1 | 0 | — | 0 | ||
| 35 | Ryland Satter | LB | SO | 2 | 0 | 0 | — | 0 |
| 50 | Damian Devine | LB | FR | 2 | 0 | 0 | — | 0 |
| Jacob Wrbanek | LB | 2 | 0 | 0 | — | 0 | ||
| 38 | Ben Schepp | LB | FR | — | — | — | — | — |
| 44 | Carter Appl | LB | FR | — | — | — | — | — |
| 55 | Oliver Lucht | LB | JR | — | — | — | — | — |
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. North Dakota State depth chart →