Every moving part, explained

How everything
works

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.

I

The NFL pipeline

Six stages. Every number on the board is the output of this exact sequence, and each stage names the feed it came from.

  1. 01

    Read the schedule

    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-Sports
  2. 02

    Take the market price

    Every 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 odds
  3. 03

    Remove the vig

    A 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-vig
  4. 04

    Rate the rest ourselves

    A 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 ratings
  5. 05

    Write the call down

    Before 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 · capture
  6. 06

    Grade it in public

    Each 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 record
II

The alert, on a real game

Stage 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.

Worked example · a real game

Patriots at Jaguars

Before kickoff the board called Jaguars at 52%. Here is what happened next.

called 52%now 75%+22ppalerts at 52%
  1. Q2 13:25Patriots 0–7 JaguarsJaguars 75%+22pp

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.

III

When an alert fires, and when it doesn't

Three conditions, all required. Each one exists to rule out a different way of being annoying or wrong.

  1. 01

    The position has to be in profit

    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%
  2. 02

    It has to have improved on what we published

    At least 7 percentage points clear of the probability we gave it before kickoff, which keeps windows rare and each one substantial.

    margin · +7pp
  3. 03

    The game has to still be running

    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 only
IV

Your account, and what we keep

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.

What we store

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.

How the session works

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.

What alerts would mean

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.

V

The golf board

A separate board with a separate source, and one important difference worth stating plainly.

Where it comes from

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.

Why it is not de-vigged

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.

How an outright field is handled

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.

What it does not have

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.

VI

The college board

The same machinery as the NFL board pointed at a far bigger, far more thinly priced season.

Same model, different league

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.

Why only FBS

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.

Coverage is the first number

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.

When a price appears

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.

VII

The World Cup archive

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.

  1. 01

    Pull the odds

    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 API
  2. 02

    Remove the vig

    Bookmakers 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-vig
  3. 03

    Fit a goal model

    For 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 · Poisson
  4. 04

    Render the desk

    The 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 board
VIII

The tabs

Eight views onto the same de-vigged consensus and goal model.

Live

In-play scores, recent results and upcoming kickoffs, refreshed while a game is actually on.

Matches

Per-fixture win/draw/loss, expected goals, over/under lines, clean sheets and the correct-score grid.

Winner

Every team's probability of lifting the trophy, de-vigged from the outright market.

Predictor

Pit any two teams — even unscheduled — through the same goal model, with a neutral-venue toggle.

Goal Threat

Players ranked by their chance to score in the next fixture, from anytime-goalscorer odds.

Bets

A backtest of the model's flat-stake picks against real settled results — honest P&L, not a sales pitch.

Edge

Where the fair price beats the best bookmaker price: positive expected-value spots from line shopping.

Groups

Group standings and qualification context for the tournament structure.

IX

Where the data comes from

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.

NFL board

BoardScores and odds from API-Sports
One feed does all of it. API-Sports' American Football endpoint carries the whole calendar — the Hall of Fame game, all three preseason weeks, the regular season and the play-offs — and states each game's stage, week, quarter scores and live clock outright. The same feed carries prices from five bookmakers: Bet365, Pinnacle, Marathon, BetVictor and 1xBet, quoting the moneyline (Home/Away), the handicap (Asian Handicap) and the game total (Over/Under). We average those in implied-probability space and strip the bookmaker margin out, so what you see sums to exactly 100% rather than the 104-108% a book actually prices. The bookmaker count on each game tells you how many were behind that number. One honest limitation, measured rather than assumed: books only start quoting a game about a day or two before kickoff. Five were quoting a game eleven hours out and none were quoting the games three days out. A game nobody is quoting yet still appears, carrying our own power rating instead — marked with a ~ as an estimate, and never mixed into the market number, because a rating built from scorelines and a price built from money are different kinds of claim. Play-off fixtures stay off the board until the teams are known.
StandingsAPI-Sports, falling back to ESPN — live standings
Records, points and streaks come from API-Sports' American Football feed, cached for an hour, with ESPN's public standings as a fallback if that plan does not cover the running season. Note what the table shows before the season opens — these are preseason records, because that is the phase being played; the board switches to regular-season records the moment week 1 starts, and preseason results never carry into them. The 1–7 playoff seeds are computed here rather than taken from a feed: four division winners ranked by win percentage, then the three best remaining teams per conference, the same rule for live and sample rows alike.

