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 | 48–37 | 56.5% | −106.52u | −12.5% | 0.241 |
| Preseason | 8–14 | 36.4% | −85.53u | −38.9% | 0.265 |
| Every call | 73–56 | 56.6% | −123.36u | −9.6% | 0.242 |
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 48–37 over 85 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 |
|---|---|---|---|---|
| 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 | Buffalo Bills over Las Vegas Raiders | 72% | ✓ Won | 33–30 |
| 18 Oct | Kansas City Chiefs over Los Angeles Chargers | 57% | ✓ Won | 22–6 |
| 18 Oct | Los Angeles Rams over Arizona Cardinals | 86% | ✕ Lost | 16–18 |
| 18 Oct | Baltimore Ravens over Cleveland Browns | 70% | ✕ Lost | 10–13 |
| 18 Oct | Chicago Bears over Atlanta Falcons | 60% | ✓ Won | 31–23 |
| 18 Oct | Indianapolis Colts over Tennessee Titans | 66% | ✕ Lost | 20–26 |
| 18 Oct | New York Giants over New Orleans Saints | 59% | ✕ Lost | 27–34 |
| 18 Oct | Philadelphia Eagles over Carolina Panthers | 72% | ✕ Lost | 14–25 |
| 18 Oct | New England Patriots over New York Jets | 79% | ✓ Won | 26–19 |
| 18 Oct | Tampa Bay Buccaneers over Pittsburgh Steelers | 53% | ✕ Lost | 19–26 |
| 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 | Green Bay Packers over Chicago Bears | 61% | ✓ Won | 31–7 |
| 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 | Los Angeles Chargers over Denver Broncos | 57% | ✕ Lost | 17–23 |
| 11 Oct | Pittsburgh Steelers over Indianapolis Colts | 55% | ✓ Won | 34–22 |
| 11 Oct | New England Patriots over Las Vegas Raiders | 77% | ✓ Won | 45–17 |
| 11 Oct | Houston Texans over Tennessee Titans | 61% | ✓ Won | 26–3 |
| 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 | Minnesota Vikings over New Orleans Saints | 51% | ✓ Won | 23–13 |
| 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 | Seattle Seahawks over Los Angeles Chargers | 61% | ✓ Won | 30–23 |
| 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 | 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 | Los Angeles Rams over Philadelphia Eagles | 56% | ✓ Won | 24–20 |
| 4 Oct | Chicago Bears over New York Jets | 77% | ✓ Won | 23–12 |
| 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 | 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 | Houston Texans over Indianapolis Colts | 52% | ✕ Lost | 17–19 |
| 27 Sept | Jacksonville Jaguars over New England Patriots | 52% | ✓ Won | 35–6 |
| 27 Sept | Buffalo Bills over Los Angeles Chargers | 60% | ✓ Won | 24–16 |
| 27 Sept | Detroit Lions over New York Jets | 79% | ✓ Won | 31–24 |
| 27 Sept | New York Giants over Tennessee Titans | 61% | ✓ Won | 12–7 |
| 27 Sept | Kansas City Chiefs over Miami Dolphins | 77% | ✓ Won | 24–10 |
| 27 Sept | Cincinnati Bengals over Pittsburgh Steelers | 53% | ✕ Lost | 27–30 |
| 27 Sept | Carolina Panthers over Cleveland Browns | 55% | ✕ Lost | 18–21 |
| 27 Sept | Seattle Seahawks over Washington Commanders | 62% | ✕ Lost | 31–33 |
| 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 | Seattle Seahawks over Arizona Cardinals | 81% | ✓ Won | 31–7 |
| 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 | Los Angeles Chargers over Las Vegas Raiders | 77% | ✕ Lost | 14–26 |
| 20 Sept | Denver Broncos over Jacksonville Jaguars | 58% | ✓ Won | 20–13 |
| 20 Sept | Atlanta Falcons over Carolina Panthers | 53% | ✕ Lost | 3–34 |
| 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 | New England Patriots over Pittsburgh Steelers | 68% | ✓ Won | 20–3 |
| 20 Sept | Tampa Bay Buccaneers over Cleveland Browns | 70% | ✕ Lost | 19–23 |
| 20 Sept | Philadelphia Eagles over Tennessee Titans | 66% | ✓ Won | 24–20 |
| 20 Sept | Baltimore Ravens over New Orleans Saints | 75% | ✕ Lost | 17–24 |
| 20 Sept | Houston Texans over Cincinnati Bengals | 56% | ✕ Lost | 6–20 |
| 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 | Los Angeles Chargers over Arizona Cardinals | 81% | ✕ Lost | 14–26 |
| 13 Sept | Philadelphia Eagles over Washington Commanders | 66% | ✓ Won | 24–22 |
| 13 Sept | Las Vegas Raiders over Miami Dolphins | 63% | ✓ Won | 27–13 |
| 13 Sept | Chicago Bears over Carolina Panthers | 58% | ✓ Won | 59–37 |
| 13 Sept | Buffalo Bills over Houston Texans | 51% | ✓ Won | 36–31 |
| 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 | Pittsburgh Steelers over Atlanta Falcons | 60% | ✓ Won | 20–13 |
| 13 Sept | Tennessee Titans over New York Jets | 55% | ✕ Lost | 10–23 |
| 13 Sept | Detroit Lions over New Orleans Saints | 73% | ✓ Won | 31–30 |
| 13 Sept | Baltimore Ravens over Indianapolis Colts | 62% | ✓ Won | 41–23 |
| 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 | Green Bay Packers over Arizona CardinalsPreseason | 51% | ✓ Won | 42–38 |
| 28 Aug | Dallas Cowboys over New Orleans SaintsPreseason | 57% | ✕ Lost | 24–27 |
| 28 Aug | Philadelphia Eagles over Cincinnati BengalsPreseason | 56% | ✕ Lost | 13–30 |
| 28 Aug | New York Giants over New York JetsPreseason | 59% | ✓ Won | 23–6 |
| 28 Aug | Tampa Bay Buccaneers over Jacksonville JaguarsPreseason | 58% | ✕ Lost | 0–19 |
| 28 Aug | Houston Texans over Carolina PanthersPreseason | 51% | ✕ Lost | 13–16 |
| 28 Aug | Atlanta Falcons over Miami DolphinsPreseason | 63% | ✓ Won | 17–12 |
| 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 | Indianapolis Colts over Atlanta FalconsPreseason | 62% | ✕ Lost | 6–34 |
| 22 Aug | Minnesota Vikings over Baltimore RavensPreseason | 61% | ✕ Lost | 3–13 |
| 22 Aug | Cleveland Browns over Buffalo BillsPreseason | 58% | ✕ Lost | 7–31 |
| Record | W–L | Hit rate | Profit | ROI | Brier |
|---|---|---|---|---|---|
| Regular and postseason | 169–72 | 70.1% | −52.66u | −2.2% | 0.193 |
| Thinly priced | 30–4 | 88.2% | +23.88u | 7.0% | 0.085 |
| Every call | 199–76 | 72.4% | −28.78u | −1.0% | 0.180 |
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 169–72 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 |
|---|---|---|---|---|
| 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 | Texas State over Utah State | 84% | ✓ Won | 20–17 |
| 24 Oct | Texas over Ole Miss | 59% | ✓ Won | 34–27 |
| 24 Oct | Arizona over Iowa State | 78% | ✓ Won | 39–3 |
| 24 Oct | Kentucky over Vanderbilt | 80% | ✓ Won | 34–17 |
| 24 Oct | USC over Wisconsin | 57% | ✕ Lost | 7–24 |
| 24 Oct | North Carolina over Syracuse | 77% | ✕ Lost | 30–31 |
| 24 Oct | Clemson over Virginia Tech | 59% | ✕ Lost | 16–20 |
| 24 Oct | Georgia State over Arkansas State | 56% | ✕ Lost | 32–38 |
| 24 Oct | Oklahoma State over Colorado | 84% | ✓ Won | 57–24 |
| 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 | Alabama over Texas A&M | 85% | ✓ Won | 31–20 |
| 24 Oct | UCLA over Michigan State | 87% | ✓ Won | 28–10 |
| 24 Oct | BYU over UCF | 73% | ✕ Lost | 31–39 |
| 24 Oct | Oklahoma over Mississippi State | 56% | ✓ Won | 23–15 |
| 24 Oct | South Carolina over Tennessee | 55% | ✓ Won | 27–24 |
| 24 Oct | North Texas over Navy | 59% | ✓ Won | 49–39 |
| 24 Oct | Iowa over Minnesota | 73% | ✕ Lost | 10–13 |
| 24 Oct | Buffalo over Bowling Green | 59% | ✓ Won | 31–24 |
| 24 Oct | Georgia Tech over Boston College | 69% | ✕ Lost | 27–49 |
| 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 | UTSA over Navy | 70% | ✓ Won | 38–34 |
| 17 Oct | Louisiana Tech over UL Monroe | 87% | ✓ Won | 24–0 |
| 17 Oct | Louisville over Syracuse | 86% | ✓ Won | 34–26 |
| 17 Oct | Notre Dame over BYU | 80% | ✕ Lost | 24–28 |
| 17 Oct | Houston over Oklahoma State | 64% | ✓ Won | 35–32 |
| 17 Oct | Oklahoma over Kentucky | 70% | ✕ Lost | 13–21 |
| 17 Oct | UCLA over Wisconsin | 56% | ✓ Won | 17–7 |
| 17 Oct | Baylor over TCU | 68% | ✕ Lost | 6–17 |
| 17 Oct | North Dakota State over Nevada | 86% | ✓ Won | 31–17 |
| 17 Oct | South Florida over Kent State | 94% | ✓ Won | 29–2 |
| 17 Oct | Arkansas State over Southern Miss | 69% | ✓ Won | 23–13 |
| 17 Oct | Vanderbilt over Arkansas | 68% | ✕ Lost | 21–31 |
| 17 Oct | Oregon State over Washington State | 91% | ✓ Won | 48–30 |
| 17 Oct | Tulsa over Rice | 64% | ✓ Won | 38–17 |
| 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 | Virginia Tech over Georgia Tech | 79% | ✓ Won | 34–24 |
| 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 | Temple over Charlotte | 95% | ✕ Lost | 31–38 |
| 17 Oct | Buffalo over UMass | 71% | ✓ Won | 25–18 |
| 17 Oct | Maryland over Rutgers | 66% | ✕ Lost | 30–37 |
| 17 Oct | Kansas State over Kansas | 64% | ✓ Won | 35–24 |
| 17 Oct | Army over Florida Atlantic | 56% | ✓ Won | 56–24 |
| 17 Oct | Northwestern over Michigan State | 73% | ✓ Won | 24–21 |
| 17 Oct | Pittsburgh over Boston College | 69% | ✕ Lost | 21–27 |
| 16 Oct | Purdue over Washington | 61% | ✕ Lost | 26–38 |
| 16 Oct | Appalachian State over Coastal Carolina | 51% | ✓ Won | 35–32 |
| 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 | Minnesota over Purdue | 55% | ✕ Lost | 13–41 |
| 10 Oct | Utah over Kansas | 84% | ✓ Won | 41–24 |
| 10 Oct | Virginia over Syracuse | 77% | ✓ Won | 28–25 |
| 10 Oct | Penn State over USC | 53% | ✕ Lost | 23–31 |
| 10 Oct | James Madison over Georgia Southern | 71% | ✓ Won | 27–24 |
| 10 Oct | Alabama over Georgia | 53% | ✕ Lost | 17–20 |
| 10 Oct | Air Force over Northern Illinois | 72% | ✓ Won | 28–7 |
| 10 Oct | Nevada over UTEP | 75% | ✓ Won | 30–13 |
| 10 Oct | LSU over Kentucky | 74% | ✕ Lost | 34–35 |
| 10 Oct | Memphis over UAB | 83% | ✓ Won | 38–13 |
| 10 Oct | Marshall over Coastal Carolina | 62% | ✕ Lost | 21–27 |
| 10 Oct | North Dakota State over UNLV | 56% | ✕ Lost | 7–13 |
| 10 Oct | Oregon State over San Diego State | 85% | ✓ Won | 66–14 |
| 10 Oct | Ohio State over Maryland | 98% | ✓ Won | 45–16 |
| 10 Oct | Tennessee over Arkansas | 81% | ✓ Won | 24–17 |
| 10 Oct | Temple over UConn | 61% | ✕ Lost | 20–34 |
| 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 | Toledo over Buffalo | 89% | ✕ Lost | 8–23 |
| 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 | Appalachian State over Old Dominion | 76% | ✕ Lost | 3–10 |
| 10 Oct | East Carolina over Rice | 75% | ✓ Won | 28–12 |
| 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 | Boise State over Utah State | 89% | ✓ Won | 37–18 |
| 3 Oct | Army over Louisiana Tech | 53% | ✕ Lost | 29–31 |
| 3 Oct | South Florida over Temple | 68% | ✕ Lost | 13–17 |
| 3 Oct | Texas Tech over Colorado | 80% | ✓ Won | 29–7 |
| 3 Oct | Texas A&M over Arkansas | 82% | ✓ Won | 34–7 |
| 3 Oct | South Alabama over UL Monroe | 83% | ✓ Won | 52–35 |
| 3 Oct | BYU over TCU | 67% | ✓ Won | 17–10 |
| 3 Oct | UTSA over Rice | 80% | ✓ Won | 16–14 |
| 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 | Ohio State over Iowa | 83% | ✓ Won | 31–14 |
| 3 Oct | North Dakota State over Wyoming | 87% | ✓ Won | 28–0 |
| 3 Oct | Tennessee over Auburn | 71% | ✓ Won | 24–14 |
| 3 Oct | UMass over Eastern Michigan | 66% | ✕ Lost | 14–38 |
| 3 Oct | Virginia over Florida State | 56% | ✕ Lost | 7–38 |
| 3 Oct | Memphis over Charlotte | 90% | ✓ Won | 59–8 |
| 3 Oct | Central Michigan over Akron | 68% | ✓ Won | 41–17 |
| 3 Oct | Florida over Missouri | 65% | ✕ Lost | 17–45 |
| 3 Oct | Miami (OH) over Bowling Green | 82% | ✕ Lost | 20–24 |
| 3 Oct | UNLV over California | 56% | ✓ Won | 39–31 |
| 3 Oct | Georgia State over Old Dominion | 55% | ✓ Won | 42–10 |
| 3 Oct | Ohio over Kent State | 60% | ✓ Won | 13–10 |
| 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 | Alabama over Mississippi State | 66% | ✓ Won | 56–23 |
| 3 Oct | Wake Forest over Stanford | 81% | ✓ Won | 57–3 |
| 3 Oct | Michigan over Minnesota | 66% | ✕ Lost | 14–20 |
| 3 Oct | Houston over UCF | 77% | ✓ Won | 27–17 |
| 3 Oct | Air Force over Navy | 60% | ✓ Won | 14–9 |
| 3 Oct | Iowa State over West Virginia | 58% | ✓ Won | 45–42 |
| 3 Oct | Syracuse over UConn | 68% | ✓ Won | 42–41 |
| 3 Oct | SMU over Boston College | 90% | ✓ Won | 25–16 |
| 3 Oct | Notre Dame over North Carolina | 91% | ✓ Won | 37–26 |
| 26 Sept | Washington over Minnesota | 76% | ✕ Lost | 24–27 |
| 26 Sept | Georgia Tech over Stanford | 61% | ✕ Lost | 27–34 |
| 26 Sept | Air Force over Nevada | 67% | ✓ Won | 36–33 |
| 26 Sept | Fresno State over Rice | 81% | ✓ Won | 38–24 |
| 26 Sept | SMU over Missouri State | 95% | ✓ Won | 34–24 |
| 26 Sept | Oregon State over UTEP | 78% | ✓ Won | 33–7 |
| 26 Sept | Alabama over South Carolina | 78% | ✓ Won | 49–18 |
| 26 Sept | Penn State over Wisconsin | 79% | ✕ Lost | 20–24 |
| 26 Sept | Michigan over Iowa | 65% | ✕ Lost | 19–20 |
| 26 Sept | Florida over Ole Miss | 53% | ✓ Won | 52–28 |
| 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 | Fresno State over San José State | 68% | ✓ Won | 26–10 |
| 19 Sept | UCLA over Purdue | 82% | ✓ Won | 52–38 |
| 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 | BYU over Colorado State | 87% | ✓ Won | 41–23 |
| 19 Sept | LSU over Ole Miss | 54% | ✕ Lost | 24–32 |
| 19 Sept | Northwestern over Colorado | 61% | ✓ Won | 41–7 |
| 19 Sept | Oklahoma over New Mexico | 91% | ✓ Won | 14–6 |
| 19 Sept | Virginia Tech over Maryland | 53% | ✓ Won | 35–26 |
| 19 Sept | Notre Dame over Michigan State | 93% | ✓ Won | 27–10 |
| 19 Sept | Virginia over West Virginia | 50% | ✕ Lost | 27–38 |
| 19 Sept | Nebraska over North Dakota | 93% | ✓ Won | 34–7 |
| 19 Sept | Missouri over Troy | 94% | ✓ Won | 27–17 |
| 19 Sept | Western Michigan over Rice | 75% | ✓ Won | 28–21 |
| 19 Sept | Jacksonville State over Georgia Southern | 60% | ✓ Won | 31–27 |
| 19 Sept | UConn over Southern Miss | 59% | ✓ Won | 48–20 |
| 19 Sept | Florida over Auburn | 54% | ✓ Won | 44–39 |
| 19 Sept | South Alabama over Ohio | 69% | ✓ Won | 41–36 |
| 19 Sept | UCF over Georgia State | 87% | ✓ Won | 44–30 |
| 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 | Duke over Stanford | 75% | ✓ Won | 35–7 |
| 19 Sept | Baylor over Louisiana Tech | 89% | ✓ Won | 36–19 |
| 19 Sept | Texas A&M over Kentucky | 85% | ✕ Lost | 21–31 |
| 19 Sept | Louisville over SMU | 52% | ✓ Won | 41–31 |
| 19 Sept | Utah over Utah State | 94% | ✓ Won | 33–0 |
| 19 Sept | USC over Rutgers | 91% | ✓ Won | 42–35 |
| 19 Sept | Alabama over Florida State | 86% | ✓ Won | 50–36 |
| 19 Sept | Michigan over UTEP | 98% | ✓ Won | 52–17 |
| 19 Sept | UMass over Stonehill | 98% | ✓ Won | 36–14 |
| 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 | 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 | Georgia over Arkansas | 92% | ✓ Won | 45–17 |
| 19 Sept | Arizona State over Kansas | 64% | ✓ Won | 24–17 |
| 19 Sept | Kansas State over Tulane | 90% | ✓ Won | 31–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 | Texas Tech over Oregon State | 93% | ✓ Won | 35–24 |
| 12 Sept | Texas over Ohio State | 52% | ✓ Won | 24–23 |
| 12 Sept | Iowa over Iowa State | 82% | ✓ Won | 16–13 |
| 12 Sept | Coastal Carolina over Fordham | 97% | ✓ Won | 45–7 |
| 12 Sept | Navy over Florida Atlantic | 64% | ✕ Lost | 30–38 |
| 12 Sept | LSU over Louisiana Tech | 96% | ✓ Won | 45–14 |
| 12 Sept | Clemson over Georgia Southern | 89% | ✓ Won | 22–7 |
| 12 Sept | UCLA over San Diego State | 79% | ✓ Won | 28–10 |
| 12 Sept | Wisconsin over Western Illinois | 98% | ✓ Won | 36–9 |
| 12 Sept | Tennessee over Georgia Tech | 79% | ✓ Won | 45–24 |
| 12 Sept | Tulane over South Alabama | 76% | ✓ Won | 28–24 |
| 12 Sept | Illinois State over Northern Illinois | 63% | ✓ Won | 28–24 |
| 12 Sept | Arkansas State over West Georgia | 95% | ✓ Won | 52–7 |
| 12 Sept | Colorado State over Southern Utah | 90% | ✓ Won | 58–24 |
| 12 Sept | Nebraska over Bowling Green | 95% | ✓ Won | 56–7 |
| 12 Sept | Kennesaw State over Georgia State | 73% | ✕ Lost | 17–31 |
| 12 Sept | Tulsa over Sam Houston | 81% | ✓ Won | 23–17 |
| 12 Sept | Boise State over Memphis | 74% | ✓ Won | 38–20 |
| 12 Sept | Florida International over Buffalo | 76% | ✓ Won | 33–20 |
| 12 Sept | Ohio over Jacksonville State | 55% | ✓ Won | 29–27 |
| 12 Sept | Vanderbilt over Delaware | 90% | ✓ Won | 35–26 |
| 12 Sept | Wyoming over Northern Colorado | 92% | ✓ Won | 21–13 |
| 12 Sept | SMU over UC Davis | 94% | ✓ Won | 56–10 |
| 12 Sept | UNLV over North Texas | 59% | ✕ Lost | 6–44 |
| 12 Sept | UMass over Sacred Heart | 92% | ✓ Won | 37–10 |
| 12 Sept | Washington over Utah State | 94% | ✓ Won | 16–14 |
| 12 Sept | Syracuse over California | 61% | ✕ Lost | 18–21 |
| 12 Sept | UAB over UL Monroe | 75% | ✓ Won | 26–20 |
| 12 Sept | Texas State over UTSA | 53% | ✕ Lost | 26–31 |
| 12 Sept | Akron over Robert Morris | 95% | ✓ Won | 45–10 |
| 12 Sept | Michigan State over Eastern Michigan | 86% | ✓ Won | 35–7 |
| 12 Sept | Maryland over UConn | 78% | ✓ Won | 38–14 |
| 12 Sept | Alabama over Kentucky | 76% | ✓ Won | 45–17 |
| 12 Sept | BYU over Arizona | 71% | ✓ Won | 28–17 |
| 12 Sept | Mississippi State over Minnesota | 50% | ✓ Won | 38–13 |
| 12 Sept | Colorado over Weber State | 97% | ✓ Won | 52–21 |
| 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 | 129 | 73–56 | 57% | 0.242 |
| News read | 13 | 6–7 | 46% | 0.258 |
| Line movement | 45 | 26–19 | 58% | — |
| 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.