EPA = expected points added per play. Compared with every FBS RB who qualifies
Computed from every play, garbage time excluded. FBS rank among players with enough volume
| Rushing | Value | FBS rank |
|---|---|---|
| Carries | 96 | — |
| Success rate | 31.2% | 320th / 332 |
| Explosive run rate | 9.4% | 263rd / 332 |
| Stuffed at the line | 31.2% | 330th / 332 |
| First downs | 14 | — |
| Red-zone carries | 10 | — |
| Goal-line carries | 3 | — |
| Receiving | Value | FBS rank |
|---|---|---|
| Targets | 16 | — |
| Target share | 9.7% | — |
| Catch rate | 81.2% | — |
| Success rate per target | 43.8% | — |
| Yards per target | 6.1 | — |
| Explosive catches | 6.2% | — |
| Deep-target rate | 0.0% | — |
| 3rd-down targets | 1 | — |
| Red-zone targets | 0 | — |
Where Roche's plays went: throw and catch spots, air yards and yards after the catch, read from the play-by-play
2025 season. ESPN's play-by-play only has throw and catch spots for part of 2025 (4 of Roche’s games here), so treat the maps as a sample.
4 seasons since 2014 · box-score totals, snap share estimated from play-by-play
| Season | Team | G | Snaps | Car | Rush yds | Y/C | Rush TD | Rush SR | Rec | Rec yds | Rec TD | Tgt share |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2026 so far | Old Dominion#114 · 2-7 | 9 | 53% | 109 | 401 | 3.7 | 0 | 31.2% | 14 | 105 | 0 | 9.7% |
| 2025 | Old Dominion#32 · 10-3 | 11 | 33% | 111 | 630 | 5.7 | 4 | 51.0% | 5 | 31 | 0 | 6.1% |
| 2024 | Old Dominion#74 · 5-7 | 10 | 26% | 43 | 274 | 6.4 | 2 | 50.0% | 7 | 52 | 1 | 5.8% |
| 2023 | Old Dominion#94 · 6-7 | 5 | 11% | 31 | 191 | 6.2 | 0 | 30.0% | 4 | 19 | 0 | 7.5% |
Past seasons are summed from ESPN box scores; success rates and snap shares come from the play-by-play. Devin Roche's team rank is that season's final TDC rank. A dash means the stat wasn't recorded.
Devin Roche'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
| Rushing | Receiving | Returns | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Wk | Opponent | Result | Game score | Car | Yds | Y/C | TD | Long | Rec | Yds | Y/R | TD | Long | KR | KR yds | PR | PR yds | TD |
| 1 | W 31–10 | 4.7 | 13 | 45 | 3.5 | 0 | 18 | · | · | · | · | · | · | · | 4 | 33 | · | |
| 2 | @ | L 21–44 | 5.4 | 9 | 45 | 5.0 | 0 | 21 | · | · | · | · | · | · | · | · | · | · |
| 3 | L 17–20 | 6.5 | 18 | 102 | 5.7 | 0 | 41 | 1 | 25 | 25.0 | 0 | 25 | · | · | 3 | 38 | · | |
| 4 | L 20–46 | 2.1 | 8 | 18 | 2.3 | 0 | 7 | 2 | 23 | 11.5 | 0 | 13 | · | · | 2 | 5 | · | |
| 5 | @ | L 10–42 | 8.6 | 9 | 37 | 4.1 | 0 | 20 | · | · | · | · | · | · | · | 1 | 78 | 1 |
| 6 | @ | W 10–3 | 6.2 | 23 | 101 | 4.4 | 0 | 32 | 1 | 4 | 4.0 | 0 | 4 | · | · | · | · | · |
| 7 | L 15–23 | 1.5 | 15 | 25 | 1.7 | 0 | 7 | 2 | 7 | 3.5 | 0 | 11 | · | · | · | · | · | |
| 8 | @ | L 0–26 | 2.4 | 8 | 9 | 1.1 | 0 | 5 | 2 | 5 | 2.5 | 0 | 7 | 1 | 10 | · | · | · |
| 9 | L 23–36 | 6.4 | 6 | 13 | 2.2 | 0 | 7 | 6 | 41 | 6.8 | 0 | 13 | · | · | 4 | 26 | · | |
| 2026 · 9 games | 4.9 | 109 | 395 | 3.6 | 0 | 41 | 14 | 105 | 7.5 | 0 | 25 | 1 | 10 | 14 | 180 | 1 | ||
FBS rank among qualifying players
| Rushing | 2026 | FBS rank |
|---|---|---|
| Carries | 109 | — |
| Yards | 401 | 131st / 1519 |
| Yards / carry | 3.7 | 256th / 312 |
| Touchdowns | 0 | — |
| Long | 41 | — |
| Receiving | 2026 | FBS rank |
|---|---|---|
| Receptions | 14 | 510th / 2089 |
| Yards | 105 | 747th / 2074 |
| Yards / catch | 7.5 | — |
| Touchdowns | 0 | — |
| Long | 25 | — |
| Defense | 2026 | FBS rank |
|---|---|---|
| Tackles | 1 | 4438th / 5664 |
| Solo | 0 | — |
| Tackles for loss | 0 | — |
| Sacks | 0 | — |
| QB hurries | 0 | — |
| Passes defended | 0 | — |
| Defensive TD | 1 | — |
| Fumbles | 2026 | FBS rank |
|---|---|---|
| Fumbles | 4 | — |
| Lost | 3 | — |
| Recovered | 0 | — |
| Kick returns | 2026 | FBS rank |
|---|---|---|
| Returns | 1 | — |
| Yards | 10 | — |
| Average | 10 | — |
| Touchdowns | 0 | — |
| Long | 10 | — |
| Punt returns | 2026 | FBS rank |
|---|---|---|
| Returns | 14 | — |
| Yards | 180 | — |
| Average | 12.9 | — |
| Touchdowns | 1 | — |
| Long | 78 | — |
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 | Team plays | Est. snaps | Plays involved | Plays made | Special teams | Snap share |
|---|---|---|---|---|---|---|---|
| Wk 1 · Norfolk State | ✓ RB | 55 | ~26 (18–34) | 13 | · | 4 | 47% |
| Wk 2 · Virginia Tech | ✓ RB | 49 | ~27 (18–35) | 9 | · | · | 55% |
| Wk 3 · East Carolina | ✓ RB | 64 | ~43 (36–48) | 20 | · | 3 | 67% |
| Wk 4 · James Madison | ✓ RB | 68 | ~29 (20–38) | 10 | · | 2 | 43% |
| Wk 5 · Georgia State | ✓ RB | 63 | ~23 (16–30) | 9 | · | 1 | 37% |
| Wk 6 · App State | ✓ RB | 81 | ~55 (46–61) | 24 | · | · | 68% |
| Wk 7 · Georgia Southern | ✓ RB | 56 | ~38 (26–49) | 18 | · | · | 68% |
| Wk 8 · Louisiana Tech | ✓ RB | 55 | ~27 (18–35) | 10 | · | 1 | 49% |
| Wk 9 · Marshall | ✓ RB | 76 | ~32 (22–41) | 13 | 1 | 4 | 42% |
| Season | 9 GS | 567 | 300 (248–380) | 126 | 1 | 15 | 53% |
6 RBs on the Old Dominion roster, ordered by car
| # | Player | Pos | Class | Car | Yds | YPC | TD | Rec | EPA/play |
|---|---|---|---|---|---|---|---|---|---|
| 3 | Devin Roche | RB | JR | 109 | 401 | 3.7 | 0 | 14 | -0.16 |
| 6 | Trey Hall | RB | SR | 36 | 106 | 2.9 | 0 | 4 | -0.33 |
| 5 | Maurki James | RB | SO | 33 | 103 | 3.1 | 4 | 4 | 0.00 |
| 26 | Ja'Varien Salter | RB | JR | 10 | 47 | 4.7 | 0 | — | +0.17 |
| 20 | CJ Jackson III | RB | FR | — | — | — | — | — | — |
| 28 | Troy Marquez | RB | 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 6+ plays per team game. Old Dominion depth chart →