1. Prove it is the same product
Check event, market, selection, period, rules and currency. A to-qualify price and a 90-minute match-result price are not comparable. Remove stale or suspended quotes.
2. Confirm availability
Record the stake available at the outlier. On an exchange, displayed amount and matching status matter; Betfair's guide explains matched and unmatched requests. A tiny available amount does not support a claim about the price for a larger stake.
3. Compare the whole market
Suppose one Home price is 2.40 while a comparison set clusters around 2.20. Raw reciprocals are 1 / 2.40 x 100 = 41.67% and 1 / 2.20 x 100 = 45.45%. The gap is 45.45 - 41.67 = 3.78 percentage points. Next compare the Draw and Away prices and remove margin using one stated method.
4. Check known information
Record team news, venue, competition, start time and settlement changes from dated sources. Do not invent an information story merely because the price differs. The outlier may reflect limits, stale data, a different model, a deliberate quote or an error.
5. Evaluate a model disagreement
If a model estimates 48%, fair odds under that estimate are 1 / 0.48 = 2.083. At 2.40, estimated expected net return is 0.48 x 2.40 - 1 = 0.152 units per unit before costs. That is a model output, not proof of mispricing.
Use time-ordered validation to avoid training on future observations; TimeSeriesSplit documents one implementation. Use calibration or another proper scoring method for probabilistic forecasts rather than win percentage alone.
Classification table
| Result | Meaning |
|---|---|
| Explainable | Different rules, stale quote, limit or known information accounts for gap |
| Unresolved | Quote is valid but evidence does not identify a cause |
| Model disagreement | Documented model differs; future evaluation is still required |
Make the disagreement falsifiable
Calling a price wrong should mean that a documented probability method disagrees with an executable quote by enough to remain material after uncertainty and costs. Store the model output before the event, the accepted or observed price, the data cutoff and the decision rule. Without that record, a post-result explanation cannot distinguish a real prior estimate from hindsight. scikit-learn's calibration guidance describes one way to evaluate probabilistic forecasts.
Suppose a model assigns 46% and the price is 2.30. Estimated EV is 0.46 x 2.30 - 1 = 0.058 units per unit. If a reasonable sensitivity range is 42% to 48%, EV ranges from 0.42 x 2.30 - 1 = -0.034 to 0.48 x 2.30 - 1 = 0.104. The sign is not robust across the stated range, so the honest conclusion is uncertainty rather than a definite error. OpenStax provides the expected-value basis.
Post-event review
- Score every eligible forecast, including passes and losses, using a declared evaluation such as the methods described in scikit-learn's calibration guidance.
- Check calibration and discrimination on future data.
- Compare accepted prices with a consistently captured closing benchmark.
- Separate model revisions from data corrections.
- Report where the method performs poorly.
A single win cannot prove the quote was wrong, and a single loss cannot prove it was right. The claim lives or dies on the predeclared method and repeated evaluation.
Related resources
Read odds comparison before this workflow and fair odds for model terminology.
Continue learning
- Next guide: Odds Conversion Guide
- Related guide: Accumulator Odds
Assumptions and limitations
The numerical example is illustrative. Market consensus is not guaranteed to be correct, and a model disagreement is not guaranteed value. Historical football-market research such as Goddard and Asimakopoulos is sample-specific and does not establish a universal outlier rule.

