Track record
Opponent-adjusted PPA/play ratings (garbage time excluded), FBS-vs-FBS only. The betting line is never an input. Walk-forward: every prediction made before learning the result.
Correction — October 13, 2026
This backtest was regenerated and restated; the old numbers were wrong in the model's favor. Two fixes: (1) the old run stepped through games by week number, and because postseason week numbers restart, a few games were effectively rated using later results. Games are now processed strictly by date. (2) Predicted totals now use the shrinkage adopted October 12 — totals pulled 30% toward the league scoring average, validated walk-forward — which the live model uses starting with the Week 7 picks. Spread ratings were not changed by the shrinkage; the ATS change comes entirely from the ordering fix.
Old → new: games 8,945 → 8,947 · ATS 4157-4185-153 (49.8%) → 4104-4220-154 (49.3%) · over/under 4111-4002-89 (50.7%) → 3990-3871-88 (50.8%) · totals error (RMSE) 18.71 → 17.72. The previous figures remain in the site's version history — nothing was quietly edited.
2026 season — livegrading in progress
This season’s picks, graded as games go final. Nothing hidden, nothing rewritten.
Week 6
| Game | Score | Spread pick | ATS | O/U pick | O/U |
|---|---|---|---|---|---|
| 20-44 | Louisville -4 (51%) | win | Over 59.75 (50%) | win | |
| 16-13 | San José State -4.5 (50%) | loss | Over 42.5 (50%) | loss | |
| 16-17 | Utah State -4 (50%) | loss | Under 43.75 (51%) | win | |
| 41-24 | Iowa +2.75 (51%) | win | Under 40.5 (52%) | loss | |
| 10-24 | BYU -11 (50%) | win | No play | — | |
| 21-17 | Pittsburgh -3.75 (50%) | loss | Over 47.25 (50%) | loss | |
| 10-38 | Bowling Green -8.5 (50%) | win | Under 43.5 (51%) | loss | |
| 20-17 | Indiana -7.75 (50%) | loss | No play | — | |
| 17-20 | Tulane +3.5 (50%) | win | Over 48.25 (53%) | loss | |
| 6-27 | Missouri -3.5 (51%) | win | Over 48.5 (50%) | loss | |
| 28-42 | UCF +10.75 (50%) | loss | No play | — | |
| 38-14 | Wake Forest -3.5 (50%) | win | Over 58.5 (50%) | loss | |
| 52-31 | Arizona -3 (50%) | win | Over 61 (52%) | win | |
| 14-45 | Ball State +35.75 (50%) | win | Under 52.5 (50%) | loss | |
| 38-19 | South Carolina +11.5 (50%) | win | Over 58.5 (53%) | loss | |
| 10-3 | Old Dominion +10 (50%) | win | No play | — | |
| 20-19 | Miami (OH) -3.75 (50%) | loss | No play | — | |
| 25-23 | Akron +5.5 (50%) | win | Over 51.5 (52%) | loss | |
| 35-16 | Kansas State -2.5 (50%) | loss | No play | — | |
| 10-50 | North Texas -28.25 (51%) | win | No play | — | |
| 7-58 | Notre Dame -38.5 (51%) | win | Under 54.5 (50%) | loss | |
| 17-15 | Oregon -10.25 (50%) | loss | Under 59.5 (52%) | win | |
| 38-37 | Michigan State +2.5 (51%) | win | No play | — | |
| 23-8 | Toledo -19.25 (51%) | loss | No play | — | |
| 14-31 | Central Michigan +3 (51%) | loss | No play | — | |
| 7-38 | Western Michigan -13.5 (50%) | win | Over 43.25 (52%) | win | |
| 52-17 | Vanderbilt +9.75 (50%) | loss | No play | — | |
| 24-27 | Oklahoma +7.5 (50%) | win | No play | — | |
| 26-34 | Navy -1.75 (50%) | win | No play | — | |
| 25-28 | Georgia Tech +6.5 (50%) | win | No play | — | |
| 20-25 | California +10 (50%) | win | Over 53.25 (50%) | loss | |
| 34-20 | UConn +3.5 (50%) | win | No play | — | |
| 12-28 | East Carolina -9.75 (50%) | win | Over 46.75 (50%) | loss | |
| 24-17 | Tennessee -13.5 (50%) | loss | No play | — | |
| 16-45 | Ohio State -32.5 (50%) | loss | Under 56.5 (53%) | loss | |
| 14-66 | San Diego State +15.5 (50%) | loss | No play | — | |
| 34-35 | LSU -9 (50%) | loss | No play | — | |
| 7-13 | North Dakota State -3 (51%) | loss | Under 47.5 (51%) | win | |
| 27-21 | Marshall -4.25 (50%) | loss | Over 58.75 (52%) | loss | |
| 13-38 | Memphis -14 (50%) | win | Over 53.75 (52%) | loss | |
| 30-13 | Nevada -9.5 (51%) | win | Under 49.5 (50%) | win | |
| 25-28 | Virginia -9.75 (50%) | loss | No play | — | |
| 31-32 | Louisiana +3 (50%) | win | Under 48.25 (52%) | loss | |
| 28-7 | Air Force -7 (51%) | win | No play | — | |
| 27-24 | James Madison -7.5 (50%) | loss | Over 51.25 (53%) | loss | |
| 31-23 | USC +1.75 (50%) | win | No play | — | |
| 20-17 | No play | — | Over 51.25 (52%) | loss | |
| 13-41 | Purdue +2.5 (51%) | win | No play | — | |
| 24-41 | Utah -15.75 (51%) | win | No play | — | |
| 12-30 | Hawai'i +20.75 (50%) | win | Under 50.5 (50%) | win | |
| 38-31 | Boise State -7 (50%) | push | No play | — | |
| 13-34 | Missouri State +1.25 (57%) | loss | Under 56.75 (52%) | win | |
| 3-35 | Liberty -13.5 (69%) | win | No play | — | |
| 24-31 | South Florida +6.5 (85%) | loss | No play | — | |
| 56-49 | Arkansas State -3 (53%) | loss | Over 60.5 (55%) | win |
Week 5
| Game | Score | Spread pick | ATS | O/U pick | O/U |
|---|---|---|---|---|---|
| 13-34 | No play | — | Under 57.25 (69%) | win | |
| 45-44 | North Texas -1.25 (85%) | loss | Under 57.25 (53%) | loss | |
| 30-14 | Liberty -7.5 (54%) | win | Over 50.25 (82%) | loss | |
| 35-33 | Pittsburgh +3 (77%) | win | No play | — | |
| 13-34 | Penn State -2.75 (76%) | loss | Over 45.5 (79%) | win | |
| 37-26 | Notre Dame -21 (97%) | loss | No play | — | |
| 0-55 | Middle Tennessee +18.25 (65%) | loss | Over 49.5 (82%) | win | |
| 56-23 | Alabama -6 (74%) | win | Under 59.75 (57%) | loss | |
| 17-27 | UCF +11.75 (54%) | win | Under 51.5 (54%) | win | |
| 42-41 | UConn +6.5 (98%) | win | No play | — | |
| 42-45 | Iowa State -3 (88%) | push | Under 53.25 (55%) | loss | |
| 16-25 | SMU -21 (54%) | loss | Under 55.5 (55%) | win | |
| 9-14 | Navy +3.5 (69%) | loss | Over 45.75 (97%) | loss | |
| 14-20 | Michigan -5.75 (77%) | loss | Over 43.25 (70%) | loss | |
| 3-57 | Wake Forest -13.25 (59%) | win | Under 53.5 (61%) | loss | |
| 3-31 | Michigan State +10 (75%) | loss | Under 43.25 (67%) | win | |
| 14-38 | Vanderbilt +25.25 (77%) | win | Over 50.5 (87%) | win | |
| 20-17 | No play | — | Under 46.5 (71%) | win | |
| 39-24 | Toledo -19.5 (71%) | loss | Under 52.5 (77%) | loss | |
| 17-41 | Central Michigan -6.5 (78%) | win | Over 46.75 (63%) | win | |
| 10-42 | Old Dominion +2.5 (91%) | loss | Under 51.5 (64%) | loss | |
| 31-39 | UNLV -2.5 (85%) | win | Over 53.5 (69%) | win | |
| 31-14 | Iowa +14.5 (61%) | loss | Under 45.5 (66%) | win | |
| 24-20 | Miami (OH) -13.5 (77%) | loss | No play | — | |
| 13-10 | Ohio -3.5 (79%) | loss | Over 50.75 (78%) | loss | |
| 38-14 | Eastern Michigan +6.25 (87%) | win | Over 48.75 (72%) | win | |
| 14-24 | Tennessee -7 (53%) | win | Under 54.25 (66%) | win | |
| 17-45 | Missouri +5.5 (74%) | win | Under 57.25 (70%) | loss | |
| 59-8 | Memphis -20.5 (69%) | win | Under 52.75 (76%) | loss | |
| 28-31 | Louisville -3.5 (74%) | loss | Under 58.5 (62%) | loss | |
| 7-38 | Florida State +2.75 (55%) | win | Over 51.5 (54%) | loss | |
| 0-28 | North Dakota State -18.25 (63%) | win | Under 45.5 (88%) | win | |
| 17-45 | James Madison -19.25 (52%) | win | Under 56.25 (63%) | loss | |
| 23-48 | Maryland +14.5 (55%) | loss | No play | — | |
| 7-61 | New Mexico -22.5 (84%) | win | Under 48.5 (77%) | loss | |
| 24-17 | No play | — | Over 61.5 (77%) | loss | |
| 35-34 | South Carolina -2.75 (56%) | loss | Under 53.5 (66%) | loss | |
| 56-26 | Colorado State +6 (64%) | loss | Over 61.5 (53%) | win | |
| 16-14 | UTSA -11.75 (61%) | loss | Over 56.25 (55%) | loss | |
| 35-52 | No play | — | Under 57.5 (56%) | loss | |
| 17-10 | BYU -6.5 (58%) | win | Over 47.75 (57%) | loss | |
| 7-34 | Arkansas +14 (57%) | loss | Over 50.25 (89%) | loss | |
| 31-24 | Coastal Carolina +2.5 (53%) | loss | Over 54.25 (78%) | win | |
| 17-13 | South Florida -6.5 (81%) | loss | Over 48.25 (83%) | loss | |
| 29-7 | Texas Tech -12 (91%) | win | Under 50.5 (73%) | win | |
| 21-25 | USC -9.5 (53%) | loss | Under 58.75 (57%) | win | |
| 29-31 | Louisiana Tech +2.5 (52%) | win | Under 47.5 (58%) | loss | |
| 41-13 | Miami -16.75 (51%) | win | No play | — | |
| 18-37 | Utah State +20.25 (58%) | win | No play | — | |
| 47-15 | Indiana -23.75 (84%) | win | Over 56.25 (70%) | win | |
| 20-23 | Louisiana -6.5 (54%) | loss | Under 47.75 (61%) | win | |
| 26-6 | Washington State -1.75 (68%) | loss | Under 45.5 (90%) | win | |
| 55-19 | Baylor +4 (58%) | win | Under 49.25 (66%) | loss | |
| 29-31 | San Diego State +7 (76%) | win | Over 59.25 (54%) | win | |
| 7-34 | No play | — | Over 55.5 (85%) | loss | |
| 20-16 | No play | — | Over 51.5 (63%) | loss |
ATS by era
The college market is less efficient than the NFL’s — but “less efficient” is not the same as “beatable.” The dashed line is 52.4% — break-even against standard -110 vig.
Season by season
Every season the model was tested on. Green ATS seasons beat the vig; the rest didn’t.
| Season | Games | Straight-up | Our RMSE | Line RMSE | ATS record | ATS % |
|---|---|---|---|---|---|---|
| 2025 | 806 | 69% | 17.35 | 15.00 | 363-388-17 | 48% |
| 2024 | 794 | 70% | 17.84 | 15.41 | 357-382-17 | 48% |
| 2023 | 790 | 72% | 17.13 | 15.21 | 366-364-15 | 50% |
| 2022 | 774 | 67% | 17.75 | 15.25 | 355-362-13 | 50% |
| 2021 | 767 | 69% | 17.58 | 15.60 | 361-353-10 | 51% |
| 2020 | 534 | 70% | 18.20 | 16.02 | 230-265-9 | 46% |
| 2019 | 773 | 72% | 17.38 | 15.47 | 365-360-10 | 50% |
| 2018 | 769 | 71% | 17.84 | 15.98 | 344-370-13 | 48% |
| 2017 | 770 | 70% | 17.89 | 15.64 | 353-355-16 | 50% |
| 2016 | 747 | 69% | 18.83 | 16.60 | 332-368-15 | 47% |
| 2015 | 757 | 74% | 17.60 | 15.88 | 349-359-8 | 49% |
| 2014 | 666 | 68% | 18.40 | 15.74 | 329-294-11 | 53% |