Quarterback, Army, 2015–⁠19

Kelvin Hopkins Jr.

Number
No. 8
Height
5′10″
Weight
205 lb
Class (2019)
Senior
Hometown
Charlotte, NC

Kelvin Hopkins Jr. played quarterback at Army (2015–⁠19).

At a glance

Best season
1,026
Passing yards, 2018 (Army, 11–⁠2)
Best game
170 yards
Vs. Houston, bowl season 2018: No. 3 rushing game in FBS that week
National rank
No. 7
In FBS in rushing touchdowns, 2018

Career highs

197passing yards, career highat Duke, 2018216rushing yards, career highvs. VMI, 20195rushing touchdowns, career highvs. Houston, 2018

Passing

Passing yards, season by season, with his team’s record
SeasonTeamCmpAttPctYdsY/ATDInt
2017Army61833.3764.211
2018Army519255.41,02611.262
2019Army337742.95777.546
Career9018748.11,6799.0119

Rushing

SeasonTeamCarYdsAvgTDLong
2017Army7405.7022
2018Army2081,0224.91777
2019Army1397185.2863
Career3541,7805.02577

Season lines from CollegeFootballData, regular season and bowls.

On the roster

SeasonTeamNo.PosClassHtWt
2016Army8QBFr.
2017Army8QBSo.
2018Army8QBJr.
2019Army8QBSr.5′10″205

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/playPctileMedianTotalUsageAdj. passAdj. rush
2017Army250.15––3.86%––
2018Army2960.4797th (n=160)0.26139.535%0.570.34
2019Army2160.2543rd (n=155)0.2754.829%0.110.22

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). Adjusted pass and rush: EPA per play adjusted for the defenses faced (CollegeFootballData’s WEPA). From CollegeFootballData, 2013 on.

Game by game

2019 Army 11 games, 577 passing yards, 4 TD; 718 rushing yards, 8 TD
DateOpponentResultCmpAttYdsTDIntRush
Aug 30vs.RiceW 14–⁠738531080
Sep 7atMichiganL 21–⁠2424430141
Oct 5vs.TulaneL 33–⁠4292417011132
Oct 12atWestern KentuckyL 8–⁠17512711031
Oct 19atGeorgia StateL 21–⁠28610650170
Oct 26vs.San José StateL 29–⁠3423501025
Nov 2atAir ForceL 13–⁠17030002
Nov 9vs.MassachusettsW 63–⁠70100030
Nov 16vs.VMIW 47–⁠6474901216
Nov 30atHawai’iL 31–⁠5213690187
Dec 14vs.NavyL 7–⁠31127014
2018 Army 12 games, 1,026 passing yards, 6 TD; 1,022 rushing yards, 17 TD
DateOpponentResultCmpAttYdsTDIntRush
Aug 31atDukeL 14–⁠3410211971037
Sep 8vs.LibertyW 38–⁠1427611059
Sep 15vs.Hawai’iW 28–⁠2161016200110
Sep 22atOklahomaL 21–⁠28374001102
Sep 29atBuffaloW 42–⁠1345911189
Oct 13vs.San José StateW 52–⁠325541099
Oct 27atEastern MichiganW 37–⁠227812620105
Nov 3vs.Air ForceW 17–⁠1435440075
Nov 10vs.LafayetteW 31–⁠1356950022
Nov 17vs.ColgateW 28–⁠1426250090
Dec 8vs.NavyW 17–⁠1049610064
Dec 22 ✦vs.HoustonW 70–⁠14337000170
2017 Army 7 games, 76 passing yards, 1 TD
DateOpponentResultCmpAttYdsTDIntRush
Sep 1vs.FordhamW 64–⁠6–––––7
Sep 16atOhio StateL 7–⁠3801000–
Sep 23atTulaneL 17–⁠21020015
Sep 30vs.UTEPW 35–⁠2101000–
Oct 7atRiceW 49–⁠121190022
Oct 14vs.Eastern MichiganW 28–⁠2701000–
Oct 21vs.TempleW 31–⁠2851267106

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.