What it unlocks
The live boards, the World Cup archive and your account page. The landing page, the method page, the results record and the golf board are open to everyone — the gate is on the working boards, not on the evidence.
Every moving part, explained
The short version: we read what bookmakers are charging for a game, strip out their margin to recover the real probability, and write that number down before kickoff so it can be graded afterwards. While the game is playing we keep pricing it, and if a call we published gets strongly ahead we tell you — because that is when a cash-out is worth taking. Games no bookmaker is quoting yet get a rating of our own, built from results, and it is always labelled as such. Everything below is the long version, including the parts that are switched off and why.
Six stages. Every number on the board is the output of this exact sequence, and each stage names the feed it came from.
Every game of the season — the Hall of Fame game, three preseason weeks, the regular season and the play-offs — with its stage, week, quarter scores and live clock. This is the backbone: it describes a whole season, which an odds feed cannot, because a bookmaker only lists what it is currently pricing.
source · API-SportsEvery bookmaker the feed carries for a game is used — Bet365, Pinnacle, Betfair, Marathon, BetVictor, SBO and 1xBet have all appeared, and the count moves game to game. Nothing is filtered: the board averages whichever books are quoting, and the “N books” figure beside a price is how many fed that particular game. We average them in implied-probability space rather than averaging the odds themselves, which would bias the result. One measured limitation: books only start quoting about a day or two before kickoff, so most of the season carries no market price at any given moment.
source · API-Sports oddsA bookmaker prices a two-way market to about 104-108%, not 100%. That overround is their margin, and it is the reason raw odds overstate every outcome. We strip it out so the probabilities are fair and sum to exactly 100%. This is the single most important step, and it is what separates a price from a probability.
method · de-vigA game no book is quoting still gets a number, from an Elo rating built only from completed results — margin of victory counted logarithmically so one blowout cannot dominate a season, last season regressed towards the mean and carried forward, preseason weighted at a quarter because starters sit. It is capped at 95%, because no football game is a certainty. It is shown marked est and never blended into a market price.
model · Elo power ratingsBefore kickoff, the board's read is stored in the database: the side, the probability, the lines and what each signal said. Separately, as the game approaches, the last price we see is stored as the closing line. The database refuses a closing price once kickoff has passed, so a number seen after the whistle can never be recorded as one seen before it.
method · captureEach finished game is settled against the real final score and scored by Brier — the squared error of the stated probability, where 0.250 is a coin flip. Calls stored before kickoff are labelled as captured; older ones, priced after the fact from odds that outlive the game, are labelled as reconstructions. Both are published, including when the number is bad.
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 Jaguars at 52%. Here is what happened next.
Alert fires — cash-out window open
“We called Jaguars at 52% before kickoff. They are now 75% to win it. If you took that call, your sportsbook's cash-out is likely showing a strong number right now.”
Final: Patriots 6–35 Jaguars.
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.
Three 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. So a call is worth banking exactly when our live model puts it above the probability we published before kickoff — at that point cashing out returns more than the stake, and below it less. 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 52% is also applied.
floor · 52%At least 7 percentage points clear of the probability we gave it before kickoff, which keeps windows rare and each one substantial.
margin · +7ppCash-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 onlyThe live boards, the World Cup archive and your account page. The landing page, the method page, the results record and the golf board are open to everyone — the gate is on the working boards, not on the evidence.
An email address and a password. 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 are built but switched off, and no email has ever been sent. Turning them on is a deliberate act, not a side effect of a deploy — and when it happens it sends one message per game, never a repeat of the same one.
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 normaliser: 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.
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 normalised 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 the fair price beats the best bookmaker price: positive expected-value spots from line shopping.
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.
| Record | W–L | Hit rate | Profit | ROI | Brier |
|---|---|---|---|---|---|
| Regular and postseason | 14–4 | 77.8% | +50.96u | 28.3% | 0.214 |
| Thinly priced | 16–14 | 53.3% | −62.02u | −20.7% | 0.240 |
| Preseason | 8–14 | 36.4% | −85.53u | −38.9% | 0.265 |
| Every call | 38–32 | 54.3% | −96.59u | −13.8% | 0.241 |
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 16–14 over 30 settled calls, against 14–4 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 |
|---|---|---|---|---|
| 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 | Baltimore Ravens over Dallas Cowboys | 55% | ✓ Won | 34–31 |
| 27 Sept | New Orleans Saints over Las Vegas Raiders | 63% | ✕ Lost | 27–35 |
| 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 | Jacksonville Jaguars over New England Patriots | 52% | ✓ Won | 35–6 |
| 27 Sept | Seattle Seahawks over Washington Commanders | 62% | ✕ Lost | 31–33 |
| 27 Sept | New York Giants over Tennessee Titans | 61% | ✓ Won | 12–7 |
| 27 Sept | Detroit Lions over New York Jets | 79% | ✓ Won | 31–24 |
| 27 Sept | Carolina Panthers over Cleveland Browns | 55% | ✕ Lost | 18–21 |
| 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 |
| 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 | Dallas Cowboys over Washington Commanders | 64% | ✓ Won | 37–20 |
| 20 Sept | San Francisco 49ers over Miami Dolphins | 82% | ✓ Won | 35–13 |
| 20 Sept | Seattle Seahawks over Arizona Cardinals | 81% | ✓ Won | 31–7 |
| 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 | New England Patriots over Pittsburgh Steelers | 68% | ✓ Won | 20–3 |
| 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 | Atlanta Falcons over Carolina Panthers | 53% | ✕ Lost | 3–34 |
| 20 Sept | Tampa Bay Buccaneers over Cleveland Browns | 70% | ✕ Lost | 19–23 |
| 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 | Las Vegas Raiders over Miami Dolphins | 63% | ✓ Won | 27–13 |
| 13 Sept | Los Angeles Chargers over Arizona Cardinals | 81% | ✕ Lost | 14–26 |
| 13 Sept | Minnesota Vikings over Green Bay Packers | 52% | ✓ Won | 39–22 |
| 13 Sept | Philadelphia Eagles over Washington Commanders | 66% | ✓ Won | 24–22 |
| 13 Sept | Buffalo Bills over Houston Texans | 51% | ✓ Won | 36–31 |
| 13 Sept | Baltimore Ravens over Indianapolis Colts | 62% | ✓ Won | 41–23 |
| 13 Sept | Detroit Lions over New Orleans Saints | 73% | ✓ Won | 31–30 |
| 13 Sept | Tennessee Titans over New York Jets | 55% | ✕ Lost | 10–23 |
| 13 Sept | Pittsburgh Steelers over Atlanta Falcons | 60% | ✓ Won | 20–13 |
| 13 Sept | Cincinnati Bengals over Tampa Bay Buccaneers | 64% | ✓ Won | 33–27 |
| 13 Sept | Chicago Bears over Carolina Panthers | 58% | ✓ Won | 59–37 |
| 13 Sept | Jacksonville Jaguars over Cleveland Browns | 76% | ✓ Won | 34–10 |
| 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 Orleans Saints over Los Angeles RamsPreseason | 54% | ✕ Lost | 0–34 |
| 22 Aug | New York Giants over Miami DolphinsPreseason | 61% | ✓ Won | 26–3 |
| 22 Aug | Minnesota Vikings over Baltimore RavensPreseason | 61% | ✕ Lost | 3–13 |
| 22 Aug | Cleveland Browns over Buffalo BillsPreseason | 58% | ✕ Lost | 7–31 |
| 22 Aug | Indianapolis Colts over Atlanta FalconsPreseason | 62% | ✕ Lost | 6–34 |
| Record | W–L | Hit rate | Profit | ROI | Brier |
|---|---|---|---|---|---|
| Regular and postseason | 60–13 | 82.2% | +85.93u | 11.8% | 0.135 |
| Thinly priced | 28–4 | 87.5% | +22.99u | 7.2% | 0.091 |
| Every call | 88–17 | 83.8% | +108.91u | 10.4% | 0.121 |
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 28–4 over 32 settled calls, against 60–13 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 |
|---|---|---|---|---|
| 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 Jerry Rice Team | 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 | 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 | TCU over Arkansas State | 88% | ✓ Won | 31–7 |
| 19 Sept | Texas over UTSA | 94% | ✓ Won | 30–6 |
| 19 Sept | Tennessee over Kennesaw State | 98% | ✓ Won | 42–9 |
| 19 Sept | Notre Dame over Michigan State | 93% | ✓ Won | 27–10 |
| 19 Sept | Virginia over West Virginia | 50% | ✕ Lost | 27–38 |
| 19 Sept | BYU over Colorado State | 87% | ✓ Won | 41–23 |
| 19 Sept | Northwestern over Colorado | 61% | ✓ Won | 41–7 |
| 19 Sept | Virginia Tech over Maryland | 53% | ✓ Won | 35–26 |
| 19 Sept | Oklahoma over New Mexico | 91% | ✓ Won | 14–6 |
| 19 Sept | LSU over Ole Miss | 54% | ✕ Lost | 24–32 |
| 19 Sept | Nebraska over North Dakota | 93% | ✓ Won | 34–7 |
| 19 Sept | UCF over Georgia State | 87% | ✓ Won | 44–30 |
| 19 Sept | Western Michigan over Jerry Rice Team | 75% | ✓ Won | 28–21 |
| 19 Sept | South Alabama over Ohio | 69% | ✓ Won | 41–36 |
| 19 Sept | UConn over Southern Miss | 59% | ✓ Won | 48–20 |
| 19 Sept | Jacksonville State over Georgia Southern | 60% | ✓ Won | 31–27 |
| 19 Sept | Missouri over Troy | 94% | ✓ Won | 27–17 |
| 19 Sept | Florida over Auburn | 54% | ✓ Won | 44–39 |
| 19 Sept | Marshall over Missouri State | 62% | ✓ Won | 30–24 |
| 19 Sept | Florida Atlantic over Florida International | 68% | ✓ Won | 16–10 |
| 19 Sept | Old Dominion over East Carolina | 56% | ✕ Lost | 17–20 |
| 19 Sept | Appalachian State over Charlotte | 87% | ✓ Won | 26–21 |
| 19 Sept | South Carolina over Mississippi State | 62% | ✕ Lost | 34–41 |
| 19 Sept | Iowa over Northern Iowa | 50% | ✓ Won | 55–0 |
| 19 Sept | Baylor over Louisiana Tech | 89% | ✓ Won | 36–19 |
| 19 Sept | Duke over Stanford | 75% | ✓ Won | 35–7 |
| 19 Sept | Texas A&M over Kentucky | 85% | ✕ Lost | 21–31 |
| 19 Sept | Utah over Utah State | 94% | ✓ Won | 33–0 |
| 19 Sept | Michigan over UTEP | 98% | ✓ Won | 52–17 |
| 19 Sept | Alabama over Florida State | 86% | ✓ Won | 50–36 |
| 19 Sept | USC over Rutgers | 91% | ✓ Won | 42–35 |
| 19 Sept | UMass over Stonehill | 98% | ✓ Won | 36–14 |
| 19 Sept | Louisville over SMU | 52% | ✓ Won | 41–31 |
| 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 | Texas State over North Texas | 57% | ✓ Won | 49–35 |
| 19 Sept | Georgia over Arkansas | 92% | ✓ Won | 45–17 |
| 19 Sept | Arizona State over Kansas | 64% | ✓ Won | 24–17 |
| 19 Sept | Minnesota over Akron | 93% | ✓ Won | 41–7 |
| 19 Sept | Clemson over North Carolina | 59% | ✓ Won | 28–20 |
| 19 Sept | Iowa State over Bowling Green | 93% | ✓ Won | 55–7 |
| 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 | Navy over Florida Atlantic | 64% | ✕ Lost | 30–38 |
| 12 Sept | Iowa over Iowa State | 82% | ✓ Won | 16–13 |
| 12 Sept | Coastal Carolina over Fordham | 97% | ✓ Won | 45–7 |
| 12 Sept | Clemson over Georgia Southern | 89% | ✓ Won | 22–7 |
| 12 Sept | LSU over Louisiana Tech | 96% | ✓ Won | 45–14 |
| 12 Sept | Texas Tech over Oregon State | 93% | ✓ Won | 35–24 |
| 12 Sept | Texas over Ohio State | 52% | ✓ Won | 24–23 |
| 12 Sept | Wisconsin over Western Illinois | 98% | ✓ Won | 36–9 |
| 12 Sept | UCLA over San Diego State | 79% | ✓ Won | 28–10 |
| 12 Sept | Tulane over South Alabama | 76% | ✓ Won | 28–24 |
| 12 Sept | Tulsa over Sam Houston | 81% | ✓ Won | 23–17 |
| 12 Sept | Kennesaw State over Georgia State | 73% | ✕ Lost | 17–31 |
| 12 Sept | Nebraska over Bowling Green | 95% | ✓ Won | 56–7 |
| 12 Sept | Tennessee over Georgia Tech | 79% | ✓ Won | 45–24 |
| 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 | Boise State over Memphis | 74% | ✓ Won | 38–20 |
| 12 Sept | Florida International over Buffalo State | 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 | 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 | Pittsburgh over UCF | 70% | ✓ Won | 12–7 |
| 12 Sept | UMass over Sacred Heart | 92% | ✓ Won | 37–10 |
| 12 Sept | Washington over Utah State | 94% | ✓ Won | 16–14 |
| 12 Sept | Alabama over Kentucky | 76% | ✓ Won | 45–17 |
| 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 | Maryland over UConn | 78% | ✓ Won | 38–14 |
| 12 Sept | Michigan State over Eastern Michigan | 86% | ✓ Won | 35–7 |
| 12 Sept | Syracuse over California | 61% | ✕ Lost | 18–21 |
| 12 Sept | BYU over Arizona | 71% | ✓ Won | 28–17 |
| 12 Sept | Mississippi State over Minnesota | 50% | ✓ Won | 38–13 |
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 of an edge 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 | 70 | 38–32 | 54% | 0.241 |
| News read | 13 | 6–7 | 46% | 0.258 |
| Line movement | 28 | 18–10 | 64% | — |
| 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.