EPA = expected points added per play. Compared with every FBS WR/TE who qualifies
Computed from every play, garbage time excluded. FBS rank among players with enough volume
| Receiving | Value | FBS rank |
|---|---|---|
| Targets | 36 | — |
| Target share | 16.7% | 257th / 534 |
| Catch rate | 75.0% | 91st / 534 |
| Success rate per target | 63.9% | 33rd / 534 |
| Yards per target | 8.6 | 216th / 534 |
| Explosive catches | 11.1% | 262nd / 534 |
| Deep-target rate | 13.9% | — |
| 3rd-down targets | 9 | — |
| Red-zone targets | 7 | — |
Where Koch's plays went: throw and catch spots, air yards and yards after the catch, read from the play-by-play
3 seasons since 2014 · box-score totals, snap share estimated from play-by-play
| Season | Team | G | Snaps | Rec | Rec yds | Rec TD | Tgt share |
|---|---|---|---|---|---|---|---|
| 2026 so far | North Texas#56 · 6-2 | 7 | 47% | 28 | 324 | 6 | 16.7% |
| 2025 | North Texas#23 · 12-2 | 1 | 3% | 2 | 17 | 0 | 4.2% |
| 2024 | North Texas#89 · 6-7 | 2 | 3% | 1 | 5 | 0 | 2.4% |
Past seasons are summed from ESPN box scores; success rates and snap shares come from the play-by-play. Kyle Koch's team rank is that season's final TDC rank. A dash means the stat wasn't recorded.
Kyle Koch'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
| Receiving | ||||||||
|---|---|---|---|---|---|---|---|---|
| Wk | Opponent | Result | Game score | Rec | Yds | Y/R | TD | Long |
| 1 | @ | L 16–52 | — | no stats recorded | ||||
| 2 | W 44–6 | — | no stats recorded | |||||
| 3 | @ | L 35–49 | 7.3 | 4 | 58 | 14.5 | 1 | 23 |
| 4 | W 63–14 | 6.1 | 3 | 37 | 12.3 | 0 | 16 | |
| 5 | @ | W 45–44 | 7.0 | 3 | 48 | 16.0 | 1 | 39 |
| 6 | W 50–10 | 7.2 | 4 | 55 | 13.8 | 1 | 18 | |
| 8 | @ | W 49–39 | 6.5 | 4 | 28 | 7.0 | 1 | 9 |
| 9 | W 48–41 | 8.4 | 9 | 78 | 8.7 | 2 | 20 | |
| 2026 · 6 games | 7.1 | 27 | 304 | 11.3 | 6 | 39 | ||
FBS rank among qualifying players
| Receiving | 2026 | FBS rank |
|---|---|---|
| Receptions | 28 | 170th / 2089 |
| Yards | 324 | 220th / 2074 |
| Yards / catch | 11.6 | 280th / 460 |
| Touchdowns | 6 | 22nd / 914 |
| Long | 39 | — |
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 | Snap share |
|---|---|---|---|---|---|
| Wk 1 · Indiana | ✓ WR | 67 | · | · | — |
| Wk 3 · Texas State | — | 85 | ~48 (32–58) | 6 | 56% |
| Wk 4 · Houston Christian | ✓ WR | 66 | ~35 (11–48) | 3 | 53% |
| Wk 5 · Tulsa | — | 84 | ~32 (10–44) | 4 | 38% |
| Wk 6 · Charlotte | — | 70 | ~42 (28–51) | 6 | 60% |
| Wk 8 · Navy | — | 52 | ~44 (29–52) | 6 | 85% |
| Wk 9 · Florida Atlantic | ✓ WR | 85 | ~69 (45–84) | 12 | 81% |
| Season | 3 GS | 576 | 270 (227–315) | 37 | 47% |
13 WRs on the North Texas roster, ordered by rec
| # | Player | Pos | Class | Rec | Yds | TD | Tgt share | EPA/play |
|---|---|---|---|---|---|---|---|---|
| 13 | Justin Stevenson | WR | SR | 50 | 781 | 8 | 22% | +0.83 |
| 14 | Kyle Koch | WR | JR | 28 | 324 | 6 | 16% | +0.85 |
| 0 | Corri Milliner | WR | SR | 20 | 325 | 1 | 16% | +0.58 |
| 6 | Josiah Martin | WR | JR | 15 | 182 | 0 | 8% | +0.13 |
| 80 | Baron Tipton | WR | JR | 14 | 208 | 3 | 7% | +0.99 |
| 3 | TJ Chukwurah | WR | SR | 8 | 101 | 1 | 5% | +0.98 |
| 19 | Grayson O'Bara | WR | SR | 5 | 88 | 0 | 8% | +0.24 |
| 11 | Dalton Carnes | WR | SR | 4 | 72 | 0 | 6% | +0.67 |
| 8 | Shandon King | WR | SR | — | — | — | — | — |
| 16 | James Tyre | WR | SR | — | — | — | — | — |
| 18 | Lathon Latiolais | WR | FR | — | — | — | — | — |
| 84 | Jackson Muckelroy | WR | SR | — | — | — | — | — |
| 87 | Eli Nikolas | WR | 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 4+ plays per team game. North Texas depth chart →