EPA = expected points added per play. Compared with every FBS WR/TE who qualifies
2025 season. ESPN's play-by-play only has throw and catch spots for part of 2025 (3 of Goodwin’s games here), so treat the maps as a sample.
2 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 | Michigan#37 · 5-3 | 4 | 13% | 2 | 32 | 0 | 5.5% |
| 2025 | Michigan#26 · 9-4 | 9 | 31% | 12 | 148 | 0 | 10.3% |
Past seasons are summed from ESPN box scores; success rates and snap shares come from the play-by-play. Channing Goodwin's team rank is that season's final TDC rank. A dash means the stat wasn't recorded.
Channing Goodwin'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 | Defense | |||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Wk | Opponent | Result | Game score | Rec | Yds | Y/R | TD | Long | Tkl | Solo | TFL | Sacks | Hur | PD | INT | TD |
| 1 | W 13–12 | — | no stats recorded | |||||||||||||
| 2 | W 17–10 | — | no stats recorded | |||||||||||||
| 3 | W 52–17 | — | no stats recorded | |||||||||||||
| 4 | L 19–20 | — | no stats recorded | |||||||||||||
| 5 | @ | L 14–20 | — | · | · | · | · | · | 1 | 1 | 0 | 0 | 0 | 0 | · | · |
| 7 | W 21–18 | — | no stats recorded | |||||||||||||
| 8 | L 6–13 | 5.9 | 2 | 32 | 16.0 | 0 | 24 | · | · | · | · | · | · | · | · | |
| 9 | @ | W 28–21 | — | no stats recorded | ||||||||||||
| 2026 · 2 games | 5.9 | 2 | 32 | 16.0 | 0 | 24 | 1 | 1 | 0 | 0 | 0 | 0 | · | · | ||
FBS rank among qualifying players
| Receiving | 2026 | FBS rank |
|---|---|---|
| Receptions | 2 | 1510th / 2089 |
| Yards | 32 | 1336th / 2074 |
| Yards / catch | 16 | — |
| Touchdowns | 0 | — |
| Long | 24 | — |
| Defense | 2026 | FBS rank |
|---|---|---|
| Tackles | 1 | 4438th / 5664 |
| Solo | 1 | — |
| Tackles for loss | 0 | — |
| 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 | Start | Team plays | Est. snaps | Plays involved | Plays made | Snap share |
|---|---|---|---|---|---|---|
| Wk 1 · Western Michigan | ✓ WR | 48 | ~25 (8–34) | 1 | · | 52% |
| Wk 5 · Minnesota | — | 49 | · | · | 1 | — |
| Wk 7 · Penn State | ✓ WR | 53 | · | · | · | — |
| Wk 8 · Indiana | — | 74 | ~38 (12–52) | 2 | · | 51% |
| Season | 2 GS | 493 | 63 (28–83) | 3 | 1 | 13% |
12 WRs on the Michigan roster, ordered by rec
| # | Player | Pos | Class | Rec | Yds | TD | Tgt share | EPA/play |
|---|---|---|---|---|---|---|---|---|
| 3 | Andrew Marsh | WR | SO | 39 | 360 | 1 | 29% | +0.30 |
| 6 | JJ Buchanan | WR | SO | 38 | 602 | 5 | 29% | +0.66 |
| 12 | Salesi Moa | WR | FR | 3 | 67 | 1 | 5% | +0.29 |
| 9 | Channing Goodwin | WR | JR | 2 | 32 | 0 | 5% | +1.52 |
| 13 | Travis Johnson | WR | FR | 2 | 21 | 0 | 6% | -0.15 |
| 0 | Kendrick Bell | WR | SR | — | — | — | — | — |
| 10 | Jaime Ffrench Jr. | WR | SO | — | — | — | — | — |
| 20 | Jaylen Pile | WR | FR | — | — | — | — | — |
| 22 | Braydon Alford | WR | JR | — | — | — | — | — |
| 81 | Jamar Browder | WR | SO | — | — | — | — | — |
| 85 | Logan Forbes | WR | SR | — | — | — | — | — |
| 89 | Kaleb Schlecht | WR | SR | — | — | — | — | — |
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. Michigan depth chart →