Week 4 Recap: Model vs. Market
Report card time. Every prediction below was locked in before its game kicked off, no do-overs and no peeking. For each game, the model's pick is simple: if it predicted more points than the sportsbooks' over/under, that's an Over; fewer, an Under. Then we keep score like a team does: wins and losses. Reminder: the model is an experiment, not a crystal ball. Tested on every season from 2010 to 2025, it won 50.3% of its picks, basically a coin flip, so one good or bad week is just noise. Here's how the model works.
Season win rate: 47.0%. Why 52.4% to break even? Sportsbooks take a cut, called the vig: you risk $110 to win $100, so going 50–50 still loses money. (Betting is for adults, and the house usually wins. We just keep score.) Average miss this week: the model was off by 11.3 points, the sportsbooks by 10.6; the model was closer on 24 of 58 games.
The 5 biggest misses
The games where our model's guess ended up furthest from the real final total. Blowouts, shootouts, and games that just went totally off script. Humbling, every week.
| Matchup | Posted O/U | Model | Actual | Off by | Pick | Result |
|---|---|---|---|---|---|---|
| Colorado State @ UTSA | 57.5 | 58.1 | 45–59 (104.0) | 45.9 | Over | Win |
| South Florida @ Bowling Green | 49.5 | 53.6 | 14–6 (20.0) | 33.6 | Over | Loss |
| Kennesaw State @ Arkansas State | 53.5 | 54.0 | 14–17 (31.0) | 23.0 | Over | Loss |
| Troy @ Utah State | 47.5 | 51.1 | 10–21 (31.0) | 20.1 | Over | Loss |
| Middle Tennessee @ Jacksonville State | 51.5 | 55.8 | 13–23 (36.0) | 19.8 | Over | Loss |
Every game, every call
| Matchup | Posted O/U | Model | Actual | Conditions | Pick | Result |
|---|---|---|---|---|---|---|
| Colorado State @ UTSA | 57.5 | 58.1 | 45–59 (104.0) | dome | Over | Win |
| South Florida @ Bowling Green | 49.5 | 53.6 | 14–6 (20.0) | 9mph wind | Over | Loss |
| Kennesaw State @ Arkansas State | 53.5 | 54.0 | 14–17 (31.0) | 8mph wind | Over | Loss |
| Troy @ Utah State | 47.5 | 51.1 | 10–21 (31.0) | 7mph wind | Over | Loss |
| Middle Tennessee @ Jacksonville State | 51.5 | 55.8 | 13–23 (36.0) | 5mph wind | Over | Loss |
| Ole Miss @ Florida | 58.5 | 60.8 | 28–52 (80.0) | 6mph wind | Over | Win |
| Texas @ Tennessee | 54.5 | 56.0 | 20–17 (37.0) | 6mph wind | Over | Loss |
| Colorado @ Baylor | 54.5 | 54.1 | 13–23 (36.0) | 6mph wind | Under | Win |
| TCU @ UCF | 48.5 | 52.0 | 13–21 (34.0) | 10mph wind | Over | Loss |
| Army @ Temple | 48.5 | 55.9 | 21–17 (38.0) | 17mph wind | Over | Loss |
| Clemson @ California | 51.5 | 51.9 | 24–10 (34.0) | 7mph wind | Over | Loss |
| Oregon State @ UTEP | 56.5 | 57.3 | 33–7 (40.0) | 4mph wind | Over | Loss |
| Vanderbilt @ Auburn | 54.5 | 53.0 | 15–21 (36.0) | 7mph wind | Under | Win |
| Air Force @ Nevada | 50.5 | 52.1 | 36–33 (69.0) | 8mph wind | Over | Win |
| Ball State @ Kent State | 50.5 | 55.6 | 13–26 (39.0) | 13mph wind | Over | Loss |
| James Madison @ Old Dominion | 43.5 | 50.5 | 46–20 (66.0) | 0.01in rain, 22mph wind | Over | Win |
| Louisiana @ Charlotte | 49.5 | 55.7 | 34–7 (41.0) | 9mph wind | Over | Loss |
| Rice @ Fresno State | 43.5 | 47.5 | 24–38 (62.0) | 7mph wind | Over | Win |
| Houston @ Georgia Southern | 56.5 | 55.9 | 42–28 (70.0) | 7mph wind | Under | Loss |
| Navy @ UAB | 50.5 | 57.8 | 20–24 (44.0) | 6mph wind | Over | Loss |
| Virginia Tech @ Boston College | 46.5 | 48.6 | 21–14 (35.0) | 0.72in rain, 21mph wind | Over | Loss |
| App State @ NC State | 55.5 | 58.4 | 31–41 (72.0) | 7mph wind | Over | Win |
| Tulsa @ Arkansas | 50.5 | 53.4 | 6–34 (40.0) | 0.03in rain, 8mph wind | Over | Loss |
| Boise State @ Western Michigan | 50.5 | 51.9 | 32–7 (39.0) | 5mph wind | Over | Loss |
| Massachusetts @ Sacramento State | 49.5 | 53.6 | 35–6 (41.0) | 7mph wind | Over | Loss |
| UConn @ Miami (OH) | 52.5 | 57.4 | 21–24 (45.0) | 8mph wind | Over | Loss |
| Oklahoma State @ West Virginia | 60.5 | 54.2 | 41–24 (65.0) | 7mph wind | Under | Loss |
| Arizona @ Washington State | 48.5 | 47.4 | 34–24 (58.0) | 5mph wind | Under | Loss |
| Texas A&M @ LSU | 52.5 | 51.5 | 6–35 (41.0) | 4mph wind | Under | Win |
| Delaware @ Virginia | 52.5 | 54.9 | 3–42 (45.0) | 0.01in rain, 13mph wind | Over | Loss |
| Hawai'i @ Wyoming | 43.5 | 46.6 | 10–27 (37.0) | 15mph wind | Over | Loss |
| Southern Miss @ Tulane | 52.5 | 54.5 | 21–24 (45.0) | 4mph wind | Over | Loss |
| South Carolina @ Alabama | 53.5 | 57.7 | 18–49 (67.0) | 6mph wind | Over | Win |
| Sam Houston @ Texas Tech | 56.5 | 53.7 | 14–49 (63.0) | 13mph wind | Under | Loss |
| Georgia Tech @ Stanford | 48.5 | 52.2 | 27–34 (61.0) | 6mph wind | Over | Win |
| Wisconsin @ Penn State | 43.5 | 52.6 | 24–20 (44.0) | 13mph wind | Over | Win |
| South Alabama @ Kentucky | 54.5 | 57.6 | 21–45 (66.0) | 9mph wind | Over | Win |
| Nebraska @ Michigan State | 48.5 | 52.2 | 31–13 (44.0) | 8mph wind | Over | Loss |
| Iowa @ Michigan | 39.5 | 46.7 | 20–19 (39.0) | 8mph wind | Over | Loss |
| Northern Illinois @ Georgia State | 56.5 | 56.7 | 14–35 (49.0) | 9mph wind | Over | Loss |
| Central Michigan @ Miami | 52.5 | 47.8 | 3–52 (55.0) | 0.03in rain, 7mph wind | Under | Loss |
| New Mexico @ New Mexico State | 47.5 | 53.7 | 42–18 (60.0) | 5mph wind | Over | Win |
| Illinois @ Ohio State | 53.5 | 55.1 | 19–42 (61.0) | 11mph wind | Over | Win |
| Oklahoma @ Georgia | 43.5 | 49.5 | 13–41 (54.0) | 8mph wind | Over | Win |
| Missouri @ Mississippi State | 58.5 | 59.0 | 24–31 (55.0) | 6mph wind | Over | Loss |
| Oregon @ USC | 60.5 | 64.1 | 41–27 (68.0) | 9mph wind | Over | Win |
| San Diego State @ Toledo | 50.5 | 53.1 | 16–41 (57.0) | 8mph wind | Over | Win |
| Minnesota @ Washington | 45.5 | 47.1 | 27–24 (51.0) | 7mph wind | Over | Win |
| UNLV @ Akron | 53.5 | 51.2 | 38–10 (48.0) | 13mph wind | Under | Win |
| UCLA @ Maryland | 55.5 | 53.9 | 54–3 (57.0) | 0.11in rain, 16mph wind | Under | Loss |
| Utah @ Iowa State | 47.5 | 50.6 | 31–17 (48.0) | 0.01in rain, 15mph wind | Over | Win |
| Florida Atlantic @ UL Monroe | 58.5 | 59.7 | 45–17 (62.0) | 4mph wind | Over | Win |
| Liberty @ Coastal Carolina | 49.5 | 53.1 | 34–17 (51.0) | 0.04in rain, 14mph wind | Over | Win |
| Wake Forest @ Louisville | 57.5 | 58.5 | 30–27 (57.0) | 6mph wind | Over | Loss |
| Kansas State @ Cincinnati | 55.5 | 58.3 | 26–31 (57.0) | 7mph wind | Over | Win |
| Missouri State @ SMU | 60.5 | 58.7 | 24–34 (58.0) | 10mph wind | Under | Win |
| Notre Dame @ Purdue | 56.5 | 59.6 | 49–10 (59.0) | 6mph wind | Over | Win |
| Northwestern @ Indiana | 49.5 | 52.1 | 23–29 (52.0) | 6mph wind | Over | Win |
Not betting advice. This is a running scorecard for an experimental model, posted automatically once each week's games are final. Every week's recap lives on the blog.