World Cup board

LiveAPI-Football — live fixtures feed
Scores come from API-Football (/fixtures), including the live elapsed minute, and refresh automatically while this tab is open. The Odds API scores feed is a fallback.
MatchesThe Odds API — bookmaker H2H, de-vigged
Match win/draw/loss probabilities come from a de-vigged consensus of bookmaker moneyline (H2H) odds. Goal and scoreline markets are read off a Poisson model fitted to that same consensus.
GroupsAPI-Football — group standings
Group tables come straight from API-Football (/standings) and update as results land. The top two of each four-team group advance.
WinnerThe Odds API — outright winner market, de-vigged
Tournament-winner odds are a de-vigged consensus of the 'FIFA World Cup Winner' outright market across every available bookmaker.
PredictorModel — Poisson over de-vigged team strengths
For unscheduled pairings there is no direct market, so team strengths are derived from the de-vigged outright odds and run through the same Poisson model used everywhere else.
Goal ThreatAPI-Football — tournament top scorers
The leaderboard is real top-scorer data from API-Football (/players/topscorers), ranked by goals then assists. If unavailable it falls back to The Odds API anytime-goalscorer probabilities.
BetsBacktest: API-Football · live tracker: The Odds API
The backtest replays finished WC2026 fixtures against their real pre-match consensus odds (captured offline from API-Football) through the same tested engine. The live tracker settles model-favourite bets against live results from The Odds API.
EdgeThe Odds API — best price vs de-vigged consensus
The value list compares every bookmaker's best price against the sharp de-vigged consensus for the same outcome, and shows only those where the price beats fair value (+EV). It shares the matches odds cache, so it costs no extra quota. Alongside it, the goals-market edges compare our Poisson read against API-Football's own over/under prices per fixture. An empty list is the normal state of an efficient market, not a failure.
InjuriesAPI-Football — injuries & suspensions
Team news from API-Football (/injuries): players ruled out or carrying a late fitness doubt, deduped to each player's latest status. Availability materially affects match outcomes.
SignalsFusion — Market + Model live · Social & Online coming
CacheOut fuses independent signals per match. Two are live and genuinely fused: the Market signal (a de-vigged consensus of bookmaker odds) and a second Model read (API-Football's own win/draw/loss prediction). The Social signal (sentiment across X, Reddit, TikTok and YouTube) and the Online signal (virtual online-league results) are modelled placeholders, shown but not yet contributing, until their feeds are connected.
X

What the numbers mean

Every term on a match card, in plain language. The same definitions power the in-app tooltips.

Win / Draw / LossW/D/L
The chance the home team wins, the match is drawn, or the away team wins. The three add up to 100% — they are a de-vigged consensus of bookmaker moneyline odds.
Expected goalsxG
The average number of goals the model expects each team to score in this match. It is the scoring rate that feeds every goal market below — not a prediction of the exact final score.
Both teams to scoreBTTS
The probability that both teams score at least one goal (i.e. the final score is not a clean sheet for either side).
Clean sheetCS
The probability a team concedes zero goals — i.e. keeps a clean sheet. 'CS BRA' is the chance Brazil's opponent fails to score.
Over / UnderO2.5
The probability the two teams combine for more than a given number of goals. 'O2.5' is the chance of 3 or more total goals; the Under is simply 100% minus the Over.
Most likely scorelineMost likely scoreline
The single exact score with the highest probability under the model. Even the likeliest scoreline is usually well under 20% — football is high-variance, so treat it as the modal guess, not a forecast.
Correct-score gridCorrect-score grid
A heatmap of every exact scoreline's probability (home goals down the side, away goals across the top). Brighter cells are more likely; it is the full picture the 'most likely scoreline' is drawn from.
De-vigged (vig removed)VIG
Bookmakers price every market slightly above 100% — that overround is their margin (the 'vig'). We strip it out so the probabilities are fair and sum to exactly 100%. The 'VIG' figure is how much was removed.
Bookmaker consensusbooks
These numbers are not one bookmaker's view — they are an average across every bookmaker that priced the market. 'N books' is how many fed this fixture; more books means a more reliable consensus.
Consensus odds (decimal)ODDS
The actual decimal price a bet would get, averaged across bookmakers — still including the margin. Decimal odds of 2.50 means a winning £1 stake returns £2.50 (£1.50 profit). These are the real prices behind the de-vigged percentages.
Win probabilityWin %
Each team's chance of winning the game, from a de-vigged consensus of bookmaker moneylines. The NFL market is two-way (no draw priced), so the two percentages add up to 100%. The split bar underneath shows the same number visually — the centre tick is 50/50.
Point spreadSpread
The bookmakers' points handicap for the game, shown against the home team. 'Chiefs -3.5' means the market makes the Chiefs a 3.5-point favourite: they must win by 4+ to 'cover'. A plus number means the home side is the underdog and can lose by up to that many points and still cover.
Cover probabilityCover %
The chance the home team beats the spread — wins by more than the handicap — de-vigged from the spread market's two prices. It hovers near 50% by design: bookmakers set the line so both sides are roughly a coin flip.
Game total (over/under)O/U
The market line for the two teams' combined points, priced as Over or Under. 'O 44.5 52%' means a 52% de-vigged chance the teams combine for 45+ points. Higher totals mean the market expects a shootout; lower, a defensive grind.
Model pickModel pick
The side the de-vigged bookmaker consensus makes the favourite, with its win probability. Because these probabilities come from the market itself, betting the pick at market prices has no built-in edge — it is a read on expectations, not betting advice.
Playoff seedSeed
The team's current playoff position in its conference: seeds 1–4 go to the four division winners (ordered by record), seeds 5–7 to the three best non-winners (wild cards). Seven teams per conference make the playoffs; the 1 seed gets the only first-round bye.
Point differential+/-
Season points scored minus points allowed. A positive number means the team has outscored its opponents overall — a steadier quality signal than the win-loss record, which can swing on close games.
Anytime touchdownAnytime TD
The probability a player scores a touchdown at any point in their next game, de-vigged from bookmaker anytime-TD props. Rushing and receiving TDs count; a quarterback's passing TDs do not.
Before kickoffBefore kickoff
The call was written to the database while the game was still unplayed, and the timestamp says when. It matters because the alternative is pricing a finished game from odds that outlive it: honest, but reconstructed, and you would have only our word that the number was not chosen once the score was known. Only a captured call can be graded without that caveat.
Brier scoreBrier
The average squared error of the stated probability. Lower is better, and 0.250 is what you would score by calling everything a coin flip. It exists because a hit rate alone flatters a 51% call that wins and punishes a 90% call that loses, when the first was barely an opinion and the second was a real claim.
Closing-line valueCLV
How the board's price compares with where the market finished before kickoff. The closing line is the sharpest price a market produces, so beating it consistently is the usual evidence that a model knows something. Measured in percentage points, and over a small sample it is mostly noise.
Closing lineClosing line
The last price the market showed before kickoff. It is the price the most money has been bet into, which is why it is treated as the market's best guess and used as the benchmark rather than the opening price.
Fair priceFair
The decimal odds a probability implies with no margin attached — 50% is 2.00, 80% is 1.25. A bet struck at the fair price has an expected value of exactly zero by construction, so a profit at fair prices is variance rather than edge. A real bookmaker prices below fair; that difference is how they make money.
Unitu
One flat stake. Results are quoted in units rather than currency because this site has never taken a bet and a pound sign would imply that it had. Ten units a call means every call is staked the same, so no single result can dominate the record.
Return on investmentROI
Profit divided by everything staked, not by the number of bets. Backing ten calls at ten units each stakes 100 units, so a 12-unit profit is a 12% ROI. It is the figure that makes a long run of small stakes comparable with a short run of large ones.
Hit rateAccuracy
The share of calls that named the winner. Read it beside the Brier score rather than alone: a board that only ever calls heavy favourites will post a high hit rate while saying almost nothing, and one that takes real positions will post a lower one while being better informed.
CoverageCoverage
How much of the finished slate could be graded at all. A game the odds feed never quoted carries no call, so nothing was ever claimed about it and it counts as neither a hit nor a miss. Coverage sits beside the record because a board can always look more accurate by saying less.
No priceNo price
No bookmaker in the feed was quoting this game when the board last looked, so there is no market to de-vig and the board makes no call. It is ordinary rather than broken — this feed carries a minority of the college slate — and a game with no price never enters the record.
Cash-out windowCash-out window
A published call that is now worth more in play than the price it was published at, while the game is still running. That is the only period in which a sportsbook's cash-out is worth taking: once the whistle goes the bet simply settles and there was never a decision to make. The board reports the window; the exit happens at your own sportsbook.
Variance, not edgeVariance
A run of winning calls priced from de-vigged odds is not evidence of beating the market. The fair price already contains everything the market knows, so betting it breaks even in the long run and any short-run profit is the swing you would expect from chance. The record here measures whether the probabilities are well calibrated, not whether following them makes money.
XI

What the numbers say today

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.

The record, by phase

Every NFL call the board has published and settled — 70 of them, kept whether or not the game is still on the feed.
RecordW–LHit rateProfitROIBrier
Regular and postseason14–477.8%+50.96u28.3%0.214
Thinly priced16–1453.3%−62.02u−20.7%0.240
Preseason8–1436.4%−85.53u−38.9%0.265
Every call38–3254.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.

Every settled call, newest first (70)
DateCallSaidResultScore
28 SeptChicago Bears over Philadelphia Eagles52%✓ Won27–7
27 SeptLos Angeles Rams over Denver Broncos59%✕ Lost26–30
27 SeptBaltimore Ravens over Dallas Cowboys55%✓ Won34–31
27 SeptNew Orleans Saints over Las Vegas Raiders63%✕ Lost27–35
27 SeptTampa Bay Buccaneers over Minnesota Vikings55%✕ Lost16–23
27 SeptSan Francisco 49ers over Arizona Cardinals82%✓ Won36–30
27 SeptBuffalo Bills over Los Angeles Chargers60%✓ Won24–16
27 SeptJacksonville Jaguars over New England Patriots52%✓ Won35–6
27 SeptSeattle Seahawks over Washington Commanders62%✕ Lost31–33
27 SeptNew York Giants over Tennessee Titans61%✓ Won12–7
27 SeptDetroit Lions over New York Jets79%✓ Won31–24
27 SeptCarolina Panthers over Cleveland Browns55%✕ Lost18–21
27 SeptCincinnati Bengals over Pittsburgh Steelers53%✕ Lost27–30
27 SeptKansas City Chiefs over Miami Dolphins77%✓ Won24–10
27 SeptHouston Texans over Indianapolis Colts52%✕ Lost17–19
24 SeptGreen Bay Packers over Atlanta Falcons75%✕ Lost14–35
21 SeptLos Angeles Rams over New York Giants77%✓ Won28–6
20 SeptKansas City Chiefs over Indianapolis Colts73%✓ Won33–30
20 SeptDallas Cowboys over Washington Commanders64%✓ Won37–20
20 SeptSan Francisco 49ers over Miami Dolphins82%✓ Won35–13
20 SeptSeattle Seahawks over Arizona Cardinals81%✓ Won31–7
20 SeptLos Angeles Chargers over Las Vegas Raiders77%✕ Lost14–26
20 SeptDenver Broncos over Jacksonville Jaguars58%✓ Won20–13
20 SeptNew England Patriots over Pittsburgh Steelers68%✓ Won20–3
20 SeptBaltimore Ravens over New Orleans Saints75%✕ Lost17–24
20 SeptHouston Texans over Cincinnati Bengals56%✕ Lost6–20
20 SeptChicago Bears over Minnesota Vikings64%✕ Lost3–9
20 SeptGreen Bay Packers over New York Jets69%✓ Won20–17
20 SeptPhiladelphia Eagles over Tennessee Titans66%✓ Won24–20
20 SeptAtlanta Falcons over Carolina Panthers53%✕ Lost3–34
20 SeptTampa Bay Buccaneers over Cleveland Browns70%✕ Lost19–23
17 SeptBuffalo Bills over Detroit Lions59%✓ Won41–31
14 SeptKansas City Chiefs over Denver Broncos56%✓ Won31–10
13 SeptDallas Cowboys over New York Giants58%✕ Lost20–28
13 SeptLas Vegas Raiders over Miami Dolphins63%✓ Won27–13
13 SeptLos Angeles Chargers over Arizona Cardinals81%✕ Lost14–26
13 SeptMinnesota Vikings over Green Bay Packers52%✓ Won39–22
13 SeptPhiladelphia Eagles over Washington Commanders66%✓ Won24–22
13 SeptBuffalo Bills over Houston Texans51%✓ Won36–31
13 SeptBaltimore Ravens over Indianapolis Colts62%✓ Won41–23
13 SeptDetroit Lions over New Orleans Saints73%✓ Won31–30
13 SeptTennessee Titans over New York Jets55%✕ Lost10–23
13 SeptPittsburgh Steelers over Atlanta Falcons60%✓ Won20–13
13 SeptCincinnati Bengals over Tampa Bay Buccaneers64%✓ Won33–27
13 SeptChicago Bears over Carolina Panthers58%✓ Won59–37
13 SeptJacksonville Jaguars over Cleveland Browns76%✓ Won34–10
10 SeptLos Angeles Rams over San Francisco 49ers64%✕ Lost7–27
9 SeptSeattle Seahawks over New England Patriots63%✓ Won13–10
29 AugTennessee Titans over Chicago BearsPreseason57%✕ Lost15–24
29 AugIndianapolis Colts over Detroit LionsPreseason62%✕ Lost16–25
28 AugDenver Broncos over Minnesota VikingsPreseason62%✓ Won34–6
28 AugGreen Bay Packers over Arizona CardinalsPreseason51%✓ Won42–38
28 AugDallas Cowboys over New Orleans SaintsPreseason57%✕ Lost24–27
28 AugPhiladelphia Eagles over Cincinnati BengalsPreseason56%✕ Lost13–30
28 AugNew York Giants over New York JetsPreseason59%✓ Won23–6
28 AugTampa Bay Buccaneers over Jacksonville JaguarsPreseason58%✕ Lost0–19
28 AugHouston Texans over Carolina PanthersPreseason51%✕ Lost13–16
28 AugAtlanta Falcons over Miami DolphinsPreseason63%✓ Won17–12
28 AugBaltimore Ravens over Washington CommandersPreseason59%✓ Won41–3
27 AugLos Angeles Chargers over Los Angeles RamsPreseason61%✕ Lost18–20
27 AugBuffalo Bills over Pittsburgh SteelersPreseason58%✓ Won28–27
22 AugArizona Cardinals over Dallas CowboysPreseason50%✕ Lost13–34
22 AugTampa Bay Buccaneers over Kansas City ChiefsPreseason67%✓ Won16–15
22 AugPhiladelphia Eagles over New England PatriotsPreseason54%✕ Lost21–24
22 AugChicago Bears over Cincinnati BengalsPreseason53%✕ Lost9–27
22 AugNew Orleans Saints over Los Angeles RamsPreseason54%✕ Lost0–34
22 AugNew York Giants over Miami DolphinsPreseason61%✓ Won26–3
22 AugMinnesota Vikings over Baltimore RavensPreseason61%✕ Lost3–13
22 AugCleveland Browns over Buffalo BillsPreseason58%✕ Lost7–31
22 AugIndianapolis Colts over Atlanta FalconsPreseason62%✕ Lost6–34
Every college call the board has published and settled — 105 of them, kept whether or not the game is still on the feed.
RecordW–LHit rateProfitROIBrier
Regular and postseason60–1382.2%+85.93u11.8%0.135
Thinly priced28–487.5%+22.99u7.2%0.091
Every call88–1783.8%+108.91u10.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.

Every settled call, newest first (105)
DateCallSaidResultScore
26 SeptWashington over Minnesota76%✕ Lost24–27
26 SeptGeorgia Tech over Stanford61%✕ Lost27–34
26 SeptAir Force over Nevada67%✓ Won36–33
26 SeptFresno State over Jerry Rice Team81%✓ Won38–24
26 SeptOregon State over UTEP78%✓ Won33–7
26 SeptSMU over Missouri State95%✓ Won34–24
26 SeptAlabama over South Carolina78%✓ Won49–18
26 SeptPenn State over Wisconsin79%✕ Lost20–24
26 SeptMichigan over Iowa65%✕ Lost19–20
26 SeptFlorida over Ole Miss53%✓ Won52–28
26 SeptUCLA over Maryland52%✓ Won54–3
26 SeptBoise State over Western Michigan73%✓ Won32–7
25 SeptNavy over UAB70%✕ Lost20–24
25 SeptArmy over Temple58%✓ Won21–17
19 SeptFresno State over San José State68%✓ Won26–10
19 SeptUCLA over Purdue82%✓ Won52–38
19 SeptArizona over Northern Illinois97%✓ Won42–17
19 SeptSan Diego State over James Madison53%✕ Lost13–26
19 SeptTCU over Arkansas State88%✓ Won31–7
19 SeptTexas over UTSA94%✓ Won30–6
19 SeptTennessee over Kennesaw State98%✓ Won42–9
19 SeptNotre Dame over Michigan State93%✓ Won27–10
19 SeptVirginia over West Virginia50%✕ Lost27–38
19 SeptBYU over Colorado State87%✓ Won41–23
19 SeptNorthwestern over Colorado61%✓ Won41–7
19 SeptVirginia Tech over Maryland53%✓ Won35–26
19 SeptOklahoma over New Mexico91%✓ Won14–6
19 SeptLSU over Ole Miss54%✕ Lost24–32
19 SeptNebraska over North Dakota93%✓ Won34–7
19 SeptUCF over Georgia State87%✓ Won44–30
19 SeptWestern Michigan over Jerry Rice Team75%✓ Won28–21
19 SeptSouth Alabama over Ohio69%✓ Won41–36
19 SeptUConn over Southern Miss59%✓ Won48–20
19 SeptJacksonville State over Georgia Southern60%✓ Won31–27
19 SeptMissouri over Troy94%✓ Won27–17
19 SeptFlorida over Auburn54%✓ Won44–39
19 SeptMarshall over Missouri State62%✓ Won30–24
19 SeptFlorida Atlantic over Florida International68%✓ Won16–10
19 SeptOld Dominion over East Carolina56%✕ Lost17–20
19 SeptAppalachian State over Charlotte87%✓ Won26–21
19 SeptSouth Carolina over Mississippi State62%✕ Lost34–41
19 SeptIowa over Northern Iowa50%✓ Won55–0
19 SeptBaylor over Louisiana Tech89%✓ Won36–19
19 SeptDuke over Stanford75%✓ Won35–7
19 SeptTexas A&M over Kentucky85%✕ Lost21–31
19 SeptUtah over Utah State94%✓ Won33–0
19 SeptMichigan over UTEP98%✓ Won52–17
19 SeptAlabama over Florida State86%✓ Won50–36
19 SeptUSC over Rutgers91%✓ Won42–35
19 SeptUMass over Stonehill98%✓ Won36–14
19 SeptLouisville over SMU52%✓ Won41–31
19 SeptToledo over Temple66%✓ Won49–48
19 SeptWyoming over Central Michigan51%✕ Lost10–24
19 SeptWisconsin over Eastern Michigan93%✓ Won54–10
19 SeptTexas State over North Texas57%✓ Won49–35
19 SeptGeorgia over Arkansas92%✓ Won45–17
19 SeptArizona State over Kansas64%✓ Won24–17
19 SeptMinnesota over Akron93%✓ Won41–7
19 SeptClemson over North Carolina59%✓ Won28–20
19 SeptIowa State over Bowling Green93%✓ Won55–7
19 SeptKansas State over Tulane90%✓ Won31–20
19 SeptDelaware over Coastal Carolina63%✓ Won22–14
18 SeptTexas Tech over Houston81%✓ Won28–26
17 SeptPittsburgh over Syracuse76%✓ Won27–13
12 SeptUtah over Arkansas79%✓ Won43–10
12 SeptNorth Dakota State over Air Force53%✓ Won38–32
12 SeptUTEP over Texas Southern94%✓ Won51–10
12 SeptAuburn over Southern Miss96%✓ Won43–8
12 SeptNavy over Florida Atlantic64%✕ Lost30–38
12 SeptIowa over Iowa State82%✓ Won16–13
12 SeptCoastal Carolina over Fordham97%✓ Won45–7
12 SeptClemson over Georgia Southern89%✓ Won22–7
12 SeptLSU over Louisiana Tech96%✓ Won45–14
12 SeptTexas Tech over Oregon State93%✓ Won35–24
12 SeptTexas over Ohio State52%✓ Won24–23
12 SeptWisconsin over Western Illinois98%✓ Won36–9
12 SeptUCLA over San Diego State79%✓ Won28–10
12 SeptTulane over South Alabama76%✓ Won28–24
12 SeptTulsa over Sam Houston81%✓ Won23–17
12 SeptKennesaw State over Georgia State73%✕ Lost17–31
12 SeptNebraska over Bowling Green95%✓ Won56–7
12 SeptTennessee over Georgia Tech79%✓ Won45–24
12 SeptColorado State over Southern Utah90%✓ Won58–24
12 SeptArkansas State over West Georgia95%✓ Won52–7
12 SeptIllinois State over Northern Illinois63%✓ Won28–24
12 SeptBoise State over Memphis74%✓ Won38–20
12 SeptFlorida International over Buffalo State76%✓ Won33–20
12 SeptOhio over Jacksonville State55%✓ Won29–27
12 SeptVanderbilt over Delaware90%✓ Won35–26
12 SeptSMU over UC Davis94%✓ Won56–10
12 SeptWyoming over Northern Colorado92%✓ Won21–13
12 SeptUNLV over North Texas59%✕ Lost6–44
12 SeptColorado over Weber State97%✓ Won52–21
12 SeptPittsburgh over UCF70%✓ Won12–7
12 SeptUMass over Sacred Heart92%✓ Won37–10
12 SeptWashington over Utah State94%✓ Won16–14
12 SeptAlabama over Kentucky76%✓ Won45–17
12 SeptUAB over UL Monroe75%✓ Won26–20
12 SeptTexas State over UTSA53%✕ Lost26–31
12 SeptAkron over Robert Morris95%✓ Won45–10
12 SeptMaryland over UConn78%✓ Won38–14
12 SeptMichigan State over Eastern Michigan86%✓ Won35–7
12 SeptSyracuse over California61%✕ Lost18–21
12 SeptBYU over Arizona71%✓ Won28–17
12 SeptMississippi State over Minnesota50%✓ Won38–13

Closing-line value

Games closed
52
Mean CLV
-0.07pp
Beat the close
48%

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 by signal

SignalGamesRecordAccuracyBrier
Market consensus7038–3254%0.241
News read136–746%0.258
Line movement2818–1064%—
Public lean165–1131%—

What the calls would have been worth

Open the ledger (175 settled calls, flat 10-unit stakes)

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.

Settled
175
Record
126–49
StakedUnitOne flat stake. Results are quoted in units rather than currency because this site has never taken a bet and a pound sign would imply that it had. Ten units a call means every call is staked the same, so no single result can dominate the record.
1750u
Net, fair oddsFair priceThe decimal odds a probability implies with no margin attached — 50% is 2.00, 80% is 1.25. A bet struck at the fair price has an expected value of exactly zero by construction, so a profit at fair prices is variance rather than edge. A real bookmaker prices below fair; that difference is how they make money.
+12.32u
Net, at a bookVariance, not edgeA run of winning calls priced from de-vigged odds is not evidence of beating the market. The fair price already contains everything the market knows, so betting it breaks even in the long run and any short-run profit is the swing you would expect from chance. The record here measures whether the probabilities are well calibrated, not whether following them makes money.
-63.57u
At fair oddsFair priceThe decimal odds a probability implies with no margin attached — 50% is 2.00, 80% is 1.25. A bet struck at the fair price has an expected value of exactly zero by construction, so a profit at fair prices is variance rather than edge. A real bookmaker prices below fair; that difference is how they make money. At a book's priceDe-vigged (vig removed)Bookmakers price every market slightly above 100% — that overround is their margin (the 'vig'). We strip it out so the probabilities are fair and sum to exactly 100%. The 'VIG' figure is how much was removed.Why the gap mattersVariance, not edgeA run of winning calls priced from de-vigged odds is not evidence of beating the market. The fair price already contains everything the market knows, so betting it breaks even in the long run and any short-run profit is the swing you would expect from chance. The record here measures whether the probabilities are well calibrated, not whether following them makes money.
+98-12-122+12.3u-63.6ufirst call175 settled
Hover the curve for the call at that point.

The graded record itself, every prediction and every alert, is on the record page.

XII

The honest part