In previous articles, we’ve looked at odds and probabilities, then used this to understand the concept of value betting. Whilst discussing value, we touched on creating our prediction model to allow you to generate your probabilities and odds for certain sporting events. This can then be used to compare your odds with those of the bookmaker to identify value in the market and (touch wood) ensure sustained profit in the long term. In this article, we go through the steps required to create our football (soccer) prediction model using Poisson Distribution, as well as look at some of the limitations of this approach.

So what is Poisson Distribution? If you Google it, you get back a lot of scary definitions that are very difficult to understand, such as “Poisson distribution is the probability of the number of events that occur in a given interval when the expected number of events is known and the events occur independently of one another”. What this means is that when we know the average number of times that an event will happen, we can use Poisson to calculate how likely other numbers deviate from this average.

Luckily though, we don’t need to fully understand the concept, the formula or how to calculate it because Microsoft Excel has a formula that can work out Poisson automatically. All we need to know is that it can be used to calculate the probability of outcomes for a football match, which in turn can be turned into odds which we can use to identify value in the market. This covers several goal-based markets such as Match Outcome (1×2), Correct Score, Over / Under Match Goals, Both Teams To Score and Asian Handicap. There is plenty of more in-depth reading into Poisson online, but we won’t be delving into that level in this article.

Although it has its limitations and faults, Poisson is a useful starting point to understand the fundamentals of creating your odds. It can work as a standalone model that you use to advise your betting, or it can be used to understand the basics before going on to explore furthermore complicated methods. It also has applications to other sports, but in this article, we will just look at football.

As you begin to create your odds, check them against our top-rated football betting sites with the best odds below:

## So how do we create a predictive model for football games based on Poisson distribution?

As a quick summary, what we are going to do is take historical results to calculate the number of goals teams score and concede. These averages are compared to the league average and used to create values for attacking strength and defensive strength for every team, which are then turned into goal expectation figures. This metric is put into a Poisson Distribution formula which works out the probability of every result when two teams face each other. We then take these probabilities to create our odds, compare these against the bookies’ odds, then identify where there is value in the market because the bookies are offering more generous odds that we’d expect. Simple!

The beauty with a method like this is that there are some different points during the process where you might decide to try a different value as an input or may want to include something else in the calculation. You may even choose to calculate goal expectation in a completely different way, for instance, by using Elo ratings which ranks all teams against each other – as teams play each other, their respective rating will increase or decrease based on the outcome of the result – and will be covered in a later article. That is perfectly fine and will help you develop and refine your predictive model during its lifetime.

The below is a slightly modified version of the method I used throughout the 2013/14 season – after all, I don’t want to give all of my secrets away – however, it will allow you to create your predictive model if you follow these steps.

1. The first step is to decide which league(s) you want to build a predictive model for. Until you get your model to a stage where you are happy with it, it makes sense to focus only on one league, preferably one you know well. Once everything is working as you wish, then the model can be replicated for different leagues. You will go through a period of testing and improving, so it makes sense to do this for one league to start with rather than making the exact same changes for multiple leagues. Trust me, there is nothing worse than taking on too much at the start by attempting to predict every football game being played. For this example, we will use the English Premier League.
2. Open Microsoft Excel. It will become your best friend! Using a website such as WhoScored.com or Soccerway.com, copy and paste all results from last season into a format that you can manipulate in Excel – for example:

Home
Away
Result
Home Goals
Away Goals
Cardiff
Chelsea
1-2
1
2
Fulham
Crystal Palace
2-2
2
2
Hull
Everton
0-2
0
2
Liverpool
Newcastle
2-1
2
1
Sunderland
Swansea
1-3
1
3
Man City
West Ham
2-0
2
0
Tottenham
Aston Villa
3-0
3
0
Norwich
Arsenal
0-2
0
2
West Brom
Stoke
1-2
1
2
Southampto
Man Utd
1-1
1
1

These results are the base data that help you get to the point where you can create your own odds. As more games are played, you will add these to this list of results, but we don’t need to think about that just yet. This is one of the first points where you need to decide how many results you want to use as an input into your calculation. Some people may use five games, others may use 10, whilst some may use data for the entire season. What you choose is up to you and this may be something you wish to tinker with as you refine your model. For this example, we will use all 38 games from the 2013/14 season.

3. If you’re good with Excel, you can use all of these results to calculate the next step. If you’re not good with formulas such as Sum Ifs and Count Ifs, then a shortcut is to create another table based on the final league table. The key things we are looking to capture is goals scored and goals conceded by teams in games at home and on the road. This will then be used to work out the total goals in the league, average goals in the league, in addition to average goals for and against per team. Goals For and Goals Against are simple Sums in Excel, whilst the two averages are worked out by dividing the total goals by the games played. For instance, Arsenal’s Average Goals is simply 36 / 19 = 1.89. The below shows two tables – one for teams at home and one for teams against – showing all of these calculations.

Hello, world!

HOME

