Pre-game pick
The market's. Sportsbook odds de-vigged book by book, then averaged; the pick is the favorite.
Every moving part, explained
The short version. Before kickoff, we read what sportsbooks are charging for a game, remove their cut, and lock that probability in our database. During the game, our own live model reprices it with every score. If a pick we published pulls well ahead while the game is still running, we email you. Afterward, every call is graded against the final score, in public. Games no sportsbook is pricing yet get a rating of our own, always marked as an estimate.
We say this up front because it matters: our pre-game pick largely agrees with the market by design. We don't claim to out-predict the sportsbooks. What we build is everything around that number.
The market's. Sportsbook odds de-vigged book by book, then averaged; the pick is the favorite.
Ours. Rates games no book is pricing yet; never mixed into a market price.
Ours. Reprices every game from score, time left and the pre-game number.
Ours. Decides when an email is worth sending.
AI-written, ours. Reads injury and lineup news before NFL games; shown separately.
Ours. Locks every call before kickoff and scores it afterward.
Eight steps. Every number on the board is the output of this exact sequence, and each step names where it came from.
Every game of the season, with its week, stage, live score and clock, comes from API-Sports. An odds feed only lists what it's currently pricing; the schedule feed covers the whole season.
source · API-SportsWe take every sportsbook the feed carries for a game, remove each book’s margin from its own prices, and average the fair chances that are left. The number of books varies by game and is shown on each card as “N books.” Removing the margin book by book means a book that charges more can’t tilt the average toward the favorite. The margin comes off by the power method, which takes more of it from the longshot, where books load most of it. Books usually open a game 1–2 days before kickoff, so most of the season has no market price at any given moment.
source · API-Sports oddsA sportsbook prices a two-sided game at roughly 104–108% instead of 100%. The extra is its margin. We strip it out so both sides add up to exactly 100%. This is what turns a price into a probability.
method · de-vigA game with no odds yet still gets a number from our own power rating, built only from past results. It weights margin of victory so one blowout can't dominate, regresses last season toward average, and caps any game at 95%. It's marked est and is never blended into a market price.
model · Elo power ratingsTwo hours before kickoff, the call is saved: the side, the probability, the number of books and the time. Until then the board's pick is provisional and can still move. Once saved, it is never overwritten. The final pre-game price is saved separately as the closing line, and the database refuses a closing price once the game has started.
method · captureBefore NFL games, an AI model reads the latest team news from ESPN's public NFL news feed, above all injuries and who is actually playing, and writes a short news read. It's shown separately, never blended into the pick, and graded against the result like everything else.
AI · news readDuring the game, our live win-probability model reprices every pick as the score and clock change. An email goes out only when all four conditions in section III are true. One email per game, never repeated. An alert reports a position, not advice; the cash-out happens at your sportsbook, which we have no connection to.
model · live win probabilityEvery finished game is scored against the final result. We publish hit rate, Brier score (how far each stated probability was from what happened; 0.250 is a coin flip, lower is better), closing-line value, and what a flat stake would have returned, all in units, not dollars. Preseason and thinly priced calls are reported separately, with the reason, and nothing is removed from the record.
output · the recordStage 05 stores a call before kickoff. This is what that buys you once the game is being played — the same live model, replayed against the real scoring plays, including the ones where it stayed quiet.
Before kickoff the board called Ravens at 59%. Here is what happened next.
Alert fires — cash-out window open
“We called Ravens at 59% before kickoff. They are now 78% to win it. If you took that call, your sportsbook's cash-out is likely showing a strong number right now.”
Final: Commanders 3–41 Ravens.
Recomputed from the same live model that runs in production, against the real scoring plays of this game. An alert reports a position, not advice — cash-out happens at your sportsbook. 21+ where permitted.
Four conditions, all required. Each one exists to rule out a different way of being annoying or wrong.
A bet returns the ratio between the price you took and the price now. At fair value, a ticket is worth the stake times the live chance divided by the chance we published, so it is in profit once our live model puts it above the probability we published before kickoff. No absolute level is required: a call made at 45% and now running at 55% is in profit, and one made at 85% and still at 85% is not, however commanding it looks. A floor of 59% is also applied.
floor · 59%At least 10 percentage points clear of the probability we gave it before kickoff, which keeps windows rare and each one substantial.
margin · +10ppA cash-out is the sportsbook buying your ticket back at the live price, then taking another cut, typically 5–15% under fair value. So fair-value profit is not enough: we only alert once an offer 10% under fair would still return more than you staked. Your stake size doesn't change this: $130 and $1,300 cash out at the same percentage. An early lead usually means the stake back plus a few percent, not the full win, which only exists if the pick wins.
book's cut · 10%Cash-out only exists before the final whistle. Once a game ends the bet simply settles and there was never a decision to make, so an alert then would be an email about something you cannot act on.
rule · in play onlyEvery board — NFL, college, NBA, NHL, MLB, soccer and golf — the schedule, both calculators, the World Cup archive and your account page. The landing page (with a playable Calculator+), this page, the results record, every pick page and coverage are open to everyone — the gate is on the working tools, not on the evidence.
An email address, a password, when you confirmed you are 21 or older, the sports you follow and your email choices. The password is hashed with bcrypt inside the database and never reaches this application, so a compromise of the site cannot reveal it. There is no name, no payment detail and no tracking profile.
Signing in sets a cookie signed with a secret only the server holds. Nothing about the session is stored server-side, and the cookie cannot be forged or replayed against the database directly.
Cash-out alerts for the NFL, college football and the NBA, and a pre-game email for the NBA, NHL, MLB and soccer. Each is claimed in the database before it is sent, so it goes once per game or slate, never twice. Change your sports or turn emails off under Sports you follow on your account page; every email also carries a one-click unsubscribe.
A separate board with a separate source, and one important difference worth stating plainly.
Data Golf, which supplies the tournament field, each player's chance of winning before and during the tournament, and the live leaderboard during a round.
The probabilities in that feed sum to exactly 1.0, which means they are a model's output rather than a set of bookmaker prices. There is no margin in them to strip, so de-vigging would be meaningless — and the board says model rather than market for that reason.
Where a real bookmaker field is priced, a 150-player market cannot be de-vigged by simple proportion the way a two-way market can. It is solved with the power method: raising every implied probability to an exponent found by bisection until the field sums to one.
No capture, no closing lines and no cash-out alerts. Those are built on the NFL board and have not been extended here, so the golf record is a live read rather than a graded one.
The same machinery as the NFL board pointed at a far bigger, far more thinly priced season.
College football is the same two-way market as the NFL — no draw — so the de-vig, the goal-free win probability and the capture path are shared rather than rewritten. What is new is a normalizer: this feed uses its stage field to name the division rather than the season phase, and a college week 19 is a late week rather than a play-off round.
The season carries 1,679 games across FBS, FCS and Division II/III. Only FBS is priced by bookmakers in any depth, so the board takes those 874 and leaves the rest — a game nobody quotes is a game the board can say nothing about.
This feed quotes a minority of the slate, including real FBS matchups that bookmakers certainly price. So the record reports how many finished games could be graded at all, beside how many were called right. Unpriced games count as neither hits nor misses: a board can always look more accurate by saying less.
Roughly a day or two before kickoff, not weeks ahead. That is why the board is driven on a schedule rather than by whoever happens to visit — the window in which a call can honestly be stored is narrow, and a Saturday slate resolves inside an afternoon.
Four sports on one shape: the same feed, the same capture and the same grading, each with its own record.
ESPN's public scoreboard: the schedule, the live score and DraftKings' moneyline for every NBA, NHL and MLB game, and for soccer across the Premier League, La Liga, Serie A, the Bundesliga, Ligue 1, the Champions League and MLS. Nothing is typed in by hand.
These boards carry a single bookmaker's line rather than an average of several, with the margin removed the same way. One book is a thinner read than five, so the results page names DraftKings rather than calling it a consensus, and the book-count rule the NFL headline applies is not used here.
A match can end level, so its market is three-way: home, draw, away. The draw is a real pick and a real result — a level score is a hit for a draw call and a miss for either team. A game settled in extra time or on penalties is never graded, because the line was for ninety minutes.
A board, and a record graded from the day each one went live — nothing before it was filled in afterwards. Follow a sport and a pre-game email lists that slate's picks before the first game. The NBA also gets cash-out alerts, from a live model of its own; the NHL, MLB and soccer don't yet.
A different sport and a different model. The tournament is over, so this archive is a finished record rather than a live board — and because football has a draw, its market is three-way and a goal model does work the NFL never needs.
Every market starts as real bookmaker prices. For each fixture we read the moneyline (home/draw/away) from every bookmaker that prices it, then average them into a consensus — more books, more reliable.
source · The Odds APIBookmakers price every market slightly above 100% — that overround is their margin. We strip it out (“de-vig”) so the probabilities are fair and sum to exactly 100%. This is the single most important step.
method · de-vigFor each fixture we solve for the pair of Poisson scoring rates whose implied win/draw/loss best matches the fair market. That score matrix gives us every goal market — over/under, BTTS, clean sheets, the most-likely scoreline and the full correct-score grid.
model · PoissonThe dashboard consumes normalized JSON from server-side routes, so the interface is identical whether the data is live or sample. Upstream calls are cached and shared across visitors to respect the free quota.
output · the boardEight views onto the same de-vigged consensus and goal model.
In-play scores, recent results and upcoming kickoffs, refreshed while a game is actually on.
Per-fixture win/draw/loss, expected goals, over/under lines, clean sheets and the correct-score grid.
Every team's probability of lifting the trophy, de-vigged from the outright market.
Pit any two teams — even unscheduled — through the same goal model, with a neutral-venue toggle.
Players ranked by their chance to score in the next fixture, from anytime-goalscorer odds.
A backtest of the model's flat-stake picks against real settled results — honest P&L, not a sales pitch.
Where one bookmaker's best price is longer than the fair consensus price. A comparison of prices, not a recommendation.
Group standings and qualification context for the tournament structure.
Every tab on both boards, and the feed behind it — including the ones running on sample data. This is the same text the info point beside each board shows, so the two can't drift apart.
Every term on a match card, in plain language. The same definitions power the in-app tooltips.
How well the stated probabilities are calibrated, whether they beat the closing line, how each signal scores on its own, and what a flat stake on every call would have come to. Including the numbers that are unflattering.
From Oct 15, 2026, a sportsbook's margin comes off its prices by the power method, which takes more of it from the longshot, so favorites read a point or two higher than under the even split we used before. Calls stored before then keep the chances they were stored with.
| Record | W–L | Hit rate | Profit | ROI | Brier |
|---|---|---|---|---|---|
| Regular and postseason | 17–5 | 77.3% | +68.68u | 31.2% | 0.219 |
| Thinly priced | 54–39 | 58.1% | −95.06u | −10.2% | 0.238 |
| Preseason | 8–14 | 36.4% | −85.53u | −38.9% | 0.265 |
| Every call | 79–58 | 57.7% | −111.91u | −8.2% | 0.239 |
Thinly priced calls are counted separately. A bulk run wrote most of this season’s calls in a single day, for games still weeks away, storing whatever price existed at the time — a median of two bookmakers, against the eleven a game carries when it is read an hour before kickoff. Two quotes taken weeks out is a reading, not a market, and a headline resting on them would rest mostly on prices nobody was seriously offering.
They went 54–39 over 93 settled calls, against 17–5 for the fully priced ones — so on strike rate the thin ones look better, and this split is not a way of tucking a worse number out of sight. An early line is at its most lopsided before a real market forms, so those calls are mostly heavy favourites priced cheap: they win often and return little, which flatters a hit rate while saying very little about whether the board can price a game. That is why they are separated on how they were priced rather than on how they turned out. Nothing is deleted — a call, once published, stays published — and every one is in the list below.
Preseason is counted separately because it is barely the same contest: starters sit, rosters turn over by the quarter, and the result carries little information about the teams that play in September. The board priced 22 of them and went 8–14. It is shown rather than dropped — a record you are allowed to edit is not a record — but reading it beside the regular season as one number would describe neither.
| Date | Call | Said | Result | Score |
|---|---|---|---|---|
| 1 Nov | Tampa Bay Buccaneers over Atlanta Falcons | 66% | ✓ Won | 16–0 |
| 1 Nov | Pittsburgh Steelers over Cleveland Browns | 69% | ✓ Won | 27–6 |
| 1 Nov | Detroit Lions over Minnesota Vikings | 67% | ✓ Won | 19–15 |
| 1 Nov | Buffalo Bills over Baltimore Ravens | 56% | ✓ Won | 36–10 |
| 1 Nov | Jacksonville Jaguars over Indianapolis Colts | 65% | ✓ Won | 42–7 |
| 1 Nov | New York Jets over Las Vegas Raiders | 52% | ✕ Lost | 33–38 |
| 1 Nov | Cincinnati Bengals over Tennessee Titans | 72% | ✓ Won | 43–36 |
| 1 Nov | Dallas Cowboys over Arizona Cardinals | 80% | ✕ Lost | 30–33 |
| 29 Oct | Green Bay Packers over Carolina Panthers | 75% | ✓ Won | 27–19 |
| 26 Oct | Philadelphia Eagles over Dallas Cowboys | 60% | ✕ Lost | 21–38 |
| 25 Oct | Seattle Seahawks over Kansas City Chiefs | 60% | ✓ Won | 20–3 |
| 25 Oct | Los Angeles Rams over Las Vegas Raiders | 75% | ✓ Won | 35–21 |
| 25 Oct | Detroit Lions over Green Bay Packers | 57% | ✓ Won | 20–17 |
| 25 Oct | Denver Broncos over Arizona Cardinals | 74% | ✓ Won | 30–16 |
| 25 Oct | New York Jets over Miami Dolphins | 57% | ✕ Lost | 25–28 |
| 25 Oct | San Francisco 49ers over Atlanta Falcons | 66% | ✕ Lost | 20–29 |
| 25 Oct | Minnesota Vikings over Indianapolis Colts | 57% | ✓ Won | 16–10 |
| 25 Oct | Tennessee Titans over Cleveland Browns | 57% | ✕ Lost | 24–27 |
| 25 Oct | Tampa Bay Buccaneers over Carolina Panthers | 53% | ✓ Won | 43–13 |
| 25 Oct | Baltimore Ravens over Cincinnati Bengals | 63% | ✕ Lost | 13–35 |
| 25 Oct | Houston Texans over New York Giants | 69% | ✕ Lost | 21–27 |
| 25 Oct | Pittsburgh Steelers over New Orleans Saints | 55% | ✓ Won | 16–10 |
| 22 Oct | Chicago Bears over New England Patriots | 52% | ✓ Won | 30–24 |
| 19 Oct | San Francisco 49ers over Washington Commanders | 68% | ✓ Won | 23–17 |
| 18 Oct | Green Bay Packers over Dallas Cowboys | 62% | ✓ Won | 23–13 |
| 18 Oct | Kansas City Chiefs over Los Angeles Chargers | 57% | ✓ Won | 22–6 |
| 18 Oct | Buffalo Bills over Las Vegas Raiders | 72% | ✓ Won | 33–30 |
| 18 Oct | Los Angeles Rams over Arizona Cardinals | 86% | ✕ Lost | 16–18 |
| 18 Oct | Indianapolis Colts over Tennessee Titans | 66% | ✕ Lost | 20–26 |
| 18 Oct | New England Patriots over New York Jets | 79% | ✓ Won | 26–19 |
| 18 Oct | Baltimore Ravens over Cleveland Browns | 70% | ✕ Lost | 10–13 |
| 18 Oct | Chicago Bears over Atlanta Falcons | 60% | ✓ Won | 31–23 |
| 18 Oct | Tampa Bay Buccaneers over Pittsburgh Steelers | 53% | ✕ Lost | 19–26 |
| 18 Oct | Philadelphia Eagles over Carolina Panthers | 72% | ✕ Lost | 14–25 |
| 18 Oct | New York Giants over New Orleans Saints | 59% | ✕ Lost | 27–34 |
| 18 Oct | Houston Texans over Jacksonville Jaguars | 50% | ✓ Won | 34–31 |
| 15 Oct | Seattle Seahawks over Denver Broncos | 53% | ✕ Lost | 14–17 |
| 12 Oct | Los Angeles Rams over Buffalo Bills | 63% | ✕ Lost | 34–37 |
| 11 Oct | Baltimore Ravens over Atlanta Falcons | 64% | ✓ Won | 30–23 |
| 11 Oct | Detroit Lions over Arizona Cardinals | 76% | ✓ Won | 45–21 |
| 11 Oct | Seattle Seahawks over San Francisco 49ers | 65% | ✕ Lost | 29–32 |
| 11 Oct | Green Bay Packers over Chicago Bears | 61% | ✓ Won | 31–7 |
| 11 Oct | Los Angeles Chargers over Denver Broncos | 57% | ✕ Lost | 17–23 |
| 11 Oct | Cincinnati Bengals over Miami Dolphins | 70% | ✓ Won | 31–24 |
| 11 Oct | New York Jets over Cleveland Browns | 56% | ✓ Won | 17–12 |
| 11 Oct | Pittsburgh Steelers over Indianapolis Colts | 55% | ✓ Won | 34–22 |
| 11 Oct | Minnesota Vikings over New Orleans Saints | 51% | ✓ Won | 23–13 |
| 11 Oct | Houston Texans over Tennessee Titans | 61% | ✓ Won | 26–3 |
| 11 Oct | New England Patriots over Las Vegas Raiders | 77% | ✓ Won | 45–17 |
| 11 Oct | Philadelphia Eagles over Jacksonville Jaguars | 53% | ✕ Lost | 17–19 |
| 8 Oct | Dallas Cowboys over Tampa Bay Buccaneers | 63% | ✕ Lost | 16–24 |
| 5 Oct | New Orleans Saints over Atlanta Falcons | 55% | ✕ Lost | 24–45 |
| 4 Oct | Detroit Lions over Carolina Panthers | 60% | ✕ Lost | 26–32 |
| 4 Oct | Kansas City Chiefs over Las Vegas Raiders | 68% | ✓ Won | 30–27 |
| 4 Oct | San Francisco 49ers over Denver Broncos | 57% | ✓ Won | 24–14 |
| 4 Oct | Seattle Seahawks over Los Angeles Chargers | 61% | ✓ Won | 30–23 |
| 4 Oct | Minnesota Vikings over Miami Dolphins | 76% | ✓ Won | 15–10 |
| 4 Oct | Baltimore Ravens over Tennessee Titans | 77% | ✓ Won | 24–18 |
| 4 Oct | New York Giants over Arizona Cardinals | 72% | ✓ Won | 36–24 |
| 4 Oct | Green Bay Packers over Tampa Bay Buccaneers | 52% | ✓ Won | 17–14 |
| 4 Oct | Cincinnati Bengals over Jacksonville Jaguars | 57% | ✕ Lost | 17–22 |
| 4 Oct | Buffalo Bills over New England Patriots | 61% | ✕ Lost | 26–29 |
| 4 Oct | Los Angeles Rams over Philadelphia Eagles | 56% | ✓ Won | 24–20 |
| 4 Oct | Chicago Bears over New York Jets | 77% | ✓ Won | 23–12 |
| 4 Oct | Houston Texans over Dallas Cowboys | 57% | ✕ Lost | 30–34 |
| 4 Oct | Indianapolis Colts over Washington Commanders | 51% | ✓ Won | 30–13 |
| 1 Oct | Pittsburgh Steelers over Cleveland Browns | 57% | ✕ Lost | 24–27 |
| 28 Sept | Chicago Bears over Philadelphia Eagles | 52% | ✓ Won | 27–7 |
| 27 Sept | Los Angeles Rams over Denver Broncos | 59% | ✕ Lost | 26–30 |
| 27 Sept | New Orleans Saints over Las Vegas Raiders | 63% | ✕ Lost | 27–35 |
| 27 Sept | Baltimore Ravens over Dallas Cowboys | 55% | ✓ Won | 34–31 |
| 27 Sept | Tampa Bay Buccaneers over Minnesota Vikings | 55% | ✕ Lost | 16–23 |
| 27 Sept | San Francisco 49ers over Arizona Cardinals | 82% | ✓ Won | 36–30 |
| 27 Sept | Buffalo Bills over Los Angeles Chargers | 60% | ✓ Won | 24–16 |
| 27 Sept | Carolina Panthers over Cleveland Browns | 55% | ✕ Lost | 18–21 |
| 27 Sept | Jacksonville Jaguars over New England Patriots | 52% | ✓ Won | 35–6 |
| 27 Sept | Seattle Seahawks over Washington Commanders | 62% | ✕ Lost | 31–33 |
| 27 Sept | Detroit Lions over New York Jets | 79% | ✓ Won | 31–24 |
| 27 Sept | Cincinnati Bengals over Pittsburgh Steelers | 53% | ✕ Lost | 27–30 |
| 27 Sept | Kansas City Chiefs over Miami Dolphins | 77% | ✓ Won | 24–10 |
| 27 Sept | Houston Texans over Indianapolis Colts | 52% | ✕ Lost | 17–19 |
| 27 Sept | New York Giants over Tennessee Titans | 61% | ✓ Won | 12–7 |
| 24 Sept | Green Bay Packers over Atlanta Falcons | 75% | ✕ Lost | 14–35 |
| 21 Sept | Los Angeles Rams over New York Giants | 77% | ✓ Won | 28–6 |
| 20 Sept | Kansas City Chiefs over Indianapolis Colts | 73% | ✓ Won | 33–30 |
| 20 Sept | San Francisco 49ers over Miami Dolphins | 82% | ✓ Won | 35–13 |
| 20 Sept | Dallas Cowboys over Washington Commanders | 64% | ✓ Won | 37–20 |
| 20 Sept | Seattle Seahawks over Arizona Cardinals | 81% | ✓ Won | 31–7 |
| 20 Sept | Denver Broncos over Jacksonville Jaguars | 58% | ✓ Won | 20–13 |
| 20 Sept | Los Angeles Chargers over Las Vegas Raiders | 77% | ✕ Lost | 14–26 |
| 20 Sept | Tampa Bay Buccaneers over Cleveland Browns | 70% | ✕ Lost | 19–23 |
| 20 Sept | Baltimore Ravens over New Orleans Saints | 75% | ✕ Lost | 17–24 |
| 20 Sept | Houston Texans over Cincinnati Bengals | 56% | ✕ Lost | 6–20 |
| 20 Sept | Chicago Bears over Minnesota Vikings | 64% | ✕ Lost | 3–9 |
| 20 Sept | Green Bay Packers over New York Jets | 69% | ✓ Won | 20–17 |
| 20 Sept | Philadelphia Eagles over Tennessee Titans | 66% | ✓ Won | 24–20 |
| 20 Sept | New England Patriots over Pittsburgh Steelers | 68% | ✓ Won | 20–3 |
| 20 Sept | Atlanta Falcons over Carolina Panthers | 53% | ✕ Lost | 3–34 |
| 17 Sept | Buffalo Bills over Detroit Lions | 59% | ✓ Won | 41–31 |
| 14 Sept | Kansas City Chiefs over Denver Broncos | 56% | ✓ Won | 31–10 |
| 13 Sept | Dallas Cowboys over New York Giants | 58% | ✕ Lost | 20–28 |
| 13 Sept | Minnesota Vikings over Green Bay Packers | 52% | ✓ Won | 39–22 |
| 13 Sept | Las Vegas Raiders over Miami Dolphins | 63% | ✓ Won | 27–13 |
| 13 Sept | Philadelphia Eagles over Washington Commanders | 66% | ✓ Won | 24–22 |
| 13 Sept | Los Angeles Chargers over Arizona Cardinals | 81% | ✕ Lost | 14–26 |
| 13 Sept | Baltimore Ravens over Indianapolis Colts | 62% | ✓ Won | 41–23 |
| 13 Sept | Buffalo Bills over Houston Texans | 51% | ✓ Won | 36–31 |
| 13 Sept | Pittsburgh Steelers over Atlanta Falcons | 60% | ✓ Won | 20–13 |
| 13 Sept | Chicago Bears over Carolina Panthers | 58% | ✓ Won | 59–37 |
| 13 Sept | Jacksonville Jaguars over Cleveland Browns | 76% | ✓ Won | 34–10 |
| 13 Sept | Cincinnati Bengals over Tampa Bay Buccaneers | 64% | ✓ Won | 33–27 |
| 13 Sept | Tennessee Titans over New York Jets | 55% | ✕ Lost | 10–23 |
| 13 Sept | Detroit Lions over New Orleans Saints | 73% | ✓ Won | 31–30 |
| 10 Sept | Los Angeles Rams over San Francisco 49ers | 64% | ✕ Lost | 7–27 |
| 9 Sept | Seattle Seahawks over New England Patriots | 63% | ✓ Won | 13–10 |
| 29 Aug | Tennessee Titans over Chicago BearsPreseason | 57% | ✕ Lost | 15–24 |
| 29 Aug | Indianapolis Colts over Detroit LionsPreseason | 62% | ✕ Lost | 16–25 |
| 28 Aug | Denver Broncos over Minnesota VikingsPreseason | 62% | ✓ Won | 34–6 |
| 28 Aug | Philadelphia Eagles over Cincinnati BengalsPreseason | 56% | ✕ Lost | 13–30 |
| 28 Aug | Green Bay Packers over Arizona CardinalsPreseason | 51% | ✓ Won | 42–38 |
| 28 Aug | Dallas Cowboys over New Orleans SaintsPreseason | 57% | ✕ Lost | 24–27 |
| 28 Aug | Tampa Bay Buccaneers over Jacksonville JaguarsPreseason | 58% | ✕ Lost | 0–19 |
| 28 Aug | New York Giants over New York JetsPreseason | 59% | ✓ Won | 23–6 |
| 28 Aug | Atlanta Falcons over Miami DolphinsPreseason | 63% | ✓ Won | 17–12 |
| 28 Aug | Houston Texans over Carolina PanthersPreseason | 51% | ✕ Lost | 13–16 |
| 28 Aug | Baltimore Ravens over Washington CommandersPreseason | 59% | ✓ Won | 41–3 |
| 27 Aug | Los Angeles Chargers over Los Angeles RamsPreseason | 61% | ✕ Lost | 18–20 |
| 27 Aug | Buffalo Bills over Pittsburgh SteelersPreseason | 58% | ✓ Won | 28–27 |
| 22 Aug | Arizona Cardinals over Dallas CowboysPreseason | 50% | ✕ Lost | 13–34 |
| 22 Aug | Tampa Bay Buccaneers over Kansas City ChiefsPreseason | 67% | ✓ Won | 16–15 |
| 22 Aug | Philadelphia Eagles over New England PatriotsPreseason | 54% | ✕ Lost | 21–24 |
| 22 Aug | Chicago Bears over Cincinnati BengalsPreseason | 53% | ✕ Lost | 9–27 |
| 22 Aug | New York Giants over Miami DolphinsPreseason | 61% | ✓ Won | 26–3 |
| 22 Aug | New Orleans Saints over Los Angeles RamsPreseason | 54% | ✕ Lost | 0–34 |
| 22 Aug | Cleveland Browns over Buffalo BillsPreseason | 58% | ✕ Lost | 7–31 |
| 22 Aug | Indianapolis Colts over Atlanta FalconsPreseason | 62% | ✕ Lost | 6–34 |
| 22 Aug | Minnesota Vikings over Baltimore RavensPreseason | 61% | ✕ Lost | 3–13 |
| Record | W–L | Hit rate | Profit | ROI | Brier |
|---|---|---|---|---|---|
| Regular and postseason | 201–77 | 72.3% | +19.44u | 0.7% | 0.185 |
| Thinly priced | 30–4 | 88.2% | +23.88u | 7.0% | 0.085 |
| Every call | 231–81 | 74.0% | +43.32u | 1.4% | 0.174 |
Thinly priced calls are counted separately. A bulk run wrote most of this season’s calls in a single day, for games still weeks away, storing whatever price existed at the time — a median of two bookmakers, against the eleven a game carries when it is read an hour before kickoff. Two quotes taken weeks out is a reading, not a market, and a headline resting on them would rest mostly on prices nobody was seriously offering.
They went 30–4 over 34 settled calls, against 201–77 for the fully priced ones — so on strike rate the thin ones look better, and this split is not a way of tucking a worse number out of sight. An early line is at its most lopsided before a real market forms, so those calls are mostly heavy favourites priced cheap: they win often and return little, which flatters a hit rate while saying very little about whether the board can price a game. That is why they are separated on how they were priced rather than on how they turned out. Nothing is deleted — a call, once published, stays published — and every one is in the list below.
| Date | Call | Said | Result | Score |
|---|---|---|---|---|
| 31 Oct | Missouri over Arkansas | 79% | ✓ Won | 34–10 |
| 31 Oct | Texas over Mississippi State | 94% | ✓ Won | 31–3 |
| 31 Oct | Pittsburgh over Georgia Tech | 73% | ✓ Won | 34–11 |
| 31 Oct | Oklahoma State over Iowa State | 77% | ✕ Lost | 49–51 |
| 31 Oct | San Diego State over Washington State | 55% | ✓ Won | 26–20 |
| 31 Oct | Florida State over Clemson | 68% | ✕ Lost | 24–36 |
| 31 Oct | Georgia Southern over Appalachian State | 67% | ✓ Won | 19–3 |
| 31 Oct | Oklahoma over South Carolina | 61% | ✕ Lost | 25–42 |
| 31 Oct | UCLA over Nevada | 96% | ✓ Won | 27–0 |
| 31 Oct | Penn State over Purdue | 79% | ✓ Won | 31–17 |
| 31 Oct | New Mexico over San José State | 87% | ✓ Won | 21–16 |
| 31 Oct | Wake Forest over Virginia | 83% | ✓ Won | 51–7 |
| 31 Oct | Oregon over Northwestern | 62% | ✓ Won | 34–26 |
| 31 Oct | Utah State over Colorado State | 73% | ✓ Won | 31–14 |
| 31 Oct | Indiana over Minnesota | 95% | ✓ Won | 23–16 |
| 31 Oct | Southern Miss over UL Monroe | 61% | ✓ Won | 35–21 |
| 31 Oct | TCU over Kansas | 69% | ✓ Won | 22–16 |
| 31 Oct | North Dakota State over UTEP | 97% | ✓ Won | 31–7 |
| 31 Oct | BYU over Arizona State | 89% | ✓ Won | 27–20 |
| 31 Oct | Georgia over Florida | 81% | ✓ Won | 27–8 |
| 31 Oct | Louisville over Stanford | 95% | ✓ Won | 52–24 |
| 31 Oct | Louisiana Tech over South Alabama | 69% | ✓ Won | 35–20 |
| 31 Oct | East Carolina over Temple | 65% | ✓ Won | 17–9 |
| 31 Oct | Air Force over UConn | 50% | ✓ Won | 35–26 |
| 31 Oct | Colorado over Kansas State | 57% | ✓ Won | 27–24 |
| 31 Oct | Georgia State over Coastal Carolina | 63% | ✕ Lost | 20–31 |
| 31 Oct | Marshall over Old Dominion | 57% | ✓ Won | 36–23 |
| 31 Oct | Ole Miss over Auburn | 81% | ✓ Won | 45–15 |
| 31 Oct | Michigan over Rutgers | 88% | ✓ Won | 28–21 |
| 31 Oct | Duke over Boston College | 72% | ✓ Won | 47–2 |
| 31 Oct | Western Michigan over Bowling Green | 85% | ✓ Won | 23–10 |
| 31 Oct | Notre Dame over Navy | 98% | ✓ Won | 35–13 |
| 31 Oct | Illinois over Maryland | 55% | ✓ Won | 20–17 |
| 31 Oct | Iowa over Wisconsin | 56% | ✓ Won | 30–0 |
| 31 Oct | South Florida over UAB | 75% | ✓ Won | 30–10 |
| 31 Oct | Texas Tech over Arizona | 63% | ✓ Won | 34–26 |
| 31 Oct | SMU over Syracuse | 78% | ✕ Lost | 27–30 |
| 29 Oct | North Texas over Florida Atlantic | 84% | ✓ Won | 48–41 |
| 29 Oct | James Madison over Troy | 94% | ✕ Lost | 21–24 |
| 28 Oct | Jacksonville State over New Mexico State | 60% | ✓ Won | 24–0 |
| 27 Oct | Missouri State over Sam Houston | 66% | ✓ Won | 24–3 |
| 24 Oct | Utah over Houston | 70% | ✓ Won | 21–13 |
| 24 Oct | New Mexico over North Dakota State | 65% | ✓ Won | 21–16 |
| 24 Oct | UTSA over Tulane | 57% | ✓ Won | 42–19 |
| 24 Oct | North Carolina over Syracuse | 77% | ✕ Lost | 30–31 |
| 24 Oct | Texas over Ole Miss | 59% | ✓ Won | 34–27 |
| 24 Oct | Kentucky over Vanderbilt | 80% | ✓ Won | 34–17 |
| 24 Oct | Arizona over Iowa State | 78% | ✓ Won | 39–3 |
| 24 Oct | USC over Wisconsin | 57% | ✕ Lost | 7–24 |
| 24 Oct | Texas State over Utah State | 84% | ✓ Won | 20–17 |
| 24 Oct | Oklahoma State over Colorado | 84% | ✓ Won | 57–24 |
| 24 Oct | Georgia State over Arkansas State | 56% | ✕ Lost | 32–38 |
| 24 Oct | Clemson over Virginia Tech | 59% | ✕ Lost | 16–20 |
| 24 Oct | San Diego State over Colorado State | 51% | ✕ Lost | 49–56 |
| 24 Oct | Boise State over Washington State | 86% | ✓ Won | 31–10 |
| 24 Oct | Nevada over San José State | 69% | ✓ Won | 28–13 |
| 24 Oct | Louisiana Tech over Old Dominion | 86% | ✓ Won | 26–0 |
| 24 Oct | Troy over UL Monroe | 83% | ✕ Lost | 14–21 |
| 24 Oct | Ohio over Eastern Michigan | 78% | ✓ Won | 24–20 |
| 24 Oct | Kansas State over Arizona State | 53% | ✕ Lost | 17–28 |
| 24 Oct | BYU over UCF | 73% | ✕ Lost | 31–39 |
| 24 Oct | Iowa over Minnesota | 73% | ✕ Lost | 10–13 |
| 24 Oct | UCLA over Michigan State | 87% | ✓ Won | 28–10 |
| 24 Oct | Oklahoma over Mississippi State | 56% | ✓ Won | 23–15 |
| 24 Oct | Alabama over Texas A&M | 85% | ✓ Won | 31–20 |
| 24 Oct | South Carolina over Tennessee | 55% | ✓ Won | 27–24 |
| 24 Oct | Georgia Tech over Boston College | 69% | ✕ Lost | 27–49 |
| 24 Oct | Buffalo over Bowling Green | 59% | ✓ Won | 31–24 |
| 24 Oct | North Texas over Navy | 59% | ✓ Won | 49–39 |
| 24 Oct | Oregon over Illinois | 79% | ✕ Lost | 10–21 |
| 24 Oct | Kent State over Akron | 58% | ✓ Won | 35–20 |
| 24 Oct | Baylor over Kansas | 52% | ✕ Lost | 24–25 |
| 24 Oct | Miami (OH) over Central Michigan | 61% | ✓ Won | 28–27 |
| 23 Oct | Air Force over Wyoming | 68% | ✕ Lost | 14–28 |
| 23 Oct | Tulsa over Army | 50% | ✕ Lost | 35–38 |
| 23 Oct | Virginia over Duke | 54% | ✕ Lost | 16–19 |
| 22 Oct | Memphis over East Carolina | 80% | ✓ Won | 41–34 |
| 21 Oct | New Mexico State over Sam Houston | 55% | ✓ Won | 30–24 |
| 20 Oct | South Alabama over Marshall | 58% | ✕ Lost | 13–20 |
| 20 Oct | Delaware over Missouri State | 59% | ✓ Won | 61–38 |
| 17 Oct | Oregon over Nebraska | 70% | ✓ Won | 17–14 |
| 17 Oct | Wake Forest over California | 78% | ✓ Won | 41–7 |
| 17 Oct | Fresno State over San Diego State | 74% | ✕ Lost | 23–26 |
| 17 Oct | Utah over Colorado | 87% | ✓ Won | 27–24 |
| 17 Oct | San José State over UTEP | 71% | ✓ Won | 24–11 |
| 17 Oct | Louisiana Tech over UL Monroe | 87% | ✓ Won | 24–0 |
| 17 Oct | UTSA over Navy | 70% | ✓ Won | 38–34 |
| 17 Oct | UCLA over Wisconsin | 56% | ✓ Won | 17–7 |
| 17 Oct | Oklahoma over Kentucky | 70% | ✕ Lost | 13–21 |
| 17 Oct | Notre Dame over BYU | 80% | ✕ Lost | 24–28 |
| 17 Oct | Houston over Oklahoma State | 64% | ✓ Won | 35–32 |
| 17 Oct | Louisville over Syracuse | 86% | ✓ Won | 34–26 |
| 17 Oct | Baylor over TCU | 68% | ✕ Lost | 6–17 |
| 17 Oct | Arkansas State over Southern Miss | 69% | ✓ Won | 23–13 |
| 17 Oct | South Florida over Kent State | 94% | ✓ Won | 29–2 |
| 17 Oct | Vanderbilt over Arkansas | 68% | ✕ Lost | 21–31 |
| 17 Oct | North Dakota State over Nevada | 86% | ✓ Won | 31–17 |
| 17 Oct | Oregon State over Washington State | 91% | ✓ Won | 48–30 |
| 17 Oct | Tulsa over Rice | 64% | ✓ Won | 38–17 |
| 17 Oct | Virginia Tech over Georgia Tech | 79% | ✓ Won | 34–24 |
| 17 Oct | Duke over North Carolina | 59% | ✕ Lost | 20–24 |
| 17 Oct | Miami (OH) over Akron | 78% | ✓ Won | 34–14 |
| 17 Oct | Air Force over UNLV | 51% | ✓ Won | 41–31 |
| 17 Oct | Toledo over Eastern Michigan | 70% | ✓ Won | 34–14 |
| 17 Oct | Texas Tech over Arizona State | 88% | ✓ Won | 53–25 |
| 17 Oct | Alabama over Tennessee | 75% | ✕ Lost | 10–26 |
| 17 Oct | Michigan over Penn State | 71% | ✓ Won | 21–18 |
| 17 Oct | Georgia over Auburn | 93% | ✕ Lost | 24–27 |
| 17 Oct | Wyoming over Northern Illinois | 75% | ✓ Won | 41–23 |
| 17 Oct | Ole Miss over Missouri | 66% | ✓ Won | 31–3 |
| 17 Oct | Western Michigan over Central Michigan | 70% | ✓ Won | 21–14 |
| 17 Oct | Buffalo over UMass | 71% | ✓ Won | 25–18 |
| 17 Oct | Temple over Charlotte | 95% | ✕ Lost | 31–38 |
| 17 Oct | Maryland over Rutgers | 66% | ✕ Lost | 30–37 |
| 17 Oct | Kansas State over Kansas | 64% | ✓ Won | 35–24 |
| 17 Oct | Northwestern over Michigan State | 73% | ✓ Won | 24–21 |
| 17 Oct | Army over Florida Atlantic | 56% | ✓ Won | 56–24 |
| 17 Oct | Pittsburgh over Boston College | 69% | ✕ Lost | 21–27 |
| 16 Oct | Appalachian State over Coastal Carolina | 51% | ✓ Won | 35–32 |
| 16 Oct | Purdue over Washington | 61% | ✕ Lost | 26–38 |
| 16 Oct | Memphis over Tulane | 71% | ✕ Lost | 17–31 |
| 15 Oct | Texas State over Colorado State | 85% | ✓ Won | 66–27 |
| 15 Oct | East Carolina over UAB | 65% | ✕ Lost | 17–30 |
| 15 Oct | Georgia Southern over Old Dominion | 62% | ✓ Won | 23–15 |
| 14 Oct | Western Kentucky over Sam Houston | 52% | ✓ Won | 16–3 |
| 14 Oct | Kennesaw State over Missouri State | 58% | ✕ Lost | 21–24 |
| 13 Oct | Jacksonville State over Florida International | 57% | ✓ Won | 27–24 |
| 10 Oct | Boise State over Fresno State | 73% | ✓ Won | 38–31 |
| 10 Oct | Utah over Kansas | 84% | ✓ Won | 41–24 |
| 10 Oct | Minnesota over Purdue | 55% | ✕ Lost | 13–41 |
| 10 Oct | Alabama over Georgia | 53% | ✕ Lost | 17–20 |
| 10 Oct | James Madison over Georgia Southern | 71% | ✓ Won | 27–24 |
| 10 Oct | Air Force over Northern Illinois | 72% | ✓ Won | 28–7 |
| 10 Oct | Virginia over Syracuse | 77% | ✓ Won | 28–25 |
| 10 Oct | Penn State over USC | 53% | ✕ Lost | 23–31 |
| 10 Oct | Marshall over Coastal Carolina | 62% | ✕ Lost | 21–27 |
| 10 Oct | Memphis over UAB | 83% | ✓ Won | 38–13 |
| 10 Oct | LSU over Kentucky | 74% | ✕ Lost | 34–35 |
| 10 Oct | North Dakota State over UNLV | 56% | ✕ Lost | 7–13 |
| 10 Oct | Nevada over UTEP | 75% | ✓ Won | 30–13 |
| 10 Oct | Oregon State over San Diego State | 85% | ✓ Won | 66–14 |
| 10 Oct | Tennessee over Arkansas | 81% | ✓ Won | 24–17 |
| 10 Oct | Ohio State over Maryland | 98% | ✓ Won | 45–16 |
| 10 Oct | Temple over UConn | 61% | ✕ Lost | 20–34 |
| 10 Oct | Toledo over Buffalo | 89% | ✕ Lost | 8–23 |
| 10 Oct | Ole Miss over Vanderbilt | 75% | ✓ Won | 52–17 |
| 10 Oct | Illinois over Michigan State | 55% | ✓ Won | 38–37 |
| 10 Oct | Navy over Tulsa | 53% | ✓ Won | 34–26 |
| 10 Oct | Texas over Oklahoma | 73% | ✕ Lost | 24–27 |
| 10 Oct | Oregon over UCLA | 76% | ✕ Lost | 15–17 |
| 10 Oct | Kansas State over Houston | 55% | ✕ Lost | 16–35 |
| 10 Oct | Duke over Georgia Tech | 68% | ✕ Lost | 25–28 |
| 10 Oct | Virginia Tech over California | 75% | ✕ Lost | 20–25 |
| 10 Oct | North Texas over Charlotte | 94% | ✓ Won | 50–10 |
| 10 Oct | Eastern Michigan over Akron | 66% | ✓ Won | 25–23 |
| 10 Oct | Ohio over Central Michigan | 54% | ✓ Won | 31–14 |
| 10 Oct | Western Michigan over Kent State | 83% | ✓ Won | 38–7 |
| 10 Oct | Miami (OH) over UMass | 62% | ✓ Won | 20–19 |
| 10 Oct | East Carolina over Rice | 75% | ✓ Won | 28–12 |
| 10 Oct | Appalachian State over Old Dominion | 76% | ✕ Lost | 3–10 |
| 8 Oct | UTSA over South Florida | 70% | ✓ Won | 31–24 |
| 8 Oct | Arkansas State over South Alabama | 55% | ✕ Lost | 49–56 |
| 7 Oct | Florida International over New Mexico State | 66% | ✓ Won | 22–3 |
| 7 Oct | Jacksonville State over Kennesaw State | 58% | ✓ Won | 27–26 |
| 6 Oct | Troy over Southern Miss | 75% | ✓ Won | 55–34 |
| 3 Oct | Texas State over San Diego State | 75% | ✕ Lost | 29–31 |
| 3 Oct | Arizona State over Baylor | 62% | ✕ Lost | 19–55 |
| 3 Oct | Washington State over Fresno State | 53% | ✕ Lost | 6–26 |
| 3 Oct | Army over Louisiana Tech | 53% | ✕ Lost | 29–31 |
| 3 Oct | South Florida over Temple | 68% | ✕ Lost | 13–17 |
| 3 Oct | Boise State over Utah State | 89% | ✓ Won | 37–18 |
| 3 Oct | Texas Tech over Colorado | 80% | ✓ Won | 29–7 |
| 3 Oct | Texas A&M over Arkansas | 82% | ✓ Won | 34–7 |
| 3 Oct | BYU over TCU | 67% | ✓ Won | 17–10 |
| 3 Oct | UTSA over Rice | 80% | ✓ Won | 16–14 |
| 3 Oct | South Alabama over UL Monroe | 83% | ✓ Won | 52–35 |
| 3 Oct | Georgia Southern over Coastal Carolina | 54% | ✓ Won | 31–24 |
| 3 Oct | Oregon State over Colorado State | 67% | ✓ Won | 56–26 |
| 3 Oct | Illinois over Purdue | 76% | ✕ Lost | 17–24 |
| 3 Oct | South Carolina over Kentucky | 58% | ✕ Lost | 34–35 |
| 3 Oct | New Mexico over UTEP | 92% | ✓ Won | 61–7 |
| 3 Oct | Nebraska over Maryland | 83% | ✓ Won | 48–23 |
| 3 Oct | James Madison over Marshall | 88% | ✓ Won | 45–17 |
| 3 Oct | Tennessee over Auburn | 71% | ✓ Won | 24–14 |
| 3 Oct | Florida over Missouri | 65% | ✕ Lost | 17–45 |
| 3 Oct | Ohio State over Iowa | 83% | ✓ Won | 31–14 |
| 3 Oct | UNLV over California | 56% | ✓ Won | 39–31 |
| 3 Oct | Virginia over Florida State | 56% | ✕ Lost | 7–38 |
| 3 Oct | Ohio over Kent State | 60% | ✓ Won | 13–10 |
| 3 Oct | Central Michigan over Akron | 68% | ✓ Won | 41–17 |
| 3 Oct | Miami (OH) over Bowling Green | 82% | ✕ Lost | 20–24 |
| 3 Oct | Georgia State over Old Dominion | 55% | ✓ Won | 42–10 |
| 3 Oct | UMass over Eastern Michigan | 66% | ✕ Lost | 14–38 |
| 3 Oct | Memphis over Charlotte | 90% | ✓ Won | 59–8 |
| 3 Oct | North Dakota State over Wyoming | 87% | ✓ Won | 28–0 |
| 3 Oct | Toledo over Ball State | 89% | ✓ Won | 39–24 |
| 3 Oct | Western Michigan over Buffalo | 82% | ✓ Won | 20–17 |
| 3 Oct | Georgia over Vanderbilt | 93% | ✓ Won | 38–14 |
| 3 Oct | Wisconsin over Michigan State | 76% | ✓ Won | 31–3 |
| 3 Oct | Houston over UCF | 77% | ✓ Won | 27–17 |
| 3 Oct | Syracuse over UConn | 68% | ✓ Won | 42–41 |
| 3 Oct | Air Force over Navy | 60% | ✓ Won | 14–9 |
| 3 Oct | Iowa State over West Virginia | 58% | ✓ Won | 45–42 |
| 3 Oct | SMU over Boston College | 90% | ✓ Won | 25–16 |
| 3 Oct | Notre Dame over North Carolina | 91% | ✓ Won | 37–26 |
| 3 Oct | Michigan over Minnesota | 66% | ✕ Lost | 14–20 |
| 3 Oct | Wake Forest over Stanford | 81% | ✓ Won | 57–3 |
| 3 Oct | Alabama over Mississippi State | 66% | ✓ Won | 56–23 |
| 26 Sept | Washington over Minnesota | 76% | ✕ Lost | 24–27 |
| 26 Sept | Air Force over Nevada | 67% | ✓ Won | 36–33 |
| 26 Sept | Georgia Tech over Stanford | 61% | ✕ Lost | 27–34 |
| 26 Sept | Fresno State over Rice | 81% | ✓ Won | 38–24 |
| 26 Sept | Oregon State over UTEP | 78% | ✓ Won | 33–7 |
| 26 Sept | SMU over Missouri State | 95% | ✓ Won | 34–24 |
| 26 Sept | Alabama over South Carolina | 78% | ✓ Won | 49–18 |
| 26 Sept | Penn State over Wisconsin | 79% | ✕ Lost | 20–24 |
| 26 Sept | Florida over Ole Miss | 53% | ✓ Won | 52–28 |
| 26 Sept | Michigan over Iowa | 65% | ✕ Lost | 19–20 |
| 26 Sept | UCLA over Maryland | 52% | ✓ Won | 54–3 |
| 26 Sept | Boise State over Western Michigan | 73% | ✓ Won | 32–7 |
| 25 Sept | Navy over UAB | 70% | ✕ Lost | 20–24 |
| 25 Sept | Army over Temple | 58% | ✓ Won | 21–17 |
| 19 Sept | UCLA over Purdue | 82% | ✓ Won | 52–38 |
| 19 Sept | Fresno State over San José State | 68% | ✓ Won | 26–10 |
| 19 Sept | Arizona over Northern Illinois | 97% | ✓ Won | 42–17 |
| 19 Sept | San Diego State over James Madison | 53% | ✕ Lost | 13–26 |
| 19 Sept | Texas over UTSA | 94% | ✓ Won | 30–6 |
| 19 Sept | TCU over Arkansas State | 88% | ✓ Won | 31–7 |
| 19 Sept | Tennessee over Kennesaw State | 98% | ✓ Won | 42–9 |
| 19 Sept | Notre Dame over Michigan State | 93% | ✓ Won | 27–10 |
| 19 Sept | LSU over Ole Miss | 54% | ✕ Lost | 24–32 |
| 19 Sept | BYU over Colorado State | 87% | ✓ Won | 41–23 |
| 19 Sept | Virginia over West Virginia | 50% | ✕ Lost | 27–38 |
| 19 Sept | Virginia Tech over Maryland | 53% | ✓ Won | 35–26 |
| 19 Sept | Oklahoma over New Mexico | 91% | ✓ Won | 14–6 |
| 19 Sept | Northwestern over Colorado | 61% | ✓ Won | 41–7 |
| 19 Sept | Nebraska over North Dakota | 93% | ✓ Won | 34–7 |
| 19 Sept | Western Michigan over Rice | 75% | ✓ Won | 28–21 |
| 19 Sept | Jacksonville State over Georgia Southern | 60% | ✓ Won | 31–27 |
| 19 Sept | UCF over Georgia State | 87% | ✓ Won | 44–30 |
| 19 Sept | South Alabama over Ohio | 69% | ✓ Won | 41–36 |
| 19 Sept | Florida over Auburn | 54% | ✓ Won | 44–39 |
| 19 Sept | UConn over Southern Miss | 59% | ✓ Won | 48–20 |
| 19 Sept | Missouri over Troy | 94% | ✓ Won | 27–17 |
| 19 Sept | Marshall over Missouri State | 62% | ✓ Won | 30–24 |
| 19 Sept | Old Dominion over East Carolina | 56% | ✕ Lost | 17–20 |
| 19 Sept | Appalachian State over Charlotte | 87% | ✓ Won | 26–21 |
| 19 Sept | Florida Atlantic over Florida International | 68% | ✓ Won | 16–10 |
| 19 Sept | South Carolina over Mississippi State | 62% | ✕ Lost | 34–41 |
| 19 Sept | Baylor over Louisiana Tech | 89% | ✓ Won | 36–19 |
| 19 Sept | Duke over Stanford | 75% | ✓ Won | 35–7 |
| 19 Sept | Michigan over UTEP | 98% | ✓ Won | 52–17 |
| 19 Sept | Louisville over SMU | 52% | ✓ Won | 41–31 |
| 19 Sept | Texas A&M over Kentucky | 85% | ✕ Lost | 21–31 |
| 19 Sept | UMass over Stonehill | 98% | ✓ Won | 36–14 |
| 19 Sept | USC over Rutgers | 91% | ✓ Won | 42–35 |
| 19 Sept | Alabama over Florida State | 86% | ✓ Won | 50–36 |
| 19 Sept | Utah over Utah State | 94% | ✓ Won | 33–0 |
| 19 Sept | Toledo over Temple | 66% | ✓ Won | 49–48 |
| 19 Sept | Wyoming over Central Michigan | 51% | ✕ Lost | 10–24 |
| 19 Sept | Wisconsin over Eastern Michigan | 93% | ✓ Won | 54–10 |
| 19 Sept | Arizona State over Kansas | 64% | ✓ Won | 24–17 |
| 19 Sept | Georgia over Arkansas | 92% | ✓ Won | 45–17 |
| 19 Sept | Kansas State over Tulane | 90% | ✓ Won | 31–20 |
| 19 Sept | Iowa State over Bowling Green | 93% | ✓ Won | 55–7 |
| 19 Sept | Texas State over North Texas | 57% | ✓ Won | 49–35 |
| 19 Sept | Minnesota over Akron | 93% | ✓ Won | 41–7 |
| 19 Sept | Clemson over North Carolina | 59% | ✓ Won | 28–20 |
| 19 Sept | Delaware over Coastal Carolina | 63% | ✓ Won | 22–14 |
| 18 Sept | Texas Tech over Houston | 81% | ✓ Won | 28–26 |
| 17 Sept | Pittsburgh over Syracuse | 76% | ✓ Won | 27–13 |
| 12 Sept | Utah over Arkansas | 79% | ✓ Won | 43–10 |
| 12 Sept | North Dakota State over Air Force | 53% | ✓ Won | 38–32 |
| 12 Sept | UTEP over Texas Southern | 94% | ✓ Won | 51–10 |
| 12 Sept | Auburn over Southern Miss | 96% | ✓ Won | 43–8 |
| 12 Sept | Clemson over Georgia Southern | 89% | ✓ Won | 22–7 |
| 12 Sept | Iowa over Iowa State | 82% | ✓ Won | 16–13 |
| 12 Sept | Texas over Ohio State | 52% | ✓ Won | 24–23 |
| 12 Sept | Texas Tech over Oregon State | 93% | ✓ Won | 35–24 |
| 12 Sept | LSU over Louisiana Tech | 96% | ✓ Won | 45–14 |
| 12 Sept | Coastal Carolina over Fordham | 97% | ✓ Won | 45–7 |
| 12 Sept | Navy over Florida Atlantic | 64% | ✕ Lost | 30–38 |
| 12 Sept | UCLA over San Diego State | 79% | ✓ Won | 28–10 |
| 12 Sept | Wisconsin over Western Illinois | 98% | ✓ Won | 36–9 |
| 12 Sept | Kennesaw State over Georgia State | 73% | ✕ Lost | 17–31 |
| 12 Sept | Tennessee over Georgia Tech | 79% | ✓ Won | 45–24 |
| 12 Sept | Nebraska over Bowling Green | 95% | ✓ Won | 56–7 |
| 12 Sept | Tulsa over Sam Houston | 81% | ✓ Won | 23–17 |
| 12 Sept | Colorado State over Southern Utah | 90% | ✓ Won | 58–24 |
| 12 Sept | Arkansas State over West Georgia | 95% | ✓ Won | 52–7 |
| 12 Sept | Illinois State over Northern Illinois | 63% | ✓ Won | 28–24 |
| 12 Sept | Tulane over South Alabama | 76% | ✓ Won | 28–24 |
| 12 Sept | Florida International over Buffalo | 76% | ✓ Won | 33–20 |
| 12 Sept | Ohio over Jacksonville State | 55% | ✓ Won | 29–27 |
| 12 Sept | Boise State over Memphis | 74% | ✓ Won | 38–20 |
| 12 Sept | Vanderbilt over Delaware | 90% | ✓ Won | 35–26 |
| 12 Sept | SMU over UC Davis | 94% | ✓ Won | 56–10 |
| 12 Sept | Wyoming over Northern Colorado | 92% | ✓ Won | 21–13 |
| 12 Sept | UNLV over North Texas | 59% | ✕ Lost | 6–44 |
| 12 Sept | Colorado over Weber State | 97% | ✓ Won | 52–21 |
| 12 Sept | Akron over Robert Morris | 95% | ✓ Won | 45–10 |
| 12 Sept | BYU over Arizona | 71% | ✓ Won | 28–17 |
| 12 Sept | Alabama over Kentucky | 76% | ✓ Won | 45–17 |
| 12 Sept | Michigan State over Eastern Michigan | 86% | ✓ Won | 35–7 |
| 12 Sept | Maryland over UConn | 78% | ✓ Won | 38–14 |
| 12 Sept | Mississippi State over Minnesota | 50% | ✓ Won | 38–13 |
| 12 Sept | Texas State over UTSA | 53% | ✕ Lost | 26–31 |
| 12 Sept | UAB over UL Monroe | 75% | ✓ Won | 26–20 |
| 12 Sept | Syracuse over California | 61% | ✕ Lost | 18–21 |
| 12 Sept | Washington over Utah State | 94% | ✓ Won | 16–14 |
| 12 Sept | UMass over Sacred Heart | 92% | ✓ Won | 37–10 |
| 12 Sept | Pittsburgh over UCF | 70% | ✓ Won | 12–7 |
The closing line is the market's last and best-informed price on a game. If our number consistently sits ahead of where the market ends up, that is evidence the numbers are well informed before any results are in — and it shows up in dozens of games where a win rate needs hundreds. Above 50% beaten, and a positive mean, is the signal. Below it is evidence the other way, however the games happened to land.
| Signal | Games | Record | Accuracy | Brier |
|---|---|---|---|---|
| Market consensus | 137 | 79–58 | 58% | 0.239 |
| News read | 13 | 6–7 | 46% | 0.258 |
| Line movement | 47 | 27–20 | 57% | — |
| Public lean | 16 | 5–11 | 31% | — |
Read the two lines together. Every call here was stored before kickoff, flat-staked at 10 units, and settled against the real final score. But we do not take bets and we do not store the price a bookmaker was offering — only the de-vigged consensus probability. The upper line prices each call at the fair odds that probability implies, and a bet struck at fair odds has an expected value of exactly zero by construction. So a profit there is variance, not edge. The lower line is the same run of results after a book takes a 4.5% margin, which is nearer what the same calls would actually have been struck at. These are units, not money, and nobody placed them.
The graded record itself, every prediction and every alert, is on the record page.