Our walkforward said FanDuel +4.13% and DraftKings +7.17%.

Then we lost the ability to check either number, rebuilt the whole thing from raw sources, and got a smaller, stranger result: the model cannot predict football, but it reliably buys a better price, and it does that by accident.

Here is the full sequence, including the parts that make us look worse.

What we published, and what caught fire

In August 2026 we published one model family across two sportsbooks, 2022 to 2025:

  • FanDuel +4.13% on 425 settled bets.

  • DraftKings +7.17% on 537 settled bets.

  • Bet only when both models pick the same side: +10.23% combined across 588 book-bets on 294 games, positive in every season according to that report.

The footnote in the same report was honest: the 95% confidence interval still included zero. In plain terms, the range of outcomes we could not rule out included breaking even, so the result was consistent with luck.

Then, in October 2026, a destructive command wiped the local research data store. Git could not restore it. The store was never tracked, because this research lake is deliberately kept outside version control. The artifacts behind those numbers were not archived, not reproducible and not auditable.

We could not investigate our own claim. We could only rebuild the inputs from raw sources and measure again.

The rebuild

The rebuild surfaced two real bugs. Kickoff times had been converted from the wrong time zone, and the snapshot we treated as "72 hours before kickoff" was sometimes taken at the wrong moment, occasionally after the game had started. Everything built on the old data was invalid.

original (Aug 2026)

rebuilt on corrected data

FanDuel

+4.13% on 425 bets

+3.37% on 637 bets

DraftKings

+7.17% on 537 bets

+4.88% on 609 bets

Cross-book agreement

+10.23% on 588 book-bets

+6.30% on 436 pairs

Slopegraph: all three returns fall from the original measurement to the rebuilt one, and none crosses zero.

Return per settled bet. The original run's artifacts were destroyed, so its cut cannot be reconstructed and the two sides are not established as like for like. Read the direction, not the distance.

This is the least dramatic and most important result in the piece. The rebuild did not wipe the result out. It came in lower, in the same direction, in both books and in the agreement rule. The original work was not invented and not cherry-picked. It was approximately right and somewhat optimistic, which is what an honest measurement of a small effect looks like when you measure it twice.

What did change is the certainty. At the rebuilt numbers the t-statistics are +0.89 for FanDuel and +1.28 for DraftKings. A t-statistic counts how many units of noise a result sits away from zero. Under about 2, it is inside the noise, so these cells are indistinguishable from breaking even.

One qualification, and it is not small. Because the original artifacts were destroyed, we cannot establish that the two sides of that table measure the same thing. The rebuilt figures are the lead-72 cut. What the original cut was, nobody can now check. So the table is evidence of direction, not of magnitude. Do not read the drop from 4.13 to 3.37 as a measured correction, or the drop from 10.23 to 6.30 as a measured shrinkage. It may be either, or neither.

That is what losing the data actually costs: not the numbers, but the ability to explain them.

Three questions

Can the model predict football? No, and we can measure it. Its Brier score was 0.2622 against 0.2500 for always saying 50/50. Brier grades probability forecasts, lower is better, and 0.25 is what you get for free by predicting a coin flip every week. It scored worse than guessing.

Is it just good at choosing which games to bet? We found a promising pattern: bets where it disagreed most with the market returned +4.35% in data we already had. We wrote the test down before running it, twice. Both versions lost money on data the rule had never seen: -15.5% and -19.1%. That first figure was in-sample, measured on the same data that suggested it. Out-of-sample is the only test that counts.

Then where does the money come from? From how the model was built. Its prediction is anchored to the betting line, so what actually varies is a small adjustment around that line, and that adjustment drifted by season. The model was not reading individual games. It was leaning one way all season. The lean was right in 2024 and 2025 and wrong in 2026, when the two original books (FanDuel and DraftKings) lost money in the weeks we measured, and across the pooled books we measured lost 16.4% across 192 bets (43.3% win).

What survived

One thing, and it is real: the model gets a better price than the market does by kickoff.

  • Measured as closing line value (CLV), the gap between the price taken and the price at kickoff: +0.17 points, where a point is about 1% of stake. It is buying at a slightly better number than the last price available before the game starts.

  • Seven of eight books show it, and the t-statistic is +3.18. This is the most statistically solid number in the whole study. It is not noise.

  • The mechanism is mundane. The rule says "take the side where this book is out of line with its rivals." That sounds like a forecast. It describes a price even better. It keeps buying the odd quote, and the market then moves toward it.

  • But it is small. Resettle the identical bets at the closing price and the return falls from 1.35% to 1.27%. The better price is worth 8 hundredths of a point, about 6% of the result.

  • One book makes the split visible in a single row: it beat the closing price by +0.14 points and still lost 1.1% of its bets. You can buy well and still lose, because the games still have to break your way.

