Here's the whole process on a hypothetical North London derby.
Step 1: attack and defence strengths
Compare each team with the league average:
Attack strength = team's average goals scored ÷ league average goals (home or away)
Defence strength = team's average goals conceded ÷ league average goals conceded (home or away)
If Arsenal score 2.3 goals per home game and the league average is 1.5, their home attack strength is 2.3 ÷ 1.5 = 1.53.
Step 2: expected goals
Home expected goals = home attack × away defence × league home average
Away expected goals = away attack × home defence × league away average
Say the sums give Arsenal 2.18 and Tottenham 1.24.
Step 3: the probabilities
Poisson then gives each side's chance of scoring 0, 1, 2, 3 or 4+ goals. Arsenal come out at 11.3%, 24.6%, 26.9%, 19.5% and 17.8%. Spurs are at 28.9%, 35.9%, 22.3%, 9.2% and 3.7%.
Step 4: the score matrix
Multiply the two sets together to get joint outcomes, with Arsenal's goals down the side and Spurs' across the top:
| Arsenal ↓ / Spurs → |
0 |
1 |
2 |
3 |
| 0 |
3.3% |
4.1% |
2.5% |
1.0% |
| 1 |
7.1% |
8.9% |
5.5% |
2.3% |
| 2 |
7.8% |
9.7% |
6.0% |
2.5% |
| 3 |
5.6% |
7.0% |
4.3% |
1.8% |
The likeliest scoreline is Arsenal 2-1 Spurs at 9.7%, which makes the fair price about 10.30 (1 ÷ 0.097). On this model an 11.00 quote would be a value bet and a 10.00 quote wouldn't. And remember that a model is only as good as its inputs: 9.7% is an estimate, not a forecast.
Where Poisson falls short
Basic Poisson is only modestly better than guessing for match results, and it's less reliable still for exact scores, so treat it as a starting point. Goals aren't truly independent, since a team leading 2-0 plays differently from one at 0-0. It knows nothing about red cards, injuries, weather or tactical changes unless you add them. Past data can lag behind current form and transfers. And real football produces more low-scoring draws than basic Poisson predicts, which is the gap the models below were built to close.