Week 4 report · Sat, Sep 26 · 2026 Week 4

James Madison
6–0 · Ours #36 enteringOur rank going into this game, from the rankings page. The board's line comes from the betting model, which sees more than this one number.
46–20FinalWe had JMU 33 – ODU 16

Old Dominion
2–4 · Ours #99 enteringOur rank going into this game, from the rankings page. The board's line comes from the betting model, which sees more than this one number.
Win chanceOur odds before kickoff: how often each team won outright when we played the game out thousands of times from our line.
JMU 84%JMU won
JMU 84%JMU wonSpreadOur last pregame odds pull, usually inside the hour before kickoff. A median of the books we track, not a sharp close. First seen at JMU −4.5.JMU −6.5oursOur computer's point spread for this game, built from team stats, not from the betting odds. Read it like a betting line: −7 means we have that team winning by 7. −16.4 · JMU covered by 19.5
TotalOur last pregame odds pull, usually inside the hour before kickoff. A median of the books we track, not a sharp close. Our total was 48.7.44final 66 · over by 22
Our callThe side our number took at the early-week line, graded at that line. Line value is how far the market moved toward it by the last capture before kickoff.No call
Quarterbacksthis game

Camden Coleman24/42 · 243 yards
- EPA / dropbackExpected points added per dropback (passes and sacks) in this game. The percentile is among every 2026 FBS quarterback game with 10+ dropbacks.
- −0.1427th pct
- Comp %
- 57.1
- TD
- 4
- Turnovers
- 11 INT · 0 fum
- Sacked
- 1

Ryan Huff20/40 · 261 yards
- EPA / dropbackExpected points added per dropback (passes and sacks) in this game. The percentile is among every 2026 FBS quarterback game with 10+ dropbacks.
- −0.2022nd pct
- Comp %
- 50.0
- TD
- 1
- Turnovers
- 11 INT · 0 fum
- Sacked
- 9
The matchupthis game · ▲▼ better or worse than the unit's usual · percentile vs every 2026 team game
James Madisonoffense | Played like JMU +4.0Fitted from non-garbage efficiency; describes how the game was played, not who deserved it. | defenseOld Dominion![]() | ||
|---|---|---|---|---|
| 46th | 40.8%▼4.2 | Success rateSuccessShare of plays that kept the offense on schedule, outside garbage time. | 40.8%▼2.4 | 54th |
| 19th | −0.18▼0.36 | EPA / playEPA/playExpected points added per play, outside garbage time. | −0.18▲0.14 | 81st |
| 31st | −0.14▼0.43 | PassingPassingExpected points added per dropback, outside garbage time. | −0.14▲0.20 | 69th |
| 16th | −0.23▼0.32 | RushingRushingExpected points added per run, outside garbage time. | −0.23▲0.15 | 84th |
| 41st | 1▼0.8 | TurnoversTurnoversInterceptions and lost fumbles: giveaways for the offense, takeaways for the defense. | 1▲0.5 | 59th |
Old Dominionoffense | defenseJames Madison![]() | |||
|---|---|---|---|---|
| 6th | 24.1%▼4.9 | Success rateSuccessShare of plays that kept the offense on schedule, outside garbage time. | 24.1%▲15.6 | 94th |
| 17th | −0.20▲0.01 | EPA / playEPA/playExpected points added per play, outside garbage time. | −0.20▲0.26 | 83rd |
| 30th | −0.15▲0.26 | PassingPassingExpected points added per dropback, outside garbage time. | −0.15▲0.23 | 70th |
| 9th | −0.35▼0.28 | RushingRushingExpected points added per run, outside garbage time. | −0.35▲0.39 | 91st |
| 41st | 1▲0.5 | TurnoversTurnoversInterceptions and lost fumbles: giveaways for the offense, takeaways for the defense. | 1▼0.5 | 59th |
Team statsthis game · percentile vs every 2026 team game
James MadisonJMU | Old DominionODU | |
|---|---|---|
| Special teams & field position | ||
| Average startWhere the team's drives started on average. | Own 4095th | Own 2955th |
| Kicking vs expectedKickingPoints from field goals and extra points against what an average kicker makes from the same spots. | +1.7 pts89th | +1.8 pts91st |
| Drives & pace | ||
| PlaysOffensive plays outside garbage time. | 7693rd | 5853rd |
| Drive pointsThe part of the final margin the offense moved the ball for (efficiency, success rate, big plays, finishing drives), in points. A margin over the opponent. | +15.985th | −15.915th |
| Turnovers & hidden points | ||
| Penalty first downsPenalty 1st downsFirst downs the team was handed by the opponent's penalties. | 486th | 371st |
| 4th downsPoints from going for it on fourth down, against what the average team gets from the same spots. | +1.1 pts95th | +0.1 pts60th |
| Hidden pointsPoints from outside the offense's drives: turnovers, field position, kicking, fourth downs, penalty first downs, return touchdowns and safeties. A margin over the opponent. JMU +8.4: turnovers +2.6, field position +3.8, kicking −0.1, 4th downs +1.3, penalty first downs +0.8. | +8.484th | −8.416th |
Season so far
James Madison6–0 · 120th-hardest schedule
W
vs Liberty20–13covered −6.5
vs Liberty20–13covered −6.5Wvs Wagner87–3covered −46
W
at San Diego State26–13covered +1.5
at San Diego State26–13covered +1.5W
at Old Dominion46–20covered −6.5
at Old Dominion46–20covered −6.5W
vs Marshall45–17covered −15.5
vs Marshall45–17covered −15.5W
at Georgia Southern27–24missed −7
at Georgia Southern27–24missed −7
Old Dominion2–4 · 72nd-hardest schedule
Wvs Norfolk State31–10missed −41
L
at Virginia Tech21–44missed +19.5
at Virginia Tech21–44missed +19.5L
vs East Carolina17–20missed −2.5
vs East Carolina17–20missed −2.5L
vs James Madison20–46missed +6.5
vs James Madison20–46missed +6.5L
at Georgia State10–42missed +2.5
at Georgia State10–42missed +2.5W
at App State10–3covered +9.5
at App State10–3covered +9.5Model cfb_best · uncertainty ±15.6 · run Sep 26, 4:05 PM EDT · froze at kickoff and graded as-is