Implementing the Poisson Equation for Sports Betting

How to calculate your own odds using Poisson

I remember a few years ago when I first encountered the equation for the Poisson Distribution in one of my classes. It was my Physics 151 class, statistical physics I. Heck, it was bloody!

How does the Poisson Distribution look like? It looks like this:

P(x) = e^(-u)*(u^x / x!)

Where P is the probability, u is the average occurrence of the event and x is the number of events happening (which is never negative). If you think this equation is complicated, its actually one of the simplest distribution. It was derived from a much much complicated equation called the Binomial distribution. I remember doing the bloody derivations, so just better thank Simeon Denis Poisson that he created a much concise, elegant equation.

Back then, I never thought that I will use these distributions in a practical matter (we were using it to find probabilities for ideas gases—I can’t even understand what it really meant!). Oh well, it seems that the sleepless nights doing my problem sets for that class has a purpose and I can finally use it now.

Calculating the football odds using the Poisson Distribution

The only thing needed for you to calculate the probability of an event happening x times is to find the average occurrence of that event. Seems easy right? Let’s say that you think that on average, a team has 1.5 goals per game. You can already use the Poisson Distribution to determine the probability of them having 1 goal in a game. In the equation above just use u=1.5 (the average) and x=1. Check the probability of having x goals:

It tells us that the probability of having 1 goal is 33.47%, which is the highest. Of course as it deviates from the mean, the probability lowers. From our computation, the probability of having 7 goals is 0.08%.

I just used the POISSON()function in OpenOffice so the computation is really not that complicated, you won’t be needing the exponentials and the factorials. However, getting the correct value for the average goal u is crucial, more complicated one!

Calculating the average goal u

One way to compute the average goal is by using the goal statistics from the league’s previous season [1]. This can be done in three steps:

  1. Determine the average number of home and away goals of the whole league.
  2. Determine the Attack and Defense Strength of each team, from the stats of each team.
  3. Depending if they are playing away or home, multiply the Defense Strength, Attack Strength and the league’s average goal.

For this article, we will determine the average goal for the 26-Apr-14 game of the Premier League, Southhampton vs Everton game. Let us determine the average goal step-by-step.

1. Determine the average number of home and away goals of the whole league.

In the 2012-2013 season, there was 592 home goals and 471 away goals. This is in the span of 38 games (19 away, 19 home) with 20 teams. To determine the League’s average home and away goals (ALG), we use this equation:



From this, ALG HOME = 592/20/19 = 1.558 and ALG AWAY= 471/20/19 = 1.239.

2. Determine the Attack and Defense Strength of each team, from the stats of each team.

Since Southhampton will be playing home, we check their home statistics (This is every important! I was confused with this one for a while.). From, they have 26 goals scored while 24 was conceded from home. We calculate the Attack and Defense strength of Southhampton from home using this formula:



Everton will be playing away, so obviously we use their away statistics. Again from, we know that playing away they have created 22 goals while conceded 23. Conversely, the Attack and Defense strength can be calculated as:



Using these equations, we have calculated the attack and defense strengths of Southhampton (Home) and Everton (Away). Here is the tally:

This means that Southhampton has a high defense strength compared to the average team playing home by 1.91% while on the attack, they are 12.16% lower. Everton on the other hand are both below average.

3. Depending if they are playing away or home, multiply the Defense Strength, Attack Strength and the league’s average goal.

Lastly, we determine the average goal of the teams. To get the average goal for each team, we use this formula:

Team Average Goal = Team Attack Strength * Opponent’s Defense Strength * ALG

For Southhampton, the attack strength is 87.84% its opponent’s defense strength is 77.70% while the average number of goals playing from home is 1.558. For this particular game, Southhampton is predicted to have 1.063 goals.

Same calculation follow for Everton with 93.42% attack strength, its opponent with 101.91% defense strength and with the average number of goals playing away by 1.239. For this game, Everton is predicted to have 1.180 goals.

Poisson Distribution given the average goal

The calculation for the average goal is the crucial one. Since we are already finished with that, we can now use the Poisson distribution! Using the equation presented, we determine the probability of 0,1,2…6 goals.

The most probable thing that would happen is that they will score at least one goal each (34.5% and 36.7%). So how can this be useful in predicting odds? Let’s say for example that you are betting on the 1×2 market, what you can do is to check all the goal combinations. So, a 0-0 score has a probability of happening of 10.61% (34.5% x 30.7%). We can determine the 1×2 odds by checking all the possible score combinations:

I have just considered instances up to 3 goals that is why the total percentage is only 88.55%, not 100%. It will be too many to calculate if you will consider up to say, 6 goals. Fortunately there is an online calculator [2] to determine the 1×2 odds using the average goals for each team so we won’t have to do it the hard way.

Checking our prediction

From the online 1×2 odds calculator, we can determine the 1×2 odds from our predictions. The true odds (without profit margin) is 32.7% – 28.7% – 38.6%. Now, lets put it to the test. Is our calculation correct? I have checked the odds of the game from SBObet. Here is the screenshot of the game odds:

Since this has a profit margin of 7.23%, we need to normalize it. We take the inverse of these odds and then divide by 107.23% so that we can see the true odds. Here are the results:

Our predictions are almost the same, with only 0.1% discrepancy! Translating the probability above, we get this:

Its almost the same! We probably by a little bit, may have cracked the code on how SBObet creates its odds! Our Poisson calculation is working!

Use of Poisson in sports betting and its limitations

From our calculations, it can be seen that social, environment and other factors are not accounted for. Maybe a new player will be introduced. Or there is a hatred between players. As a bettor, you can account for other factors the system cannot. As we have seen the calculations, only previous records are accounted for (although some bookmakers may take these into account).

Poisson distribution is a powerful tool in sports betting especially if combined with other sports betting concepts such as the Expected Value. Good thing I was able to use this equation not just for computing quantum gases which I have no idea on its significance—but for a more practical one.


[1] BetExplorer.

[2] Goal calculator.