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 | 1 | 1083rd / 1911 |
| Run stops | 9 | 659th / 3263 |
| Sacks | 1 | — |
| Pass breakups | 2 | — |
| Interceptions | 0 | — |
| Forced fumbles | 0 | — |
| Tackles | 12 | — |
Where Johnson'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.
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 | South Alabama#102 · 4-3 | 7 | 50% | 13 | 1.5 | 1.5 | 0 | 2 | 3 |
| 2025 | South Alabama#107 · 4-8 | 10 | 35% | 15 | 1.5 | 0 | 0 | 1 | 3 |
Past seasons are summed from ESPN box scores; success rates and snap shares come from the play-by-play. Stephen Johnson's team rank is that season's final TDC rank. A dash means the stat wasn't recorded.
Stephen Johnson'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 | 13 | 1626th / 5408 |
| Solo | 3 | — |
| Tackles for loss | 1.5 | 1055th / 2450 |
| Sacks | 1.5 | 381st / 1212 |
| QB hurries | 0 | — |
| Passes defended | 2 | 337th / 1589 |
| 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 · SE Louisiana | ✓ DL | 37 | ~20 (8–32) | 2 | · | 54% |
| Wk 2 · Tulane | ✓ DL | 51 | ~32 (12–50) | 3 | · | 63% |
| Wk 3 · Ohio | — | 59 | ~36 (14–57) | 3 | · | 61% |
| Wk 4 · Kentucky | ✓ DL | 68 | ~28 (11–44) | 1 | · | 41% |
| Wk 5 · UL Monroe | ✓ DL | 69 | ~37 (14–58) | 3 | · | 54% |
| Wk 6 · Arkansas State | — | 70 | ~40 (20–50) | 2 | · | 57% |
| Wk 8 · Marshall | ✓ DL | 66 | ~19 (7–30) | 1 | 1 | 29% |
| Season | 5 GS | 420 | 212 (135–272) | 15 | 1 | 50% |
9 DLs on the South Alabama roster, ordered by tkl
| # | Player | Pos | Class | Tkl | TFL | Sacks | INT | PD |
|---|---|---|---|---|---|---|---|---|
| 18 | Masey Lewis | DL | SR | 24 | 3 | 1 | 1 | 0 |
| 90 | E'Mauri Smiley | DL | SO | 14 | 2.5 | 1 | — | 1 |
| 41 | Tyler Carter | DL | JR | 13 | 0.5 | 0 | — | 0 |
| 56 | Stephen Johnson | DL | SR | 13 | 1.5 | 1.5 | — | 2 |
| 49 | Tre Brown | DL | SR | 11 | 0.5 | 0 | — | 0 |
| 94 | Andrew Hines | DL | SO | 4 | 0.5 | 0 | — | 0 |
| 39 | Rodney Hunter | DL | JR | 1 | 0 | 0 | — | 0 |
| Andrew Washburn | DL | 1 | 0 | 0 | — | 0 | ||
| 80 | Brayden Hurst | DL | 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. South Alabama depth chart →