In one sentence
Model vs market analysis asks whether your probabilities contain information the exchange price does not, usually by comparing forecast scores and by blending the two to see how much weight your model deserves.
How it works
A liquid Betfair market is itself a forecast, built from the money of thousands of people, some of them very well informed. Any serious model should be compared with that forecast, not with a naive baseline such as "home team always wins".
The first test is scoring: does your model beat the margin-free market price on log loss or Brier score over the same events? The second is combination: fit a blend such as "final probability = w × model + (1 − w) × market" on past data. If the best w is close to 0, the market already knows what your model knows.
In practice, most models deserve a weight well below 1. Treating your model as fully right and the market as fully wrong is one of the fastest ways to overstake.
The maths
- p model: your model's probability.
- p market: the market's implied probability with the margin removed (on a tight exchange market, roughly 1 ÷ odds).
- w: the weight on your model, between 0 and 1, fitted on past out-of-sample data.
- O: the decimal odds you can back at.
- c: Betfair commission on net winnings, 0.02 at a 2% rate.
In plain English: shade your model's view towards the market, then work out expected value after commission on the blended probability.
A common refinement is to blend in log-odds space using logistic regression, which lets the data choose weights and also correct any bias.
Worked betting example
Your model gives Leeds 55% to win (an illustrative figure). Betfair offers 2.10 to back on Match Odds, implying 1 ÷ 2.10 ≈ 47.6%. Commission is 2%.
| Weight on model (w) | Blended probability | EV per £1 staked |
|---|---|---|
| 1.0 | 55.0% | +14.3% |
| 0.5 | 51.3% | +6.6% |
| 0.3 | 49.8% | +3.6% |
Step by step for w = 0.5:
- Blend: 0.5 × 0.55 + 0.5 × 0.476 ≈ 0.513.
- Profit if Leeds win, per £1: 1.10 × 0.98 = £1.078.
- EV = 0.513 × 1.078 − 0.487 ≈ +0.066, so about 6.6p per £1.
If past data says w = 0.3 fits best, the "14.3% edge" shrinks to about 3.6%. The full Kelly stake shrinks with it, from about 13.3% of the bank to about 3.3%.
Where it's good
- Deciding whether a model is worth using at all before risking money.
- Setting sensible stake sizes by estimating a realistic edge rather than the model's raw view.
- Pre-match football markets such as Match Odds and Over/Under goals, where the price is a strong benchmark.
- Checking whether your edge lies in certain segments, such as lower leagues or early-morning prices, where the market is weaker.
Limitations and pitfalls
- Which market price you compare against matters. Early prices are weaker than closing prices; beating the early price is easier but only matters if you actually bet then.
- The fitted weight w is itself uncertain and can move a lot from season to season. Refit it using walk-forward data.
- A model that uses the market price as an input will look good in this test for the wrong reason.
- Beating the market's score slightly may still not beat commission; always translate the comparison into money.
- Remove the overround before comparing, or the market will look worse than it is.
How to build it
- Python:
statsmodelslogistic regression with your model's log-odds and the market's log-odds as the two inputs. - Data: your out-of-sample forecasts, the price you could have taken, and the Betfair closing price or starting price for the same events.
- Tip: track closing line value alongside results; beating the closing price regularly is faster evidence of edge than profit.
Related methods
- Closing line value - the quickest real-world check that you beat the market.
- Market efficiency - why the price is so hard to beat.
- Margin removal - getting fair market probabilities to compare with.
- Brier score - one way to score both forecasts.
- Bayesian model averaging - a more formal way to weight competing forecasts.