Altora Analytics

Corrections

We do not delete predictions. When one was produced from data we can prove was faulty, it stays on the record and we explain it here.

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.

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