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 | 7 | 71st / 2112 |
| Run stops | 10 | 794th / 3422 |
| Sacks | 5 | — |
| Pass breakups | 1 | — |
| Interceptions | 0 | — |
| Forced fumbles | 0 | — |
| Tackles | 17 | — |
Where McCaslin'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.
Kelton McCaslin'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 | W 33–7 | 8.9 | 4 | 3 | 2.5 | 1.5 | 0 | 0 | · | · | |
| 1 | W 38–0 | 7.2 | 2 | 1 | 1 | 1 | 0 | 0 | · | · | |
| 2 | @ | W 38–32 | — | no stats recorded | |||||||
| 3 | @ | W 31–10 | 6.1 | 0 | 0 | 0 | 0 | 0 | 1 | · | · |
| 5 | W 28–0 | 8.5 | 3 | 2 | 1.5 | 1.5 | 1 | 0 | · | · | |
| 6 | @ | L 7–13 | 8.2 | 6 | 1 | 1 | 1 | 1 | 0 | · | · |
| 7 | W 31–17 | 6.3 | 1 | 1 | 1 | 0 | 0 | 0 | · | · | |
| 8 | @ | L 16–21 | 5.3 | 1 | 0 | 0 | 0 | 1 | 0 | · | · |
| 9 | W 31–7 | 7.6 | 2 | 1 | 1.5 | 1 | 0 | 0 | · | · | |
| 2026 · 8 games | 7.3 | 19 | 9 | 8.5 | 6 | 3 | 1 | · | · | ||
FBS rank among qualifying players
| Defense | 2026 | FBS rank |
|---|---|---|
| Tackles | 19 | 1391st / 5664 |
| Solo | 9 | — |
| Tackles for loss | 8.5 | 39th / 2634 |
| Sacks | 6 | 17th / 1383 |
| QB hurries | 3 | 231st / 1549 |
| Passes defended | 1 | 898th / 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 | Snap share |
|---|---|---|---|---|---|
| Wk 1 · Jacksonville State | ✓ DE | 54 | ~36 (14–54) | 4 | 67% |
| Wk 1 · Fordham | ✓ DE | 48 | ~24 (9–38) | 2 | 50% |
| Wk 2 · Air Force | ✓ DE | 60 | · | · | — |
| Wk 3 · Sacramento State | ✓ DE | 66 | ~29 (11–46) | 1 | 44% |
| Wk 5 · Wyoming | ✓ DE | 49 | ~30 (12–47) | 3 | 61% |
| Wk 6 · UNLV | ✓ DE | 63 | ~40 (20–50) | 6 | 63% |
| Wk 7 · Nevada | — | 57 | ~22 (9–35) | 1 | 39% |
| Wk 8 · New Mexico | ✓ DE | 58 | ~25 (10–39) | 1 | 43% |
| Wk 9 · UTEP | — | 50 | ~23 (9–36) | 2 | 46% |
| Season | 7 GS | 511 | 229 (146–294) | 20 | 45% |
19 DLs on the North Dakota State roster, ordered by tkl
| # | Player | Pos | Class | Tkl | TFL | Sacks | INT | PD |
|---|---|---|---|---|---|---|---|---|
| Keenan Wilson | DT | 31 | 2 | 0 | — | 0 | ||
| 94 | Logan Larson | DT | SR | 26 | 5 | 1.5 | — | 4 |
| 11 | Matthew Stenbroten | DE | SO | 25 | 3.5 | 1 | — | 1 |
| 9 | Kelton McCaslin | DE | SR | 19 | 8.5 | 6 | — | 1 |
| Zach Vanderpool | DT | 10 | 0 | 0 | — | 1 | ||
| 93 | Anthony Okes | DE | JR | 7 | 0.5 | 0 | — | 0 |
| 99 | Obald Niyonkuru | DT | JR | 7 | 0 | 0 | — | 0 |
| 0 | Victor Isele | DE | JR | 6 | 1.5 | 0.5 | — | 0 |
| 60 | Thomas Roberts | DT | FR | 5 | 1 | 1 | — | 0 |
| Alijah Wayne | DT | 4 | 0 | 0 | — | 0 | ||
| 48 | Blake Schiltz | DE | FR | 3 | 1 | 1 | — | 0 |
| 56 | Allante Burley | DE | SR | 2 | 0 | 0 | — | 0 |
| 53 | Chase Evink | DT | FR | 1 | 0 | 0 | — | 0 |
| 58 | Zach Hellendrung | DT | FR | — | — | — | — | — |
| 64 | Jason Hunter | DT | FR | — | — | — | — | — |
| 65 | Brody Clubb | DT | FR | — | — | — | — | — |
| 90 | Truman Griffith | DE | SO | — | — | — | — | — |
| 92 | Daniel Devine | DE | FR | — | — | — | — | — |
| 98 | Jack Hansen | DT | SO | — | — | — | — | — |
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 →