Team Games Played Goals For Average Goals For Goals Against Average Goals Against
Arsenal 19 36 1.89 11 0.58
Aston Villa 19 22 1.16 29 1.53
Cardiff 19 20 1.05 35 1.84
Chelsea 19 43 2.26 11 0.58
Crystal Palace 19 18 0.95 23 1.21
Everton 19 38 2 19 1.00
Fulham 19 24 1.26 38 2.00
Hull 19 20 1.05 21 1.11
Liverpool 19 53 2.79 18 0.95
Man City 19 63 3.32 18 0.95
Man United 19 29 1.53 21 1.11
Newcastle 19 23 1.21 28 1.47
Norwich 19 17 0.89 18 0.95
Southampton 19 32 1.68 23 1.21
Stoke 19 27 1.42 17 0.89
Sunderland 19 21 1.11 27 1.42
Swansea 19 33 1.74 26 1.37
Tottenham 19 30 1.58 23 1.21
West Brom 19 24 1.26 27 1.42
West Ham 19 25 1.32 26 1.37

Total
380
598
31.47
454
23.89
Average
19
29.9
1.57
22.7
1.19

AWAY

Team Games Played Goals For Average Goals For Goals Against Average Goals Against
Arsenal 19 32 0.59 30 1.58
Aston Villa 19 17 1.12 32 1.68
Cardiff 19 12 1.58 39 2.05
Chelsea 19 28 0.68 16 0.84
Crystal Palace 19 15 1.27 25 1.32
Everton 19 23 0.83 20 1.05
Fulham 19 16 1.19 47 2.47
Hull 19 18 1.06 32 1.68
Liverpool 19 48 0.49 32 1.68
Man City 19 39 0.49 24 1.26
Man United 19 35 0.54 22 1.16
Newcastle 19 20 0.95 31 1.63
Norwich 19 11 1.73 44 2.32
Southampton 19 22 0.84 23 1.21
Stoke 19 18 1.06 35 1.84
Sunderland 19 20 0.95 33 1.74
Swansea 19 21 0.9 28 1.47
Tottenham 19 25 0.76 28 1.47
West Brom 19 19 1.00 32 1.68
West Ham 19 15 127 25 1.32

Total
380
454
19.21
598
31.47
Average
19
22.7
0.96
29.9
1.57

4. Now that we have these key stats, we can use them to calculate the attacking strength and defensive strength for each team. Again, this is a relatively simple thing to do and can be achieved by dividing Average Goals For or Average Goals Against by the league average. For example, to work out Arsenal’s home attacking strength, it would be 1.89 divided by 1.57 which equals 1.20 – this means that Arsenal score 20% more goals at home than the average team. As another example, to work out Aston Villa’s away defensive strength, you would divide 1.68 by 1.57 to give 1.07 – this shows that Villa have the worst defense than an average team as they concede 7% more goals.
If we repeat this calculation for all teams, we can work out the attacking and defensive strengths when playing at home and when playing away:

Team Attacking Strength Defensive Strength Attacking Strength Defensive Strength
Arsenal 1.20 0.48 0.62 1.00
Aston Villa 0.74 1.28 1.16 1.07
Cardiff 0.67 1.54 1.65 1.3
Chelsea 1.44 0.48 0.71 0.54
Crystal Palace 0.60 1.01 1.32 0.84
Everton 1.27 0.84 0.86 0.67
Fulham 0.80 1.67 1.24 1.57
Hull 0.67 0.93 1.10 1.07
Liverpool 1.77 0.79 0.41 1.07
Man City 2.11 0.57 0.51 0.80
Man Utd 0.97 0.93 0.57 0.74
Newcastle 0.77 1.23 0.99 1.04
Norwich 0.57 0.79 1.80 1.47
Southampton 1.07 1.01 0.90 0.77
Stoke 0.90 0.75 1.10 1.17
Sunderland 0.70 1.19 0.99 1.10
Swansea 1.10 1.15 0.94 0.94
Tottenham 1.00 1.01 0.79 0.94
West Brom 0.80 1.19 1.04 1.07
West Ham 0.84 1.15 1.32 0.84

5. We now use this reference table of attacking and defensive strengths to calculate how many goals we expect a team to score in a particular match – we call this the Goal Expectancy. It makes sense that a team like Aston Villa are likely to have higher goal expectancy against a team like Sunderland compared to a team like Arsenal. This is because of two main reasons – (1) Arsenal’s defense will be stronger than Sunderland’s, thus Villa will struggle to score, and (2) Sunderland’s attack will be weaker than Arsenal’s, so Villa are likely to concede less goals. These two factors create the Goal Expectancy metric, which can be worked out for any match. If we take Arsenal vs Aston Villa at the Emirates Stadium as an example, we can see that Arsenal would be expected to score an average 2.02 goals to Villa’s 0.53 goals:

1. Home Team Goal Expectancy: home attacking strength (1.20) x away defensive strength (1.07) x average goals home (1.57) = 2.02
2. Away Team Goal Expectancy: away attacking strength (1.16) x home defensive strength (0.48) x average goals away (0.96) = 0.53
1.
2.  6. Hopefully, you are still with me…if not, go back and read again. If you are, then great, let’s continue! What we now need to do is use the Poisson Distribution in Excel to calculate the probability of all possible scorelines for the hypothetical Arsenal vs Aston Villa game. The best way I’ve found of doing this is to set up a matrix with all possible scorelines from 0-0 to 10-10. Again, you could decide to change this and continue up to 15-15, or even stop at 8-8 if you think it is unlikely a team will score more than 8 goals. In Microsoft Excel, the Poisson Distribution formula is:

