Edge Labs EDGE LABS Market intelligence
CFB NFL
← This week's CFB board
CFB · Week 2 · Sat, Sep 12 · 10:00 PM ET · Falcon Stadium · FINAL North Dakota State 38, Air Force 32

North Dakota State at Air Force. Our pick: Under 47.5 (medium). No pick on the spread.

ATS pick
No pick
the analyst panel worked this game and did not agree on a side
Total pick
Under 47.5
medium LOSS
locked 47.5 · closed 48.5
panel 3-0
How to read this page

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. A tier is never a win probability or a hit rate. A pick is high when all three analysts take its side at a captured number and at least one of them ranks it among their strongest sides of the run or grades it a bet. Nothing tops up the tier: a week can carry many highs or none, and each write-up says why its pick earned the label. A spread of 40 or more points is never above low.

Panel reasoning

On the spread

North Dakota State at Air Force, Air Force +2.5. No pick. Our spread model carries no number here since North Dakota State is unrated, so there is no model edge to lean on. Two panels took Air Force +2.5, but the third took North Dakota State -2.5 and ranked it in its own top five for the week; a ranked dissent is a genuine split, so there is no pick. The case for the points: the line opened North Dakota State -6.5 at DraftKings on September 6 and drifted to -2.5 by September 10 even as public tickets stayed 62 percent on North Dakota State, Air Force gets a real altitude edge at 6,621 feet, and North Dakota State is playing its first true FBS road game on a short week. The case for North Dakota State: Air Force lost its nose guard and a cornerback for the season, quarterback Nathan Hayes has completed 32 of 44 passes for four touchdowns through two games, and the defense held Jacksonville State to 85 rushing yards. No pick on the spread.

On the total

Under 47.5. DraftKings opened 49.5 on September 6 and the market settled at 47.5 by September 10, with Bovada as low as 47.0. The forecast is mild, partly cloudy with a 10 to 15 mph south wind and a small rain chance, not severe weather. Both teams control the clock: Air Force ran for 431 yards in its opener and North Dakota State held the ball in both wins. Our totals model reads 44.94 against the market, a gap inside its noise threshold, so it is context, not a standalone signal. The counter is Air Force's 2025 defense, which let seven of twelve games go over 47.5. Take Under 47.5 at DraftKings, BetMGM, FanDuel or Pinnacle, not Bovada's 47.0.

The panel · three seats

No pick on the spread. North Dakota State at Air Force, Air Force +2.5. No pick. Our spread model carries no number here since North Dakota State is unrated, so there is no model edge to lean on. Two panels took Air Force +2.5, but the third took North Dakota State -2.5 and ranked it in its own top five for the week; a ranked dissent is a genuine split, so there is no pick. The case for the points: the line opened North Dakota State -6.5 at DraftKings on September 6 and drifted to -2.5 by September 10 even as public tickets stayed 62 percent on North Dakota State, Air Force gets a real altitude edge at 6,621 feet, and North Dakota State is playing its first true FBS road game on a short week. The case for North Dakota State: Air Force lost its nose guard and a cornerback for the season, quarterback Nathan Hayes has completed 32 of 44 passes for four touchdowns through two games, and the defense held Jacksonville State to 85 rushing yards. No pick on the spread.

SeatSpreadTotal
Panel A North Dakota State -2.5 Under 47.5
Panel B Air Force +2.5 Under 47.5
Panel C Air Force +2.5 Under 47.5

Each seat works the same evidence pack on its own and names a side. The pick at the top of the page is what survives the disagreement (vote: total 3-0).

Panel A North Dakota State -2.5 · Under 47.5 Read the case

Spread. Edge Labs has no spread number here, so there is no measurable model-versus-market edge. I lean NDSU at -2.5 because the move from DraftKings’ captured -6.5 opener has brought the favorite below a field goal. NDSU’s defensive performance against Jacksonville State provides more useful evidence than either team’s FCS shutout, and Nathan Hayes has completed 32 of 44 passes with four touchdowns through two starts. Air Force’s defensive depth losses modestly strengthen that case, although they predate this week and should already be priced. The counterargument is substantial: Air Force’s rushing attack can limit possessions, its home setting complicates NDSU’s conference debut, and the Falcons demonstrated sustained possession control in their opener. I would not chase the original favorite price. At -2.5, NDSU’s passing efficiency and early run-defense evidence justify a modest position, with unresolved availability preventing stronger conviction.

