Reproduce a Dixon–Coles case study
Rebuild the Dixon–Coles workflow step by step — team strengths, the low-score τ correction, time-decay weighting and a chronological backtest — then compare its probabilities with a de-vigged hypothetical market.
Learning objectives
- Write down the Dixon–Coles likelihood components: attack, defence, home advantage, τ and time weights.
- Compute a score matrix and 1X2/BTTS/Over 2.5 probabilities for given λ, μ and ρ, with and without the τ correction.
- Design a rolling, point-in-time backtest that never uses future matches or post-kickoff prices.
- Separate what the 1997 evaluation showed from what it cannot show about today's markets.
- List at least five failure modes to check before trusting a reproduced result.
What the original study did, in outline
Dixon and Coles built on the team-strength Poisson idea of Maher (1982): each side's goals follow a Poisson distribution whose rate depends on its own attacking strength, the opponent's defensive weakness and, for the home side, a home-advantage factor. They added two refinements that matter for reproduction: a small correction to the probabilities of the four lowest scores, and a weighting scheme that lets recent matches count more than old ones Dixon & Coles (1997).
λ = α_home × β_away × γ μ = α_away × β_homeP(x, y) = τ(x, y) × Pois(x; λ) × Pois(y; μ)ℓ = Σ_matches φ(t) × ln P(x, y) with φ(t) = exp(−ξ t)Reproducing the score matrix
Take a hypothetical fixture with λ = 1.45, μ = 1.10 and ρ = −0.08. The τ factors are 1.1276 for 0-0, 0.884 for 0-1, 0.912 for 1-0 and 1.08 for 1-1. A negative ρ therefore lifts 0-0 and 1-1 and trims the two 1-0 type scores. Because the four adjustments cancel exactly (the four cells add up to 40.17% either way), the grid still sums to one and no other score changes.
| Quantity | Independent | Dixon–Coles | Change |
|---|---|---|---|
| P(0-0) | 7.81% | 8.80% | +0.99 pp |
| P(1-0) | 11.32% | 10.33% | −0.99 pp |
| P(0-1) | 8.59% | 7.59% | −1.00 pp |
| P(1-1) | 12.45% | 13.45% | +1.00 pp |
| Home win | 45.13% | 44.13% | −1.00 pp |
| Draw | 26.20% | 28.19% | +1.99 pp |
| Away win | 28.67% | 27.68% | −1.00 pp |
| Both teams score | 51.06% | 52.06% | +1.00 pp |
| Over 2.5 goals | 46.89% | 46.89% | 0 |
Two lessons fall out of this table. First, the correction is a draw correction: about two points of probability move into the draw. Second, Over/Under 2.5 is untouched, because every adjusted score has two goals or fewer. If a reproduction shows ρ shifting Over 2.5, the code is wrong.
A chronological backtest design
A reproduction is only meaningful if each forecast uses information that existed when the bet would have been placed. The design below is a rolling origin: refit on everything before a match week, forecast that week, then move on.
- Freeze the data: match results with kickoff timestamps, and odds with the timestamp at which each quote was captured.
- Choose ξ and any thresholds on an early validation window only. Never tune them on the test seasons.
- For each match week, fit α, β, γ and ρ using only matches completed before the first kickoff of that week.
- Join each forecast to the last quote captured before kickoff (an as-of join), never to a closing or post-match price you could not have taken.
- De-vig with a method fixed in advance, record every candidate bet (taken or not) and score both forecasts (log loss) and bets (ROI with uncertainty).
| Match age | Weight |
|---|---|
| 0 days | 1.000 |
| 90 days | 0.835 |
| 180 days | 0.698 |
| 365 days | 0.482 |
| 730 days | 0.232 |
With ξ = 0.002 per day the half-life is ln 2 / ξ ≈ 346.6 days: a match from just under a year ago counts half as much as yesterday's. Larger ξ reacts faster to form but estimates each team from fewer effective matches, so the parameters become noisier.
What 1997 showed, what it cannot show today, and how reproductions fail
- Promoted and new teams: no recent history in the league, so α and β rest on few matches.
- Squad changes: transfers, injuries and managerial changes are invisible to a goals-only model until results arrive.
- Unstable ρ: the dependence parameter is estimated from rare low scores and can swing between refits.
- De-vig choice: a two-point model–market gap can shrink when the margin is removed by another method (Štrumbelj (2014)).
- Overfitting: many (ξ, threshold, league) combinations make a good-looking test season likely by chance.
- Price realism: historical odds may be closing or best-of-market prices nobody could take at size.
A faithful reproduction checklist: same score likelihood and τ, the same identifiability constraint, a documented ξ chosen out of sample, point-in-time joins, a fixed de-vig method, every candidate bet logged, forecast scores reported alongside ROI, and an explicit statement of what was not reproduced (for example, the original odds source).
Worked example
Worked example · Model versus a de-vigged hypothetical market: Harbour City v Northvale
A reproduced model gives λ = 1.45 (Harbour City, home) and μ = 1.10 (Northvale) with ρ = −0.08. A hypothetical bookmaker quotes 2.30 home, 3.30 draw, 3.40 away. Is there anything worth acting on?
- τ factors
0-0: 1 − 1.45 × 1.10 × (−0.08); 0-1: 1 + 1.45 × (−0.08); 1-0: 1 + 1.10 × (−0.08); 1-1: 1 − (−0.08)1.1276, 0.884, 0.912, 1.08 - Model 1X2
Sum the Dixon–Coles score grid (0–10 goals each) by resultHome 44.13%, draw 28.19%, away 27.68% (fair odds 2.266 / 3.547 / 3.613) - Book sum
1/2.30 + 1/3.30 + 1/3.401.0319 → overround 3.19% - Proportional de-vig
Each 1/o divided by 1.0319Home 42.13%, draw 29.37%, away 28.50% - Model minus market
44.13 − 42.13; 28.19 − 29.37; 27.68 − 28.50+2.00 pp, −1.17 pp, −0.83 pp - EV at the quoted prices
EV = p × o − 1: 0.4413 × 2.30 − 1; 0.2819 × 3.30 − 1; 0.2768 × 3.40 − 1Home +1.50%, draw −6.96%, away −5.90% - Sensitivity on the home price
Model home ± 2 pp → 42.13% to 46.13% at 2.30 (break-even 43.48%)EV from −3.10% to +6.10%: depends on the estimate - Method check
Power and Shin de-vig give the home side 42.41% and 42.34%Gap shrinks to 1.72–1.79 pp
The model leans towards the home side by about two points, but the expected value at 2.30 is only +1.5% and turns negative if the model is two points too high — a plausible error for a reproduced model with an unstable ρ. The honest decision is no action: record the forecast, score it later, and let a chronological sample — not one fixture — decide whether the model adds information.
Practice · Remove the margin from the hypothetical quote
Open the Remove the margin lab with the preset 2.30 / 3.30 / 3.40. Compare the four de-vig methods with the model's 44.13% / 28.19% / 27.68%. Does any method put the model's home probability below the market's?
Lab 2 · Remove the margin
Synthetic · deterministic| Method | Home | Draw | Away |
|---|---|---|---|
| Raw implied (with margin) | 43.48% | 30.30% | 29.41% |
| Proportional | 42.13% (2.373) | 29.37% (3.405) | 28.50% (3.509) |
| Additive | 42.41% (2.358) | 29.24% (3.420) | 28.35% (3.528) |
| Power k = 1.0299 | 42.41% (2.358) | 29.24% (3.420) | 28.35% (3.527) |
| Shin z = 0.0160 | 42.34% (2.362) | 29.27% (3.416) | 28.39% (3.523) |
- Proportional: Divides every implied probability by the book sum. Simple, but assumes the margin is spread in proportion to probability.
- Additive: Removes an equal amount from every outcome. Easy to explain; it can push long shots below zero.
- Power: Raises every implied probability to a common power. Takes relatively more margin from long shots.
- Shin: Derived from Shin's insider-trading model. Takes more margin from long shots; performed well in Štrumbelj (2014).
Reading the result. The methods agree on the favourite more than on long shots. None of them recovers the “true” probability: they are different assumptions about how the bookmaker spread its margin. Differences of a point or two can decide whether a price looks like value, so state which method you used.
Educational calculator. Uses only the numbers you enter or seeded synthetic data — no live prices, no staking, no real money.
Show what you should find
The book sums to 103.19%. Proportional gives 42.13% / 29.37% / 28.50%; additive and power both give about 42.41% / 29.24% / 28.35%; Shin gives 42.34% / 29.27% / 28.39%. Every method leaves the model about 1.7–2.0 points higher on the home side and 1.0–1.2 points lower on the draw. The direction is robust to the method; the size is small, which is why it does not justify a pick on its own.
Common mistakes
- ✗ Fitting the model on the whole dataset, then backtesting on the same matches.Refit before every match week using only completed matches; the test forecasts must be out of sample.
- ✗ Expecting ρ to change Over/Under 2.5 probabilities.τ only redistributes mass among 0-0, 1-0, 0-1 and 1-1, all of which are under 2.5 goals. It changes draw and BTTS probabilities, not Over 2.5.
- ✗ Treating the 1997 betting result as evidence that the model beats current markets.It is one historical evaluation in a high-margin era. Dixon & Coles (1997) does not show that the model beats today's markets after margins, limits and competition.
- ✗ Comparing model probabilities with raw implied probabilities.Raw 1/o includes the margin. Compare with de-vigged probabilities and check that your conclusion survives more than one de-vig method.
When it fails
Supporting research
- Dixon & Coles (1997): Modelling Association Football Scores and Inefficiencies in the Football Betting MarketJournal of the Royal Statistical Society: Series C (Applied Statistics) · Peer-reviewed empiricalThe model structure (attack, defence, home advantage, low-score dependence, down-weighting of old matches) and the historical betting evaluation, with its single-period limitation.
- Maher (1982): Modelling association football scoresStatistica Neerlandica · Peer-reviewed empiricalThe team-strength Poisson foundation that Dixon–Coles extends.
- Štrumbelj (2014): On determining probability forecasts from betting oddsInternational Journal of Forecasting · Peer-reviewed empiricalWhy the market benchmark depends on how odds are converted to probabilities.
- Bailey et al. (2014): Pseudo-Mathematics and Financial Charlatanism: The Effects of Backtest Overfitting on Out-of-Sample PerformanceNotices of the American Mathematical Society · Peer-reviewed theoryWhy the number of tuning trials must be reported in any reproduced backtest.
Check your understanding
Practice only: saved on this device, no XP and no account record.