Poisson = (x, mean, cumulative)

Where:
x = Number of goals
Mean = the probability of that team scoring a goal i.e. goal expectancy
Cumulative = Is set to FALSE so that the formula returns a value exactly equal to x (number of goals)

Obviously we don’t have cell references in this example as you’d find in Excel, but the formula should still make sense. If we use 0-0 as an example, the Poisson Distribution formula would look like this:

1. =((POISSON(Home score 0 cell, Home goal expectancy, FALSE)* POISSON(Away score 0 cell, Away goal expectancy, FALSE)))*100
2. If we add values this equates to =((POISSON(0, 2.02, FALSE)* POISSON(0, 0.53, FALSE)))*100
3. Which produces a 7.808% probability that the score will be 0-0

If we use the formula for all of these scorelines up to 10-10 and use a matrix, then something like this will be created. As you can see, the most likely scoreline is 2-0 to Arsenal (15.93% probability), closely followed by 1-0 to Arsenal (15.77% probability).

Away Team

Home Team
Goals 0 1 2 3 4 5 6 7 8 9 10
0 7.808 4.138 1.097 0.194 0.026 0.003 0.000 0.000 0.000 0.000 0.000
1 15.772 8.359 2.215 0.391 0.052 0.005 0.000 0.000 0.000 0.000 0.000
2 15.930 8.443 2.237 0.395 0.052 0.006 0.000 0.000 0.000 0.000 0.000
3 10.726 5.685 1.507 0.266 0.035 0.004 0.000 0.000 0.000 0.000 0.000
4 5.417 2.871 0.761 0.134 0.018 0.002 0.000 0.000 0.000 0.000 0.000
5 2.188 1.160 0.307 0.054 0.007 0.001 0.000 0.000 0.000 0.000 0.000
6 0.737 0.390 0.103 0.018 0.002 0.000 0.000 0.000 0.000 0.000 0.000
7 0.213 0.113 0.030 0.005 0.001 0.000 0.000 0.000 0.000 0.000 0.000
8 0.054 0.028 0.008 0.001 0.000 0.000 0.000 0.000 0.000 0.000 0.000
9 0.012 0.006 0.002 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
10 0.002 0.001 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000

7. Should you enjoy betting on the Correct Score market, then the above table will give you a decent indication of expected scorelines. However, what we can do on top of this is create our own odds for common betting markets using these probabilities. For example:

1. Home Win: If you add up the probability of all results where the home team wins (e.g. 1-0, 2-0, 2-1, 3-2, etc) then you will have the overall likelihood of a Home Win.
2. Under 2.5 Goals: If you add up the probability of all scorelines which have less than 3 goals in the game (i.e. 0-0, 1-1, 1-0, 0-1, 2-0, 0-2), then you have the overall probability of Under 2.5 match goals.
3. Both Teams To Score Yes: If you add up the probability of all scorelines in which both teams find the back of the net (e.g. 1-1, 2-1, 3-1, 2-2, etc), you are left with the probability of Both Teams To Score.

In the search for value, you may also consider looking at other markets which are goal-based. For example, Over / Under 1.5 Goals, Team to Win to Nil, Double Chance (win and draw) or Asian Handicap, although the latter does require a bit more work. However, the below table gives the probability of a few of the most common markets by using the principle of the above bullet points:

Market Probability
Home Win 72.69
Draw 18.69
Away Win 8.62
Over 2.5 Goals 46.89
Under 2.5 Goals 53.11
BTTS Yes 35.68
BTTS No 64.32

The next step is to turn the probability into decimal odds. If you remember a previous article when we discussed probability and odds, you will – or should – remember that the formula to turn decimal odds into probabilities is (1 / Decimal Odds) x 100. To convert from probabilities into decimal odds, just do the reverse, i.e. 100 / probability. The table below shows the associated odds for these probabilities:

Market Probability Odds
Home Win 72.69 1.38
Draw 18.69 5.35
Away Win 8.62 11.60
Over 2.5 Goals 46.89 2.13
Under 2.5 Goals 53.11 1.88
BTTS Yes 35.68 2.80
BTTS No 64.32 1.55

Remember that bookies include an edge – called an overround – when they work out there odds so that they can guarantee profit. It is therefore important to add this margin into your odds to best reflect this overround. The margin you choose is up to you – it could be from 5% up to 20% – but for this example, we will use 7.5%. Simply multiply the true odds by the margin, for example, Odds x 1.075. The table below shows the new odds with the margin included:

Market Probability Odds Odds x 1.075
Home Win 72.69 1.38 1.48
Draw 18.69 5.35 5.75
Away Win 8.62 11.60 12.48
Over 2.5 Goals 46.89 2.13 2.29
Under 2.5 Goals 53.11 1.88 2.02
BTTS Yes 35.68 2.80 3.01
BTTS No 64.32 1.55 1.67