Edge Labs EDGE LABS Market intelligence
CFB NFL
← The slate
CFB · Week 2 · Fri, Sep 11 · 7:00 PM ET · Carter-Finley Stadium · FINAL Richmond 0, NC State 73

Richmond at NC State. Our pick: Richmond +32.5 (medium). No pick on the total.

The picks come first on this page. The market's number, our number and the gap between them sit under them as MODEL CONTEXT: that is the input our analyst panel argued from, not a call of its own. Tiers are how decisively the evidence agreed, never a win probability.

ATS pick
Richmond +32.5
medium LOSS
locked Thu 5:29pm ET
locked +32.5 · closed +33.5
Richmond 0, NC State 73
Total pick
No pick
the analyst panel did not agree on this total

Panel reasoning

On the spread

Richmond at NC State, NC State -32.5. The line opened near NC State -30 to -30.5 and moved to -31.5/-32.5 through September 10 (line history, 9/6-9/10). Public splits conflict: one book showed NC State drawing the bulk of spread handle on September 10, another showed betting money close to even the same day. NC State was outclassed 34-8 by Virginia in the opener (CJ Bailey 12-of-23 for 84 yards, an interception and a lost fumble, 8/29), and on September 7 lost starting linebacker AJ Richardson for the season to a torn bicep. Richmond is 2-0, ranked 23rd in the FCS Coaches Poll as of September 5, and SP+ projected a margin closer to 26 points as of September 8. Our own model carries no number here since Richmond is unrated FCS, so this is a market read, not a model edge. The counter-case: NC State had a bye to prepare, DT Ka'Tron Evans regained eligibility on September 9, and the talent gap could still overwhelm Richmond. Take Richmond +32.5 (-115 at DraftKings).

On the total

No total pick. The panels split 2-1 under, and the dissenting panel ranked the over in its top 5, so no total publishes. Our totals model reads 57.2 against a 50.2 market, a 7-point gap below its 12.86-point calling threshold, so it does not name a side on its own. Under case: NC State scored 8 points against Virginia on August 29, and Richmond's two wins have landed near 49 combined points. Over case: NC State conceded 34 points to an FBS defense in the opener and then lost linebacker AJ Richardson for the season on September 7, thinning a front seven that must face a Richmond offense averaging 31.5 points per game.

Model context

The numbers the panel argued from. Our models price a game, the panel makes the call, and the picks above are the call. Nothing in this block is a pick.

Locked line
Richmond +32.5 · NC State -32.5
the spread we locked at, it does not move
Our model number
unrated
the calibrated EL CFB rating number, home field included
Spread gap
both numbers are needed for a gap
Market total
50.5
consensus of 5 books at the model run, Sep 12, 12:38 PM ET
Our total
56.9
EL CFB Totals v1
Total gap
+6.4
the distance between our model total and the market total. Context for the panel, not a call of its own.

Context, not a call. The spread number is our rating difference plus home field. The totals number is a registered candidate that loses to the closing total: across 2,264 held out games it missed the combined score by 12.862 points on average and the closing total missed by 12.635, ahead of us in all 3 of those seasons, so it never posts to the board and never enters the record on its own.

Over and under splits

Descriptive context on this game, every line with the games it counts. None of it is a reason a pick wins and none of it enters a tier.

  • Lowest total on the board (50.5), market context only
    total · lean
    Relative context only, no directional edge in testing.

The panel

Panel A

Richmond +32.5

Under 49.5

Take Richmond +32.5 (-115), displayed on DraftKings’ splits page when consulted. Edge Labs has no spread number here, so there is no quantified model edge. The dossier’s move from roughly -30.5 to -32.5 already prices a substantial NC State rebound; conflicting public feeds prevent calling a subsequent reversal. My lean is that five-touchdown separation demands more offensive consistency than NC State has demonstrated. Richardson’s confirmed absence also gives Richmond a better chance to sustain possessions or score late. Snelsire’s productive passing against Howard provides a plausible backdoor route, although Richmond’s protection problems are a serious counterargument. NC State’s bye-week preparation and Evans’ continued eligibility favor the favorite, and the talent mismatch could overwhelm Richmond. Those considerations keep conviction modest. I found no complete game-specific official availability report, could not extract Richmond’s linked game notes, and could not confirm final offensive injury statuses or additional suspensions. This is a price-sensitive underdog lean, not an upset prediction.