Stacked bar: 6% of the return came from a better entry price, 94% from whether the games broke the model's way.

FanDuel, lead 72, 2021 to 2025. Average return 1.35% per settled bet, of which 0.08 points is the price advantage.

The discovery

Betting the over or under on a football total is a coin flip by design. The book sets the line so each side is near even money, and we measured exactly that: the market's own probability came out at 50/50 to within a rounding error.

So we stopped asking "which side?" and asked the better question: how far does the score land from the line? That distance is the residual.

season

average residual (points above the line)

2021

+0.03

2022

+0.16

2023

+1.24

2024

+1.59

2025

+1.48

In 2024 and 2025, games finished about a point and a half above the line on average. The books never adjusted: their posted price stayed at even money in every season we measured.

That is a real, unpriced effect. It is the gap the model kept stumbling into.

Two panels: average points above the line rising from near zero to about a point and a half, while the book's implied probability stays pinned at 0.50.

FanDuel, lead 72, roughly 280 games per season. The lower panel's vertical scale is deliberately wide, so a line pinned at even money reads as flat rather than as a wobble.

But nothing foresaw it. We tested all 46 model inputs one at a time, asking whether any could have predicted that drift before the season. Each needed to clear a Bonferroni-corrected bar, because testing 46 things guarantees some look good by accident. None passed. The best was indistinguishable from luck.

So what is it?

Not "the model works." Not "the model is noise." The accurate description:

❝

It is a price picker that doesn't know it's a price picker.

It was built to forecast totals and it cannot forecast. What it actually does is buy the outlier quote, hold a better number than the closing price, and occasionally catch a season where the whole league drifts one way. Real effect, accidental exploitation, more confidence than the evidence supports.

What to go and build

  1. Make the price edge deliberate. Build the durable part on purpose: which books post the outlier, how stale those quotes are, and the missing piece, how much money you can actually get down at them. We know the price. We do not know the size.

  2. Explain the drift. A point-and-a-half shift left at even money needs season-level causes: rule changes, pace of play, officiating, kickoff rules. Per-game inputs will never see it, which is why 46 of them found nothing.

  3. Stop predicting the side and start pricing the shape. The book publishes one number and one line. It does not tell you how wide the outcomes spread around that line. If the market is wrong about the spread rather than the direction, that is a bet on variance, and it is the one place left with room in it.

  4. Buy sample, not cleverness. At a fifth of a point a bet, the price edge sits inside one standard error at a few hundred tickets. More settled tickets, and any measurement at all of how much you can get down, are the only things that move this forward.

The one lesson

Big and certain are different things, and the trade press only ever asks about big. Statistical significance means it is probably not luck. Materiality means it is large enough to matter. The most certain number we produced explained 6% of the result. The numbers that made the headline explained none of it.

The data loss belongs here too. An unreproducible backtest is a claim, not a finding. When someone shows you one, the useful question is not "is it significant?" but "how much of it is the edge, how much is the weather, and could you rebuild it if the data vanished tomorrow?"

Two ways to use this

I am taking on new work. If you have a model, a pipeline, or an AI-assisted system that produces numbers people make decisions with, and you cannot show where those numbers came from, that is the job. I audit what is actually load-bearing, rebuild the proof, and leave you able to re-run it after I am gone. That is QAF as a product, and custom work when the problem is bigger than one audit.

Or build the skill yourself. If you would rather learn to build systems you can trust than hire someone to prove them, that is Forge Learn: one strategy taken from raw data through data certification, walk-forward validation, paper execution, scheduling and monitoring. Eleven units, self-paced, no live capital required.

Two doors, same offer. The difference between a system that runs and a system you can defend is the work.

Reply to this email and tell me which one you want. It goes to me, not a queue. If you would rather not reply, write [email protected].

This is historical and educational research, not a betting tip, staking recommendation, or personalized financial advice. Historical prices may not have been available or accepted at the displayed terms. Every figure above is reproduced by a named audit script and traced to a numbered section of the evidence record; the full trace runs in the companion blog post so this email stays readable.

Glossary

term

what it means here

Brier score

A grade for probability forecasts. Lower is better. 0.25 is what always saying 50/50 earns.

Closing line value (CLV)

The gap between the price you got and the price at kickoff. Positive means you bought better than the last price available.

t-statistic

How many units of noise the result sits away from zero. Under about 2, treat it as noise.

Residual

The distance between the actual score and the line. The thing you can predict; the side is not.

Out-of-sample

Tested on data the rule never saw. The only test that counts.

Bonferroni correction

A stricter pass mark applied when you test many ideas at once.

Significant vs material

Significant means probably real. Material means big enough to be worth doing.