The policy
Every model has bad days, and every system has bugs. The question that matters is what
happens next. Deleting the affected picks would make the record look better and mean
nothing. So we do the opposite.
- Nothing is deleted, ever. A published prediction stays in the ledger, on the
record page and in the downloadable CSV, whatever it turns out to be worth.
- Faults are written up here. What broke, what it affected, how many records, and
what we changed so it cannot happen again.
- Exclusions are disclosed and counted. If a fault was severe enough that leaving
the affected rows in the headline accuracy would mislead, we may exclude them, and this
page says exactly how many and why. An exclusion you cannot see is a deletion with better
manners.
- The default is to count them anyway. No correction has been excluded from our published statistics. Every affected record is still counted against us.
- A settled row can never change. An automated check compares every settled
prediction against a stored fingerprint each night and alerts if one is altered or
disappears.
Corrections found by readers are welcome and
will be credited. Use the contact form. The fastest way to
make this project better is to catch us being wrong.
Record
5 corrections published ·
0 resulting in any exclusion from headline statistics ·
0 predictions deleted, since day one.
2026-07-26
Annotated, still counted
Placeholder exchange prices recorded as real market prices
Tennis · Darts · Esports · Rugby
What happened. When a betting market has no money in it yet, the exchange shows its minimum price on both sides. Our capture treated that as a real market view. It normalises to a flawless 50/50, so every sanity check we had passed it.
Why it matters. On tennis the fabricated price was not just a benchmark, it was an input to the model, so on those fixtures the model largely echoed a number that meant nothing. 53 of 185 tennis records carry a market price of exactly 50%.
What we did. Annotated. Those rows stay in the record and in the published accuracy figures.
Fixed. Capture now requires a plausible two-sided book AND actual traded volume before storing a price. A daily data-quality check watches for recurrence. Read the detail
2026-07-26
Annotated, still counted
Market price published for the wrong player
Tennis · Darts · Snooker · Rugby · Esports
What happened. On the record pages and downloadable CSVs, the model column showed our favourite's probability while the market column showed the first-named player's. Where the model favoured the second-named player, the two columns described different people.
Why it matters. It made the model look contrarian on matches where it actually agreed with the market. 93 of 325 published rows were affected, the worst by 84 percentage points. The cards were always correct, so cards and pages disagreed.
What we did. Corrected at source and every page regenerated. No prediction changed; only the market figure shown beside it.
Fixed. The publisher now flips the market price to the favourite's side, matching the cards. Verified row by row against the ledgers. Read the detail
2026-07-26
Annotated, still counted
Closing-line figures reported as zero when no closing price existed
Snooker · Esports · Rugby · Darts
What happened. If a closing price was never captured, the code copied the opening price into the closing field. Closing-line value then computed as exactly 0.00% and read as a real measurement rather than a missing one.
Why it matters. Every snooker record was affected. 'Our picks show zero closing-line value' is a meaningful claim about edge; 'we never captured the close' is not, and the two were indistinguishable.
What we did. No prediction affected. The published closing-line coverage figures on the methodology page now state the real per-sport percentages.
Fixed. A missing closing price now stays missing. Coverage is published rather than implied. Read the detail
2026-07-26
Annotated, still counted
Women's World Matchplay priced with the men's final format
Darts
What happened. Our format table matches competitions by name. Betfair calls the event "PDC Womens World Matchplay", which contains "PDC World Matchplay", so the women's first round inherited the men's schedule and was priced as that day's men's final: first to 18 legs, two clear. The women's first round is first to 5, best of 9, with no two-clear rule. Betfair's own correct-score market settles it: its runners run from 5-0 to 5-4.
Why it matters. The published win probabilities were NOT affected, because those come from our blend with the market price rather than from the match length. What was wrong were the likeliest scorelines and the expected number of legs: the card offered "18-10" as the likeliest score in a race to 5, and 29 legs in a best-of-9 match.
What we did. Caught by the site owner on the morning card, roughly two hours after it went out. The four affected rows were voided in the ledger and are still visible there; four fresh rows were logged with the correct format, and a corrected card was reissued to the channel explaining the change. Nothing was deleted.
Fixed. The women's event now has its own entry in the format table, verified against the exchange's correct-score market rather than assumed, and it takes precedence over the men's because the matcher prefers the longest matching name. Rounds we have not verified now raise a visible warning instead of silently falling back to a default. Read the detail
2026-07-17
Annotated, still counted
World Matchplay picks published with the wrong match length, then replaced
Darts
What happened. Eight World Matchplay first-round picks were published on 17 July with the match length set to a default race-to-6 instead of the tournament's actual race-to-10. Match length changes a win probability, so the numbers were wrong: Aspinall v Cullen went out at 74% when the corrected figure was 80%.
Why it matters. The picks were then re-logged with the correct format and the original rows were removed. That was the wrong way to handle it. Deleting and re-logging is exactly the habit this policy exists to replace, and it is why the eight rows are absent from the 17 July record even though a card went out that day.
What we did. Kept as-is and disclosed here. The corrected rows are in the record and settled normally; the superseded originals are not being reinstated because that would put the same eight matches in the record twice. We checked: the model went 7 from 8 on that round, so nothing about this flattered us.
Fixed. From now on a pre-match correction voids the original row visibly and logs a fresh one beside it, so both remain on the record. Match formats are read from the competition rather than defaulted. Read the detail