Total. Take under 49.5 (-108), displayed on DraftKings’ page. The model’s 57.2 is 7.7 points higher, but its historical error exceeds that gap. Richmond’s 28 points at Howard came with only 288 yards, including 27 rushing; two touchdown possessions began on short fields. Repeating that scoring efficiency against NC State is uncertain. NC State’s stated emphasis on establishing the run and the thunderstorm forecast add modest under support, without assuming slower measured tempo or a shortened game. The over case is real: Richardson’s absence weakens NC State, Snelsire can throw, and an FBS mismatch can produce explosive plays and defensive scores. The dossier also records upward total movement. With public totals conflicting and no verified wind gusts or final availability, this remains a small under lean.

Where our model looks wrong

There is no spread projection to challenge. The dossier misses Richardson’s season-ending injury and leaves rest unspecified despite NC State’s bye. The 57.2 total looks too optimistic about sustained scoring: Richmond’s Howard production included short fields, only 27 rushing yards and four sacks allowed. Neither early scoring averages nor the fitted FCS defensive term establish how efficiently these teams will score against this matchup.

Panel B

Richmond +32.5

Under 50.5

Our model has no number here (Richmond is unrated FCS), so this is a market read. NC State laying 32 is a 4.5-TD price from a team that just scored 8 points and whose QB threw for 84 yards with an INT and a lost fumble at Virginia (8/29). Richmond is not a punching bag: 2-0, ranked #23 FCS, top-25 SP+, with defense as its identity (DE Camden Byrd, Patriot Preseason DPOY, 8.5 sacks in 2025) that will attack NC State's already-shaky protection. Richmond's offense scores (Snelsire 6 TD, 0 INT; RB Foster-Powell), so a shutout is unlikely and the dog should reach 14-21. The bye and home motivation argue for NC State, and the line moved toward them (-30 to -32.5), but huge FCS spreads chronically fail to cash when the favorite's offense is broken. Take the points.

Total. Our totals model says 57.2 vs a market of ~50, but that lean is exactly where the model looks wrong: it is mostly last year's NC State (30.2 ppg) and cannot see that the offense scored 8 points in the opener with a struggling QB and protection issues. Richmond's identity is defense, and its offense, while efficient, is FCS-caliber facing FBS speed. If NC State's offense stays stuck it drags the game under; if Richmond keeps it competitive (the ATS thesis), the script is a grind rather than a track meet, landing near 41-51. Add a chance of an early-evening shower/thunderstorm at kickoff. I lean under the 50/50.5 range.

Where our model looks wrong

The spread model produces no number because Richmond is an unrated FCS side, and NC State's carried rating still leans on the preseason prior (3.55, 7.35 expected wins) that predates the Week 0 collapse. Neither the rating nor the market's -32 accounts for how badly NC State's offense and pass protection functioned, which is the single most important fact in the game. The market number is public-favorite money, not a priced edge.

Panel C

Richmond +32.5

Over 50.5

Market has NC State -31.5 to -32.5 (consensus -32), the largest number the Wolfpack have shown against Richmond in this series (they were only -23.5 in 2013 and escaped 23-21). SP+ projects a materially smaller margin, roughly 26 points (packinsider.com, 9/8), an independent signal the closing line is running a few points hot. Our own rating carries no number at all here (Richmond is unrated pre-first-game), so there is no model edge to lean on beyond that outside gap read. NC State was outclassed 34-8 by an FBS Virginia defense in the opener -- CJ Bailey's worst college start (12/23, 84 yds, INT, lost fumble) -- and now loses starting WILL linebacker AJ Richardson for the season to a torn bicep (packinsider.com, 9/7), thinning the front seven that has to contain Richmond's run game. Three more NC State skill players (TE Ritchey, RB Paylor, WR Copper) carry only stale 8/29 questionable tags with no fresher update found. Richmond is a legitimate 2-0 FCS top-25 team with the 11th-ranked FCS defense, and betting money is close to split (roughly 51% money Richmond, 49% NC State) -- no sharp signal backing the giant favorite. Taking the points.

