Charlotte
- SP+
- −26.7 (#134)
- FPI
- −21.3 (#134)
- SRS
- −21.8 (#164)
- Resume
- #133
Next game
Advanced stats
CollegeFootballData's play-by-play measures of how efficient and explosive a team was, placed against every other FBS team. How it works →
Profile vs. FBS, 2025
Farther out is better on every spoke. Dashed ring: the FBS median.
- EPA per playExpected points added on an average snap: how much each play moved the scoring odds.
- Success rateShare of snaps that stayed on schedule: half the yards needed on 1st down, 70% on 2nd, all of them on 3rd or 4th.
- ExplosivenessAverage EPA on the successful snaps: how big the good plays were.
- Rushing EPAEPA per designed run.
- Passing EPAEPA per pass play.
- Standard downsSuccess rate on downs where either a run or a pass makes sense, like 1st and 10 or 3rd and 2.
- Passing downsSuccess rate on downs that all but force a pass, like 2nd and 8 or longer, or 3rd and 5 or longer.
- Line yardsRushing yards per carry credited to the offensive line, weighting the first few yards most.
- Stuff rateShare of runs stopped at or behind the line of scrimmage.
- HavocShare of snaps with a tackle for loss, sack, forced fumble, interception or pass breakup.
Percentiles among the 136 FBS teams this season, where higher is better for the offense and the defense alike (a defense's numbers are what it allowed). The line in each bar is the FBS median. Garbage time excluded. Source: CollegeFootballData.
Expected points
YardLine's expected-points model values every snap by what a drive from that spot is worth on average, so a drive can be judged against where it started. How it works →
Drives vs. expectation, 2025
Points over expected per drive, from where each drive started.
Per drive against an average FBS opponent, neutral field.
Points over expected per trip inside the opponent's 40.
Average expected points where drives started.
Every snap has an expected-points value: what a drive from that spot, down and distance is worth on average. A drive over expected beat its starting spot; defense counts what Charlotte allowed, so lower is better. The adjusted number fits every team against the opponents it actually played, so it leans toward average early in a season. Ranks are among FBS teams.
Game by game
Bars above the line: better than expected for Charlotte.
Players
YardLine's player model credits every play's value to the players involved, so each one's season can be measured in wins above a typical backup. How it works →
Players, 2025
Quarterback is the most valuable starting slot by a wide margin: the gap between a top-decile and a median FBS quarterback is about twice the gap at any other position.
- Conner HarrellQB68 plays · +0.259 pts/play · 150th of 231 QBs0.33WAR0.19 to 0.46
- Grayson LoftisQB112 plays · +0.123 pts/play · 161st of 231 QBs0.26WAR0.04 to 0.47
- Javen NicholasWR40 plays · +0.174 pts/play · 143rd of 451 WRs0.13WAR0.05 to 0.22
- Sean BrownWR23 plays · +0.250 pts/play · 169th of 451 WRs0.11WAR0.07 to 0.14
- Zach WilckeQB21 plays · +0.128 pts/play · 209th of 231 QBs0.05WAR0.02 to 0.08
- Gus McGeeTE17 plays · +0.109 pts/play · 123rd of 213 TEs0.03WAR0.01 to 0.06
By position group, against FBS
Linemen and defenders are valued as units, in points per game against the median FBS unit, because play-by-play doesn't say who was on the field. Players are valued against a replacement-level backup, so the two aren't added together.
Wins above replacement credits each play's expected points to the players involved, adjusted for the opponent, and compares Charlotte's players with a typical backup; 53 points make a win. Only snaps while the game was in doubt count, so a starter on a team that blows opponents out plays fewer of them: read value per play beside WAR. The line under each player (or the range on a phone) is the 90% interval. Ranks are among FBS teams and players. How this works
Transfer portal, 2025
34 players transferred in and 37 out. WAR is each one's 2024 season, before the move. Every team's portal
In 2025, the arrivals have added 0.72 WAR at Charlotte and the departures 0.98 wherever they went.
- Jayden McGowanWR · 3★from Boston College0.00-
- Grayson LoftisQB · 3★from Duke0.000.26
- Conner HarrellQB · 3★from North Carolina-0.33
- Javen NicholasWR · 3★from LSU-0.13
The other 30
- Braden MullenEDGE · 3★from Dartmouth--
- Caleb IrvingDL · 3★from Purdue--
- Cameren SmithRB · 3★from Western Illinois--
- Cheick KabaDL · 3★from Troy--
- Collin GillCB · 3★from Georgia--
- Curtis SimpsonEDGE · 3★from North Carolina--
- Donald Chaney Jr.RB · 3★from Louisville--
- Dwight Bootle IICB · 3★from Nebraska--
- E. Jai MasonWR · 3★from Samford--
- Gavin ShipmanCB · 3★from Harvard--
- Gavin WillisLB · 3★from Bucknell--
- Jamarrion SolomonDL · 3★from Florida International--
- Jariel CobbRB · 3★from North Carolina--
- Jaylen HamptonWR · 3★from Western Kentucky--
- Jesse RamilOT · 3★from Mississippi State--
- Jorel LiverpoolEDGE · 3★from Wagner--
- Kadin SchmitzLB · 3★from Ohio--
- Kristos FernandezOT · 3★from LIU Post--
- Macyo WilliamsDL · 3★from Utah State--
- Mason BowersIOL · 3★from Kennesaw State--
- Parker StartzEDGE · 3★from Ohio--
- Rod GreenIOL · 3★from Purdue--
- Shay TaylorLB · 3★from Ohio--
- Stellan BowmanLB · 3★from Ohio--
- Ta'ir BrooksWR · 3★from UTEP--
- Xavier MilesDL · 3★from Syracuse--
- Thai BaldwinCB · 2★from Ball State--
- Caleb CurtainSfrom Elon--
- Colby GarfieldLSfrom Ohio--
- Liam BoydKfrom North Carolina--
- Deshawn PurdieQB · 3★to Wake Forest0.640.24
- Max BrownQB · 3★to West Virginia0.21-
- O'Mega BlakeWR · 4★to Arkansas0.170.29
- Cartevious NortonRB · 3★to South Florida0.170.02
- Hahsaun WilsonRB · 3★to UTEP0.160.06
- Terron KellmanRB · 3★to Wyoming0.080.10
The other 31
- Jairus MackWR · 3★to Western Kentucky0.070.08
- Colin WeberTE · 3★to Rutgers0.01−0.01
- Duane Thomas Jr.WR · 3★to UCF-0.09
- Lacota DippreEDGE · 3★to James Madison-0.04
- Stephen RusnakK · 3★to Cincinnati-0.08
- Dre ButlerDL · 4★to South Florida--
- Al-Ma'hi AliS · 3★to Western Kentucky--
- Avery MorrisLB · 3★to Duquesne--
- Cam BurdenLB · 3★to Memphis--
- Colin CoatesDL · 3★to Mississippi State--
- Donovan SpellmanEDGE · 3★to UNLV--
- Donta ArmstrongTE · 3★to undecided--
- Dontae BalfourCB · 3★to Texas Tech--
- Dre MartinDL · 3★to undecided--
- Elijah CulpCB · 3★to James Madison--
- Jordan Spasojevic-MokoIOL · 3★to California--
- Kainoa DavisDL · 3★to San Diego State--
- Kendall StanleyOT · 3★to Pittsburgh--
- Mitchell MayesIOL · 3★to undecided--
- Mordecai McDanielS · 3★to Oklahoma State--
- Nate SpillmanWR · 3★to undecided--
- PJ WilkinsIOL · 3★to Ole Miss--
- Terez TraynorWR · 3★to undecided--
- Jack ReynoldsWR · 2★to Gardner-Webb--
- Aidan KalerLBto Stony Brook--
- Andre WashingtonQBto Alcorn State--
- Jaavan MackCBto Western Kentucky--
- Jamari BroadyCBto Jackson State--
- Jordan HermanOTto Sacramento State--
- Malik PuryearDLto Winston-Salem State--
- Xander LambWRto undecided--
Only quarterbacks, skill players and specialists have a WAR of their own, so they make up these totals; linemen and defenders count in the moves but add none. 2024 is the player's season at his old school, 2025 his season after the move. A dash means no FBS snaps that season. Rosters tie CFBD's portal entries to players, which works for about 19 in 20 skill-position moves.
Talent and roster
How much talent the roster had, by recruiting ratings, and how much of it showed up on the field, against every other FBS team. How it works →
What it had and what it did, 2025
- Roster talent: 526, 108th of 134 in FBSRoster talent247Sports' talent composite: the recruiting ratings of every player on the roster, transfers included.
- Recruiting: 99, 125th of 134 in FBSRecruitingAverage 247Sports class score over this season's class and the three before it.
- Returning production: 24%, 85th of 132 in FBSReturning productionShare of last season's production (expected points added) by players still on the roster.
- SP+ rating: −26.7, 132nd of 134 in FBSSP+ ratingThe result: Bill Connelly's opponent-adjusted rating, points per game better than an average FBS team.
Ranks and bars among the 134 FBS teams with a talent rating this season, best first; the line in each bar is the FBS median.
Talent conversion
Charlotte's SP+ of −26.7 is 21.0 points below the −5.7 its roster talent predicts, 132nd of 134 in FBS.
The same comparison on each side of the ball, positive is better for both.
Conversion by season
Fourth downs
YardLine's fourth-down model values going for it, kicking and punting on every real fourth down, so each call can be checked against the numbers. How it works →
Fourth-down calls vs. the numbers, 2025
Calls that matched the option with the best modeled win probability.
Summed over every call that differed, in points of win probability.
Went for it when going beat every other option by a point or more.
Each real fourth down is valued three ways (go for it, kick, punt) from the score, clock and field position before the snap, using league-wide odds rather than Charlotte's own. A call that differs gives up the gap to the best option; gaps under one point are close calls, and the 2 clear-cut ones account for 0.04 of the 0.07 expected wins. The model sees the situation, not the injury report, so a call it disagrees with can still be right. Ranks are among FBS teams; 1st gave up the least.
Costliest calls against the numbers
- vs UNTQ4 13:57 4th & 11 at CLT 23, down 7Went for it; the numbers favored punting−2.6 pts
- vs UNTQ3 8:17 4th & 3 at UNT 3, tiedKicked a field goal; the numbers favored going for it−1.8 pts
- vs RICEQ2 2:23 4th & 3 at RICE 23, down 1Kicked a field goal; the numbers favored going for it (close call)−0.5 pts
- vs MONMQ2 7:07 4th & 9 at MONM 39, down 7Punted; the numbers favored going for it (close call)−0.4 pts
- vs UTSAQ4 2:15 4th & 5 at UTSA 17, down 21Went for it; the numbers favored a field goal (close call)−0.3 pts
- vs APPQ1 1:21 4th & 4 at APP 25, up 3Kicked a field goal; the numbers favored going for it (close call)−0.2 pts
- vs UNCQ3 10:39 4th & 6 at UNC 20, down 14Went for it; the numbers favored a field goal (close call)−0.2 pts
- at ECUQ1 3:04 4th & 1 at CLT 15, down 14Punted; the numbers favored going for it (close call)−0.2 pts
Every call this season (105)
- Q1 13:324th & 12 at CLT 23, tied · PuntedAgreed
- Q1 9:564th & 4 at CLT 12, up 3 · PuntedAgreed
- Q1 1:214th & 4 at APP 25, up 3 · Kicked a field goalClose call
- Q2 11:564th & 10 at CLT 23, up 3 · PuntedAgreed
- Q2 5:124th & 8 at CLT 49, down 4 · PuntedAgreed
- Q3 8:434th & 7 at CLT 28, down 8 · PuntedAgreed
- Q4 15:004th & 10 at APP 33, down 24 · Went for itClose call
- Q4 15:004th & 6 at APP 48, down 24 · Went for itClose call
- Q4 10:254th & 6 at APP 16, down 24 · Went for itAgreed
- Q4 2:504th & 14 at CLT 21, down 8 · PuntedAgreed
- Q1 12:184th & 2 at CLT 33, down 7 · PuntedAgreed
- Q1 7:134th & 15 at CLT 20, down 10 · PuntedAgreed
- Q1 4:304th & 8 at CLT 45, down 10 · PuntedAgreed
- Q2 12:404th & 4 at UNC 22, down 10 · Kicked a field goalClose call
- Q2 2:514th & 5 at UNC 9, down 7 · Kicked a field goalAgreed
- Q3 10:394th & 6 at UNC 20, down 14 · Went for itClose call
- Q3 3:544th & 10 at CLT 24, down 14 · PuntedAgreed
- Q1 8:514th & 2 at RICE 12, tied · Kicked a field goalClose call
- Q1 3:024th & 3 at CLT 32, down 4 · PuntedAgreed
- Q2 14:494th & 10 at RICE 45, down 4 · PuntedAgreed
- Q2 7:554th & 7 at RICE 8, down 4 · Kicked a field goalAgreed
- Q2 2:234th & 3 at RICE 23, down 1 · Kicked a field goalClose call
- Q2 0:004th & 5 at RICE 24, down 5 · Kicked a field goalAgreed
- Q3 10:104th & 27 at CLT 8, down 12 · PuntedAgreed
- Q3 5:334th & 18 at CLT 29, down 12 · PuntedAgreed
- Q3 0:154th & 7 at RICE 37, down 12 · Went for itAgreed
- Q4 3:444th & 18 at CLT 17, down 11 · PuntedAgreed
- Q1 12:314th & 6 at CLT 24, down 7 · PuntedAgreed
- Q1 9:254th & 10 at CLT 35, down 7 · PuntedAgreed
- Q1 5:234th & 12 at CLT 5, down 14 · PuntedAgreed
- Q1 2:404th & 9 at CLT 6, down 16 · PuntedAgreed
- Q2 12:244th & 24 at CLT 28, down 26 · PuntedAgreed
- Q2 9:214th & 5 at CLT 36, down 26 · PuntedAgreed
- Q2 5:004th & 8 at CLT 22, down 26 · PuntedAgreed
- Q3 9:394th & 5 at USF 15, down 26 · Kicked a field goalAgreed
- Q1 8:464th & 16 at CLT 48, tied · PuntedAgreed
- Q1 2:154th & 5 at CLT 29, down 7 · PuntedAgreed
- Q2 14:304th & 2 at ARMY 16, down 7 · Went for itAgreed
- Q2 1:524th & 1 at CLT 45, down 14 · Went for itAgreed
- Q2 1:144th & 5 at ARMY 48, down 14 · Went for itAgreed
- Q3 8:244th & 17 at CLT 3, down 17 · PuntedAgreed
- Q3 2:194th & 1 at CLT 34, down 24 · Went for itAgreed
- Q4 14:424th & 15 at CLT 22, down 24 · PuntedAgreed
- Q4 9:124th & 3 at CLT 43, down 24 · Went for itClose call
- Q1 9:504th & 8 at TEM 36, tied · Went for itAgreed
- Q1 1:384th & 2 at TEM 2, down 7 · Went for itAgreed
- Q2 11:494th & 9 at CLT 18, down 14 · PuntedAgreed
- Q3 14:104th & 12 at CLT 23, down 35 · PuntedAgreed
- Q3 11:034th & 11 at CLT 24, down 35 · PuntedAgreed
- Q3 9:234th & 9 at CLT 5, down 35 · PuntedAgreed
- Q4 2:584th & 1 at TEM 25, down 42 · Went for itAgreed
- Q1 13:154th & 1 at CLT 44, tied · PuntedClose call
- Q1 7:534th & 6 at UNT 6, down 7 · Kicked a field goalAgreed
- Q1 1:154th & 1 at UNT 33, down 4 · Went for itAgreed
- Q2 6:324th & 8 at CLT 47, up 7 · PuntedAgreed
- Q2 2:314th & 10 at CLT 45, tied · PuntedAgreed
- Q3 8:174th & 3 at UNT 3, tied · Kicked a field goal−1.8 pts
- Q3 4:484th & 5 at CLT 23, down 4 · PuntedAgreed
- Q3 1:544th & 11 at CLT 10, down 4 · PuntedAgreed
- Q4 13:574th & 11 at CLT 23, down 7 · Went for it−2.6 pts
- Q4 10:334th & 12 at CLT 26, down 14 · PuntedAgreed
- Q4 7:574th & 10 at CLT 40, down 20 · PuntedAgreed
- Q4 4:564th & 1 at CLT 19, down 27 · PuntedClose call
- Q1 8:304th & 17 at CLT 12, down 7 · PuntedAgreed
- Q1 3:044th & 1 at CLT 15, down 14 · PuntedClose call
- Q2 14:534th & 4 at CLT 31, down 21 · PuntedAgreed
- Q2 9:334th & 1 at ECU 20, down 28 · Went for itAgreed
- Q2 6:524th & 7 at ECU 46, down 28 · Went for itAgreed
- Q3 13:264th & 1 at CLT 34, down 21 · Went for itAgreed
- Q3 4:264th & 12 at CLT 23, down 23 · PuntedAgreed
- Q3 0:044th & 1 at ECU 45, down 23 · Went for itAgreed
- Q4 10:054th & 14 at CLT 36, down 26 · PuntedAgreed
- Q4 6:204th & 4 at ECU 32, down 26 · Went for itClose call
- Q1 10:424th & 16 at CLT 48, tied · PuntedAgreed
- Q1 5:374th & 13 at CLT 32, down 7 · PuntedAgreed
- Q1 2:144th & 5 at CLT 25, down 7 · PuntedAgreed
- Q2 10:054th & 15 at CLT 47, down 7 · PuntedAgreed
- Q2 3:104th & 12 at CLT 31, down 7 · PuntedAgreed
- Q3 5:194th & 16 at UTSA 42, down 7 · PuntedAgreed
- Q3 0:314th & 6 at CLT 27, down 14 · PuntedAgreed
- Q4 12:214th & 2 at UTSA 33, down 14 · Went for itAgreed
- Q4 2:154th & 5 at UTSA 17, down 21 · Went for itClose call
- Q1 10:494th & 3 at CLT 27, tied · PuntedClose call
- Q1 5:184th & 9 at CLT 26, down 7 · PuntedAgreed
- Q2 14:434th & 8 at CLT 27, down 14 · PuntedAgreed
- Q2 1:534th & 9 at CLT 26, down 28 · PuntedAgreed
- Q3 13:584th & 8 at CLT 27, down 25 · PuntedAgreed
- Q3 8:414th & 5 at CLT 43, down 32 · PuntedAgreed
- Q3 3:194th & 19 at CLT 35, down 32 · PuntedAgreed
- Q4 13:114th & 13 at CLT 23, down 32 · PuntedAgreed
- Q1 10:564th & 7 at CLT 28, down 7 · PuntedAgreed
- Q1 0:424th & 22 at TULN 37, down 14 · PuntedClose call
- Q2 9:074th & 7 at CLT 24, down 14 · PuntedAgreed
- Q2 6:084th & 5 at TULN 7, down 14 · Kicked a field goalAgreed
- Q2 0:454th & 5 at CLT 30, down 21 · PuntedAgreed
- Q3 13:064th & 4 at CLT 31, down 21 · PuntedAgreed
- Q3 3:424th & 19 at CLT 40, down 21 · PuntedAgreed
- Q4 11:344th & 6 at CLT 43, down 24 · PuntedAgreed
- Q4 8:224th & 25 at CLT 26, down 24 · PuntedAgreed
- Q4 3:354th & 16 at CLT 39, down 27 · PuntedAgreed
After touchdowns: kick or go for two?
Tries that matched the option with the better modeled win probability.
Summed over every try that differed, in points of win probability.
Went for two when it beat kicking by a point or more.
Costliest tries against the numbers
- vs APPQ4 10:25 Touchdown, down 18 before the tryWent for two; the numbers favored kicking (close call)−0.2 pts
- at USFQ4 13:58 Touchdown, down 17 before the tryWent for two; the numbers favored kicking (close call)−0.1 pts
- at ECUQ3 8:54 Touchdown, down 18 before the tryWent for two; the numbers favored kicking (close call)<0.1 pts
Win probability
YardLine's model estimates each team's chance of winning before kickoff and again after every play, from the score, clock, down, distance and field position. How it works →
Record vs. expectation, 2025
93rd of 136 FBS teams at beating the model's pregame expectations
Expected wins adds up Charlotte's chance of winning each game as the model saw it at kickoff - a 70% favorite counts 0.7.
What moved it, 2025
Every game starts at Charlotte's pregame chance; everything after that is the field. The model's own breakdown of each game's final play splits the on-field part by what drove it, and the parts add up exactly. How it works →
- Scoreboard−1.33
- Possession & field position+0.03
- Clock−0.04
- Timeouts−0.07
- Other−0.01
- Less the pregame edge, counted before kickoff+0.65
Game by game
- APPL 11-34 vs APP22% → 0%Before kickoff −28 · On the field −21: Scoreboard −20, Timeouts −8
- UNCL 3-20 vs UNC11% → 1%Before kickoff −39 · On the field −10: Scoreboard −19, Clock −1
- MONMW 42-35 vs MONM56% → 98%Before kickoff +6 · On the field +43: Scoreboard +38, Timeouts +2
- RICEL 17-28 vs RICE40% → 6%Before kickoff −10 · On the field −34: Scoreboard −47, Possession & field position +2
- USFL 26-54 at USF3% → 0%Before kickoff −47 · On the field −3: Scoreboard −5
- ARMYL 7-24 at ARMY12% → 1%Before kickoff −38 · On the field −11: Scoreboard −18, Timeouts +1
- TEML 14-49 vs TEM21% → 0%Before kickoff −29 · On the field −21: Scoreboard −28, Possession & field position +1
- UNTL 20-54 vs UNT5% → 0%Before kickoff −45 · On the field −5: Scoreboard −8
- ECUL 22-48 at ECU3% → 0%Before kickoff −47 · On the field −3: Scoreboard −5
- UTSAL 7-28 vs UTSA8% → 0%Before kickoff −42 · On the field −8: Scoreboard −15, Clock −1
- UGAL 3-35 at UGA0% → 0%Before kickoff −50 · On the field 0: Scoreboard −1
- TULNL 0-27 at TULN3% → 0%Before kickoff −47 · On the field −3: Scoreboard −4
Points of win probability, from Charlotte's side.
Closest call
CLT 42-41 GAST (2022) - Charlotte dropped to a 3.9% win probability before pulling it out.
Season arc, 2025
Every completed game this season, in order - each tile is Charlotte's own win-probability curve.
Biggest swings of 2025
The largest single-play change in Charlotte's win probability this season - one snap that moved the outcome the most.
Stolen wins
Charlotte's own lowest win probability at any point in a game it went on to win, across the whole archive - the deepest holes it climbed out of.
Let it slip
Charlotte's own highest win probability at any point in a game it went on to lose, across the whole archive - the biggest leads it didn't hold.
Stock & rivalries
Stock
Charlotte's leaguewide Elo rating, tracked like a stock price - built from game results and margins, not the model's own win-probability predictions.
Series & rivalries
Charlotte's most-played opponents across the whole archive - open one for the full head-to-head history.