Total. Under 47.5 is a small lean based on possession scarcity and NDSU’s encouraging run defense, rather than the model’s noise-sized 2.56-point gap. Air Force held the ball for 40:50 in its opener, suggesting a route to long drives and fewer possessions. NDSU’s defensive touchdowns in both victories also inflate its scoring average relative to offensive production. The over deserves respect: Hayes has been efficient, Air Force rushed for 431 yards, and defensive depth losses could turn sustained drives into touchdowns. The independent forecast does not establish severe weather, so I reject a strong weather-under argument. With DraftKings already down from 49.5, much of the apparent under value has disappeared; 47.5 remains only a modest preference.

Where our model looks wrong

The missing NDSU rating is a coverage failure: this is an FBS Mountain West opponent, not an unrated FCS matchup. The total’s 44.94 looks too precise: its wind adjustment subtracts approximately 2.5 points without a verified stadium-specific kickoff wind forecast. Weak-opponent shutouts also warrant less confidence than raw scoring averages imply. NDSU scored defensive touchdowns in both wins, further complicating inference about offensive strength.

Panel B Air Force +2.5 · Under 47.5 Read the case

Spread. Our spread model prints nothing here because NDSU is unrated, so the anchor has to come from outside. Preseason SP+ has NDSU -1.3 and Air Force -2.4; give Falcon Stadium its real edge at 6,621 feet and that math makes Air Force roughly a field-goal favorite, not a 2.5-point dog. The market has walked in exactly that direction: DraftKings opened NDSU -6.5 on 9/6, all five of our books sat at NDSU -2.5 by 9/10, and Action Network still shows 62% of tickets on NDSU. A four-point move against the ticket count is informed money on Air Force. The qualitative case matches. This is NDSU's first true road game as an FBS program, a 10pm ET kickoff at altitude, with one week to prepare a triple option that rushed for 431 yards on 17 ball carriers in the opener. Polasek went 0-2 in Colorado Springs as Wyoming's coordinator and says he is sleeping two hours a night. I take the points, discounted because the number already moved four points against me.

Total. Our model says 44.94 against a 47.5 market, a 2.5-point gap the totals model itself calls noise-sized, so the case has to be structural, and it is: possessions. Air Force threw five passes and ran for 431 yards on 17 ball carriers against Duquesne, and NDSU held the ball 36:07 and 33:27 in its two wins. Two clock-eating offenses cap the drive count in a way neither team's points-per-game suggests. Both defenses are the Mountain West's top two in scoring allowed, DraftKings has already dropped 49.5 to 47.5, and the NWS has south wind 10-15 mph at USAFA Saturday night. The honest deflator, and why this is a lean and not a bet: Air Force's 2025 games averaged 60.2 combined points and went over 47.5 in seven of twelve, because a leaky defense inflates option games. Small under.

Where our model looks wrong

Two separate failures. First, the spread model returns no number at all for a Mountain West conference game because NDSU is flagged unrated - the pipeline still treats them as the FCS side seven months after they joined the conference and two FBS games into their season. That is data plumbing, not modelling, and it blanks us on precisely the game where a new entrant is hardest to price; the fix is to seed a new FBS member from its preseason SP+ or from its FCS rating minus a division adjustment rather than leaving the slot null. Second, the flat 2.5 home field is clearly wrong for Falcon Stadium: 6,621 feet, a night kickoff, a sea-level opponent and one week of option prep is worth more than the league-average bump, probably 3.5 to 4 here. Third, the Air Force rating of -1.873 is still mostly a preseason prior off a 4-8 season plus one shutout of an FCS team, so it carries almost no information about this year's defense.

Panel C Air Force +2.5 · Under 47.5 Read the case

Spread. NDSU is in Year 1 of a rare FCS-to-FBS jump and now a Mountain West member; this is a true conference road opener and NDSU's first-ever trip to Air Force's 6,621-ft altitude on a 9pm MT kickoff coach Polasek flagged as unusually late for his program (Heavy.com, 9/9/26). Our own rating has zero number for NDSU (never rated in-system), so there is no model-vs-market gap to lean on here; the market itself is the best signal. All four tracked books (DraftKings, BetMGM, FanDuel, Pinnacle) opened NDSU -3.5 to -6.5 around 9/6-9/7 and had converged to -2.5 by 9/10 4:17pm ET, a real four-point move toward the home dog. NDSU's 71-7 combined scoring across two wins, including a 26-point road win over FBS Jacksonville State, is legitimately strong, but Air Force is a solid home team of late and its option attack (431 rush yards Wk1) is uniquely hard to prep for on a short week for a team seeing it for the first time. NDSU's O-line is already thin. Taking the points with the side the market has been buying.

