Computed from every play, garbage time excluded. FBS rank among players with enough volume
| Defense | Value | FBS rank |
|---|---|---|
| Havoc plays | 3 | 802nd / 2573 |
| Tackles for loss | 3 | 376th / 1911 |
| Run stops | 6 | 1146th / 3263 |
| Sacks | 0 | — |
| Pass breakups | 0 | — |
| Interceptions | 0 | — |
| Forced fumbles | 0 | — |
| Tackles | 7 | — |
2 seasons 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 | Ball State#133 · 2-5 | 7 | 20% | 12 | 5 | 0 | 0 | 0 | 3 |
| 2025 | Ball State#132 · 4-8 | 6 | 8% | 7 | 1 | 0 | 0 | 0 | 1 |
Past seasons are summed from ESPN box scores; success rates and snap shares come from the play-by-play. Justin Thomas's team rank is that season's final TDC rank. A dash means the stat wasn't recorded.
Justin Thomas'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 3–56 | 6.0 | 2 | 2 | 1 | 0 | 0 | 0 | · | · |
| 2 | W 41–17 | 4.5 | 2 | 0 | 0 | 0 | 0 | 0 | · | · | |
| 3 | @ | L 15–51 | 5.9 | 2 | 1 | 1 | 0 | 0 | 0 | · | · |
| 4 | @ | L 13–26 | 5.6 | 1 | 1 | 1 | 0 | 0 | 0 | · | · |
| 5 | L 24–39 | 2.7 | 1 | 0 | 0 | 0 | 0 | 0 | · | · | |
| 6 | @ | L 14–45 | 6.1 | 3 | 2 | 1 | 0 | 0 | 0 | · | · |
| 7 | @ | W 32–31 | 5.6 | 1 | 1 | 1 | 0 | 0 | 0 | · | · |
| 2026 · 7 games | 5.2 | 12 | 7 | 5 | 0 | 0 | 0 | · | · | ||
FBS rank among qualifying players
| Defense | 2026 | FBS rank |
|---|---|---|
| Tackles | 12 | 1747th / 5408 |
| Solo | 7 | — |
| Tackles for loss | 5 | 136th / 2450 |
| Sacks | 0 | — |
| QB hurries | 0 | — |
| Passes defended | 0 | — |
| 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 | Opp. plays | Est. snaps | Plays made | Penalties | Snap share |
|---|---|---|---|---|---|
| Wk 1 · Ohio State | 72 | ~27 (3–49) | 2 | · | 38% |
| Wk 2 · Stony Brook | 64 | ~14 (0–64) | 2 | · | 22% |
| Wk 3 · Liberty | 64 | ~17 (2–31) | 2 | · | 27% |
| Wk 4 · Kent State | 66 | ~3 (0–17) | 1 | · | 5% |
| Wk 5 · Toledo | 86 | ~· | 1 | · | 0% |
| Wk 6 · Northwestern | 55 | ~28 (3–51) | 3 | 1 | 51% |
| Wk 7 · Bowling Green | 58 | ~3 (0–17) | 1 | · | 5% |
| Season | 465 | 92 (0–170) | 12 | 1 | 20% |
13 LBs on the Ball State roster, ordered by tkl
| # | Player | Pos | Class | Tkl | TFL | Sacks | INT | PD |
|---|---|---|---|---|---|---|---|---|
| 16 | Kaleb Stewart | LB | JR | 35 | 2.5 | 1.5 | — | 0 |
| 6 | Cincear Lewis | LB | SR | 33 | 0.5 | 0 | — | 0 |
| 27 | Gavin Forsha | LB | SR | 32 | 3 | 1 | — | 0 |
| 26 | Lucas Szymborski | LB | SO | 22 | 1.5 | 0 | — | 1 |
| Mikeah Webster | LB | 21 | 3 | 0 | — | 1 | ||
| 11 | Layton Starks | LB | JR | 19 | 3 | 1 | — | 0 |
| 9 | Justin Thomas | LB | SR | 12 | 5 | 0 | — | 0 |
| 31 | Jared Badie | LB | SR | 8 | 1.5 | 1 | — | 1 |
| 48 | Sam Feeney | LB | JR | 7 | 0 | 0 | — | 0 |
| 40 | Gannon Knowles | LB | FR | 1 | 0 | 0 | — | 0 |
| 15 | Jovan Clark | LB | SO | — | — | — | — | — |
| 36 | Cole Mynett | LB | FR | — | — | — | — | — |
| 50 | Carsen Burckhardt | LB | 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. Ball State depth chart →