Total. Our totals model reads 57.2 against a 50.2 market consensus, a 7-point gap that sits below the model's own 12.86-point calling threshold (it does not name a side on its own), but the direction still points over. NC State conceded 34 points to an FBS defense in Week 1 and now fields a shorthanded front seven (LB Richardson out for the season, packinsider.com 9/7) against a Richmond offense averaging 31.5 ppg through two games (Bucknell, Howard). Even a lopsided NC State win likely clears 50.5 once backups see extended snaps and Richmond keeps throwing to stay competitive against a defense that just gave up 34. Forecast is warm (upper-80s to low-90s F, light wind, modest shower chance) with no case for weather suppressing scoring. Taking the over.

Where our model looks wrong

Our spread model has no number at all for this game -- Richmond is unrated until it has a game in our system, and the calibration map is least reliable against FCS opponents even when both sides are rated. So there is no internal model-vs-market gap to point to here; this read leans entirely on outside sources (SP+, injury news, betting splits) rather than our own rating disagreeing with the market, which is a real limitation on confidence.

The write-up

The case

Richmond at NC State, NC State -32.5. The line opened near NC State -30 to -30.5 and moved to -31.5/-32.5 through September 10 (line history, 9/6-9/10). Public splits conflict: one book showed NC State drawing the bulk of spread handle on September 10, another showed betting money close to even the same day. NC State was outclassed 34-8 by Virginia in the opener (CJ Bailey 12-of-23 for 84 yards, an interception and a lost fumble, 8/29), and on September 7 lost starting linebacker AJ Richardson for the season to a torn bicep. Richmond is 2-0, ranked 23rd in the FCS Coaches Poll as of September 5, and SP+ projected a margin closer to 26 points as of September 8. Our own model carries no number here since Richmond is unrated FCS, so this is a market read, not a model edge. The counter-case: NC State had a bye to prepare, DT Ka'Tron Evans regained eligibility on September 9, and the talent gap could still overwhelm Richmond. Take Richmond +32.5 (-115 at DraftKings).

Confidence: medium

Three independent analyst panels (A, B and C) worked the same evidence pack and the week's news independently, each returned a side, and each then ranked its five strongest picks for the week. Every panel was on this side. Medium is a decisiveness label for how firmly the panel agreed, never a win probability: high means every panel was on this side and ranked it among the week's best; only high picks count on the record and go free.

Our number

edgelabs EL rating (preseason v1 until a team has played, then the in-season v1 Elo-style refit, Sun 23:00 and Tue 02:00 PT) run through the 2026-09-07 CFB calibration map; home field 2.5. Home perspective: negative = home favored. Ours: NC State null; market at synthesis: -32. Held-out 2024-2025 reconstructions (9,927 FBS games): 46-50% against the spread in every gap bucket, calibrated margin error 12.7 points. No against-the-spread edge at any gap size. Treat the number as context, not as a priced edge.

written before kickoff, frozen at kickoff

Trends

Descriptive context, every line with the games it counts. Filters like these did not hold up as predictors in our testing, so none of this is in the confidence read and none of it is a reason a pick wins. Situational splits look back 3 seasons and need at least 8 decided games to be shown at all. Records against the number and on the total join these once our closing-line history is restored; the straight-up splits are live now.

Richmond
  • won 4 of their last 5 (n=5, 2025 to 2026)
  • won 3 straight
  • 10-0 straight up in divisional games (n=10, 2024 to 2026)
NC State
  • won 3 of their last 5 (n=5, 2025 to 2026)
  • 7-2 straight up at home after a straight up loss (n=9, 2024 to 2025)
