Tool · Free, no sign-up
Poisson match predictor
Turn two expected-goals figures into a full correct-score grid and fair prices for match odds, goals, both teams to score and Asian handicaps, with an optional Dixon-Coles correction.
Give it expected goals for each side, or the league averages and ratings that produce them. It builds the grid of every scoreline up to 25-25, reads each market off that grid, and turns the probabilities into fair prices. Add a bookmaker's three match-odds prices and it shows the value per pound at each, with a link that sends those prices straight to the margin remover. Nothing is stored or sent.
Worked example
The specimen match from chapter 16 of the book: league averages of 1.50 home goals and 1.20 away goals, a home side rated 1.30 in attack and 0.90 in defence, an away side rated 1.10 and 1.15. So λ = 1.50 × 1.30 × 1.15 = 2.2425 and μ = 1.20 × 1.10 × 0.90 = 1.188, kept unrounded.
| Home \ Away | 0 | 1 | 2 | 3 | 4 | 5 |
|---|---|---|---|---|---|---|
| 0 | 3.24 | 3.85 | 2.28 | 0.90 | 0.27 | 0.06 |
| 1 | 7.26 | 8.62 | 5.12 | 2.03 | 0.60 | 0.14 |
| 2 | 8.14 | 9.67 | 5.74 | 2.27 | 0.68 | 0.16 |
| 3 | 6.08 | 7.23 | 4.29 | 1.70 | 0.50 | 0.12 |
| 4 | 3.41 | 4.05 | 2.41 | 0.95 | 0.28 | 0.07 |
| 5 | 1.53 | 1.82 | 1.08 | 0.43 | 0.13 | 0.03 |
| Market | Poisson | Fair price | With ρ = −0.10 |
|---|---|---|---|
| Home win | 61.17% | 1.63 (about 8/13) | 60.31% |
| Draw | 19.62% | 5.10 (about 4/1) | 21.35% |
| Away win | 19.21% | 5.21 (about 4/1) | 18.34% |
| Over 2.5 goals | 66.61% | 1.50 (about 1/2) | 66.61% |
| Both teams to score | 62.13% | 1.61 (about 8/13) | 63.00% |
| Home win to nil | 27.25% | 3.67 (about 11/4) | 26.38% |
| Line | Wins | Half wins | Pushes | Loses | Fair decimal |
|---|---|---|---|---|---|
| Home −0.5 | 61.17% | 38.83% | 1.63 | ||
| Home −0.75 | 38.86% | 22.31% | 38.83% | 1.78 | |
| Home −1.0 | 38.86% | 22.31% | 38.83% | 2.00 | |
| Home −1.5 | 38.86% | 61.14% | 2.57 |
How it works
Poisson
The chance of a side scoring exactly k goals when it averages λ is e−λλk ÷ k!. Multiply the home side's chance of x goals by the away side's chance of y goals and you have the probability of an x-y scoreline. Do that for every pair and the grid is complete. The BTTS calculator and the guide to any other score read the same grid for those two markets.
Dixon-Coles
Four cells are then scaled: 0-0 by 1 − λμρ, 1-0 by 1 + μρ, 0-1 by 1 + λρ and 1-1 by 1 − ρ. The changes cancel, so the grid still adds up to one. With ρ = −0.10 on this match the draw moves from 19.6 to 21.3 per cent.
Ratings
λ = league home average × home attack × away defence, and μ = league away average × away attack × home defence. A rating is a side's figure divided by the league's: goals scored at home over the league's home average gives home attack, goals conceded at home over the league's away average gives home defence, and the same the other way round for the away side. Goals or xG both work.
Full step-by-step versions are on the chapter 16, chapter 17, chapter 19 and chapter 21 workings pages. To remove a bookmaker's margin before comparing, use the margin remover; to see how a run of bets at a given edge can go, use the season simulator.
Questions
Frequently asked questions
Where do the expected goals come from?
From you. The predictor turns two expected-goals figures into prices; it does not know who is playing. You can type the two figures straight in, build them from league averages and attack and defence ratings, or let it work out the ratings from each side's goals or xG for and against per match. The output is only as honest as those inputs.
What does rho do, and what value should I use?
Rho is the Dixon-Coles correction. Plain Poisson treats the two teams' goals as independent, which slightly undercounts 0-0 and 1-1. A negative rho moves probability from 1-0 and 0-1 onto 0-0 and 1-1 and leaves every other score alone. Values fitted to league data are usually small and negative, somewhere around −0.05 to −0.15. Use 0 for the plain model.
How are the Asian handicap prices worked out?
From the same correct-score grid. Each line is settled exactly as a bookmaker would: whole lines can push, half lines cannot, and quarter lines put half the stake on each neighbouring line. The fair price is the decimal price at which the bet breaks even on average.
Does the predictor store anything?
No. It runs in your browser, sets no cookies and sends nothing anywhere. The inputs are written into the page address after the # so you can bookmark or share a match; that part of an address never reaches a server.
Out now · free to read on Kindle Unlimited