Total. Consensus total is 47.5 across DraftKings, BetMGM, FanDuel and Pinnacle as of 2026-09-10 4:17pm ET, essentially flat all week (DraftKings opened 49.5 on 9/6 and settled at 47.5). Our el_cfb_totals model reads 44.94, a -2.56 gap that sits well under its own 12.86-point action threshold, so it is context only, not a confident signal, but it points the same direction as the situational read. Air Force's offense is run-first and clock-eating (431 rush yards, just 3-of-7 passing in Week 1); NDSU's defense has allowed only 7 points across two games, including just 135 total yards allowed against Fordham. Both defenses have looked stout, if against modest competition so far, and an option team controlling the clock at home trims total possessions for both sides. Wind around 10-15 mph and a modest storm chance add a little further downside. Leaning under.

Where our model looks wrong

The model carries literally no rating for NDSU because it is a first-year FBS entrant with no in-system history, a structural blind spot, not just noise, in exactly the spot (a proven FCS blue-blood jumping levels into a new conference) where a rating system built on prior-year FBS data is guaranteed to have nothing to say. Its flat 2.5-point home-field constant for every stadium also cannot capture Air Force's well-documented, unusually large altitude effect on a visiting team playing its first-ever road game at 6,621 feet.

The signals and the market

2 independent signals on this game. The tally per side, every angle with its sample size, and the line movement from open to now open with membership. They are research context, never a pick. Membership

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.

Market line
North Dakota State -1.5
DraftKings
Our model number
North Dakota State by 1.1
the calibrated EL CFB rating number, home field included
Spread gap
0.4 points
the distance between our model number and the market. Context for the panel, not a call of its own.
Market total
47.5
consensus of 5 books at the model run, Sep 12, 12:38 PM ET
Our total
45.5
EL CFB Totals v1
Total gap
-2.0
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.

Trends and splits

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.

North Dakota State
  • won 4 of their last 5 (n=5, 2025 to 2026)
  • 9-0 straight up in home divisional games (n=9, 2024 to 2025)
Air Force
  • won 3 of their last 5 (n=5, 2025 to 2026)
  • 2-6 straight up in night games after a straight up loss (n=8, 2024 to 2025)
Over and under splits
  • Early-season total of 48.5 fits the validated under window, unders 55% historically (n=943)
    total · under · moderate · n=943
    H64 (validated): Aug through mid-Sep games with a closing total of 47+ landed under 55% of 943 games, 2015-2025. Recent seasons: 2022: 58% (n=92) · 2023: 53% (n=81) · 2024: 57% (n=103) · 2025: 52% (n=119). 2025 ran soft at 52.1%, below the -110 breakeven, and the 2026 forward test is pre-committed on the early-totals page. Early-season totals are shaded up by public over-action; the market corrects as real form data arrives.
The rest of the splits we can compute on this game
North Dakota State
  • won 9 of their last 10 (n=10, 2025 to 2026)
  • 17-1 straight up at home (n=18, 2024 to 2026)
  • 16-1 straight up in divisional games (n=17, 2024 to 2025)
  • 16-1 straight up in home day games (n=17, 2024 to 2026)
  • 13-1 straight up in day divisional games (n=14, 2024 to 2025)
  • 24-2 straight up in day games (n=26, 2024 to 2026)
  • 8-1 straight up in road day games (n=9, 2024 to 2025)
  • 7-1 straight up in road divisional games (n=8, 2024 to 2025)
  • 10-2 straight up on the road (n=12, 2024 to 2025)
Air Force
  • won 4 of their last 10 (n=10, 2025 to 2026)
  • 2-6 straight up on the road after a straight up loss (n=8, 2024 to 2025)
  • 4-11 straight up after a straight up loss (n=15, 2024 to 2025)
  • 4-8 straight up in night games (n=12, 2024 to 2025)
  • 4-8 straight up on the road (n=12, 2024 to 2025)
  • 4-7 straight up in divisional games after a straight up loss (n=11, 2024 to 2025)
  • 4-7 straight up in night divisional games (n=11, 2024 to 2025)
  • 5-3 straight up in home day games (n=8, 2024 to 2026)
  • 6-9 straight up in divisional games (n=15, 2024 to 2025)
  • 6-7 straight up at home (n=13, 2024 to 2026)
  • 6-7 straight up in day games (n=13, 2024 to 2026)
  • 4-4 straight up in road divisional games (n=8, 2024 to 2025)

Conditions at kickoff

Partially cloudy. 68F · wind 10 mph · 4% chance of precipitation

The ratings underneath, and our sources

The two numbers underneath

TeamEL ratingConference
North Dakota State -1.412 Mountain West
Air Force -4.385 Mountain West

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

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 panel tier follows the rule under How to read this page 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 the rule under How to read this page, 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+.