Receiver, Richmond (from Duke), 2015–⁠19

Keyston Fuller

Lettered 2017–⁠18 at Duke (school media guide)

Number
No. 7
Height
6′0″
Weight
185 lb
Class (2019)
Junior
Hometown
Griffin, GA

Keyston Fuller played receiver at Duke (2015–⁠18) and Richmond (2019).

Career highs

6catches, career highat Boston College, 2019

Receiving

Receiving yards, season by season, with his team’s record
SeasonTeamRecYdsAvgTDLong
2017Duke5173.407
2018Duke2157.508
2019Richmond66010.0135
Career13927.1135

Season lines from CollegeFootballData, regular season and bowls.

On the roster

SeasonTeamNo.PosClassHtWt
2015Duke7WR
2016Duke7WRRS
2017Duke7WRFr.
2018Duke7WRSo.
2019Richmond7WRJr.6′0″185

As each season’s roster listed the player (CollegeFootballData). Classes before the latest listing are counted back from it; “Yr 1” is the year on file where that count can’t place a season he played (a redshirt, transfer or 2020 year); height and weight as last listed.

Per play

SeasonTeamPlaysEPA/playPctileMedianTotalUsage
2017Duke5-0.14––-0.7–
2018Duke3-0.97––-2.9–
2019Richmond (FCS)70.47––3.3–

Expected points added: how much the player’s plays moved the team’s expected score, per play and in total. Plays: total EPA divided by EPA per play, the plays the source credits to him (for a receiver roughly his catches and runs, not every target; for a passer, not every attempt), so it can differ from attempts plus carries. Percentile: against the position’s regulars that season across all divisions on file (quarterbacks with 150+ plays, backs 60+, receivers and tight ends 30+), with how many there were (n) and their median; a dash means too few plays to rank. A season in progress uses the full-season bar scaled by games played, never below 75 plays for quarterbacks, 30 for backs and 20 for receivers. The cohort grows or shrinks with the source’s coverage each season (2025 lists far more players), so compare percentiles rather than raw EPA across years. FCS seasons are marked. Usage: the share of the team’s plays the player was part of (shown from 20 plays). From CollegeFootballData, 2013 on.

Game by game

2019 Richmond 1 game, 6 catches, 60 yards, 1 TD
DateOpponentResultRecYdsTDLong
Sep 7atBoston CollegeL 13–⁠45660135

No box score in the source for Aug 29 vs. Jacksonville; Sep 14 vs. Elon; Sep 28 at Fordham; Oct 5 vs. UAlbany; Oct 12 at Maine; Oct 19 vs. Yale; Oct 26 at Delaware; Nov 2 vs. Stony Brook; Nov 9 at Villanova; Nov 16 at James Madison; Nov 23 vs. William & Mary, so those games are not listed.

2018 Duke 4 games, 2 catches, 15 yards
DateOpponentResultRecYdsTDLong
Sep 22vs.North Carolina CentralW 55–⁠131808
Sep 29vs.Virginia TechL 14–⁠31––––
Nov 3atMiamiW 20–⁠121707
Dec 27 ✦vs.TempleW 56–⁠27––––
2017 Duke 3 games, 5 catches, 17 yards
DateOpponentResultRecYdsTDLong
Sep 2vs.North Carolina CentralW 60–⁠731307
Sep 23atNorth CarolinaW 27–⁠171101
Oct 28atVirginia TechL 3–⁠241303

Box scores from CollegeFootballData, 2004 on. ✦ postseason; ★ a career high on file.

Is this you, or do you know of something wrong or missing here? Suggest a correction. We check each one against a source before changing the page.