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 | 6 | — |
| Target share | 5.7% | — |
| Catch rate | 50.0% | — |
| Success rate per target | 16.7% | — |
| Yards per target | 2.0 | — |
| Explosive catches | 0.0% | — |
| Deep-target rate | 0.0% | — |
| 3rd-down targets | 1 | — |
| Red-zone targets | 2 | — |
Where Foley'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 Foley’s games here), so treat the maps as a sample.
2 seasons at 2 schools 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 | Louisville#15 · 5-3 | 6 | 26% | 3 | 12 | 0 | 5.7% |
| 2025 | Tulsa#116 · 4-8 | 11 | 65% | 37 | 528 | 7 | 13.9% |
Past seasons are summed from ESPN box scores; success rates and snap shares come from the play-by-play. Brody Foley's team rank is that season's final TDC rank. A dash means the stat wasn't recorded.
Brody Foley'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 | vs | L 38–41 | 3.2 | 1 | 3 | 3.0 | 0 | 3 |
| 2 | W 59–13 | 5.1 | 1 | 10 | 10.0 | 0 | 10 | |
| 3 | W 41–31 | — | no stats recorded | |||||
| 4 | L 27–30 | — | no stats recorded | |||||
| 5 | @ | L 28–31 | — | no stats recorded | ||||
| 6 | W 44–20 | — | no stats recorded | |||||
| 7 | @ | W 34–26 | — | no stats recorded | ||||
| 9 | W 52–24 | 2.2 | 1 | -1 | -1.0 | 0 | 0 | |
| 2026 · 3 games | 3.5 | 3 | 12 | 4.0 | 0 | 10 | ||
FBS rank among qualifying players
| Receiving | 2026 | FBS rank |
|---|---|---|
| Receptions | 3 | 1350th / 2089 |
| Yards | 12 | 1705th / 2074 |
| Yards / catch | 4 | — |
| Touchdowns | 0 | — |
| Long | 10 | — |
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 | Penalties | Snap share |
|---|---|---|---|---|---|---|
| Wk 1 · Ole Miss | ✓ TE | 68 | ~26 (12–37) | 1 | · | 38% |
| Wk 2 · Villanova | — | 65 | ~27 (13–39) | 2 | · | 42% |
| Wk 4 · Wake Forest | ✓ TE | 74 | · | · | · | — |
| Wk 5 · NC State | — | 56 | · | · | 1 | — |
| Wk 7 · Syracuse | ✓ TE | 61 | ~38 (18–54) | 2 | · | 62% |
| Wk 9 · Stanford | — | 62 | ~38 (18–54) | 1 | · | 61% |
| Season | 3 GS | 504 | 129 (89–173) | 6 | 1 | 26% |
7 TEs on the Louisville roster, ordered by rec
| # | Player | Pos | Class | Rec | Yds | TD | Tgt share | EPA/play |
|---|---|---|---|---|---|---|---|---|
| 88 | Jaleel Skinner | TE | SR | 17 | 293 | 3 | 11% | +0.93 |
| 80 | Brody Foley | TE | SR | 3 | 12 | 0 | 5% | -0.93 |
| 85 | Justyn Reid | TE | SR | 2 | 35 | 0 | 4% | +1.06 |
| 15 | Julius Miles | TE | FR | — | — | — | 5% | -0.52 |
| 44 | Travis Egan | TE | SR | — | — | — | — | — |
| 87 | Dylan Mesman | TE | JR | — | — | — | — | — |
| 90 | Hamilton Atkins | TE | JR | — | — | — | — | — |
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. Louisville depth chart →