The rest of the splits we can compute on this game
Richmond
  • won 7 of their last 10 (n=10, 2025 to 2026)
  • 9-0 straight up in day divisional games (n=9, 2024 to 2025)
  • 8-3 straight up in road day games (n=11, 2024 to 2026)
  • 10-4 straight up on the road (n=14, 2024 to 2026)
  • 16-7 straight up in day games (n=23, 2024 to 2026)
  • 9-4 straight up at home (n=13, 2024 to 2026)
  • 8-4 straight up in home day games (n=12, 2024 to 2025)
  • 6-3 straight up after a straight up loss (n=9, 2024 to 2025)
NC State
  • won 5 of their last 10 (n=10, 2025 to 2026)
  • 2-6 straight up in road day games (n=8, 2024 to 2026)
  • 10-4 straight up at home (n=14, 2024 to 2025)
  • 3-7 straight up in day divisional games (n=10, 2024 to 2026)
  • 3-7 straight up on the road (n=10, 2024 to 2026)
  • 9-4 straight up after a straight up loss (n=13, 2024 to 2025)
  • 3-6 straight up in road divisional games (n=9, 2024 to 2026)
  • 6-4 straight up in night games (n=10, 2024 to 2025)
  • 7-10 straight up in divisional games (n=17, 2024 to 2026)
  • 8-9 straight up in day games (n=17, 2024 to 2026)
  • 4-4 straight up in divisional games after a straight up loss (n=8, 2024 to 2025)
  • 4-4 straight up in home divisional games (n=8, 2024 to 2025)

The two numbers underneath

TeamEL ratingConference
Richmond unrated Patriot
NC State -2.246 ACC

Rating difference plus 2.5 points of home field is the rating read above. Full board: the power ratings.

Conditions at kickoff

Partially cloudy. 88F · wind 7 mph · 22% chance of precipitation

Provenance: schedule and finals from the Edge Labs database (2026 season); the line is the latest capture for this game with the book named; our number is the EL rating read (in-season once a team has played, preseason before that) plus 2.5 home field, none at neutral sites, and it is context on this page rather than the call. Signals come from the trend engine, each with its real sample; a tier is how decisively the evidence agreed and is never a win probability. Once the game kicks off this page stops computing and reads our pick lock ledger instead: the pick and the spread we were locked at, written once at kickoff, never updated, graded against that same number. Line movement comes from our permanent capture log, one book across both ends and never a capture taken at or after kickoff, so the second number is the last pregame line and after kickoff it is the close; a game the log has captured only once shows no movement rather than an invented one. Weather is the captured forecast for the venue, and the chip appears only when it is worth saying (wind at 12 mph or more, a 50 percent or better chance of rain, or 35F or colder), never on an indoor venue. Injury counts are our latest daily scan, real report rows only, and a team the scan does not cover is left out rather than shown as zero. The write-up is assembled from those same stored rows, never written around them: the case comes from the lock row, the signals from the trend engine with their own samples, the series from our game database from 2013 forward, and the scoring profiles from completed games only, each with the number of games it averages. A section with no data behind it is left out instead of filled in, it refreshes while the game is pregame, and it can never be edited once the game has kicked off. Trends are descriptive only, computed by the same shared module the write-up uses so the two cannot disagree: straight-up splits come from completed games in our database, situational splits look back three seasons and need at least eight decided games, records against the number and on the total arrive with the closing-line restore, and every line carries the games it counts. Filters like these did not hold up as predictors in our testing, so none of them enter the confidence read. The totals block is a read and not a pick: our number is EL CFB Totals v1 (edgelabs.el_cfb_totals, season 2026, model_version v1, docs/el-cfb-totals-v1.md), a registered candidate that loses to the closing total, so it never posts to the board or the record; the market total beside it is the same capture the spread comes from before kickoff and the frozen consensus the model priced against after it, and the gap is measured against whichever number is printed. The totals trends under it are the trend engine's own rows for this game, deduped on the headline, each carrying its sample. On the games the analyst panel works each week (the games our model prices off the market plus the ranked and Power Four games, at most twenty), the pick and the total call are the panel's synthesis: three independent analyst panels, the same evidence pack, their own research, one side each, tiered by how firmly they agreed, never a win probability. A panel majority on a side is what makes a pick; without one the game is a published no-pick, printed as No pick rather than left blank. Research and context, never a guarantee, 21+.