Jolly Odds Logo

Compiling Football Odds

Compiling Football odds with MathsFootball; the world’s favourite sport. As kids we all wanted to be the next superstar, as young adults we all cheered on our teams in the hope of glory. And now, as grown men, we want to win money punting on the beautiful game. But for the same reason many of us didn’t make it as a professional footballer, many of us have no chance in making money from sports betting. It takes dedication and a good skill set. One such skill is the ability to compile football odds.

So where does one start odds compiling? There are so many different markets and stats available. Unfortunately there is no magic formula for this, deriving perfect odds is the Holy Grail and no one has, or is likely to, come up with the perfect system. But many people have come up with a system that is better than that of the bookies or fellow exchange punters. And this is enough to constantly turn a profit.

Starting you odds compiling journey

Throughout the years there have been many methods used to compile football odds, the most popular amongst them being Power Ratings, Dyads and Triads and the Elo system. But none get as consistently good results as that of goal expectancy and team supremacy. And it might surprise you to know that with these two values you can compile odds for the vast majority of markets you see bookmakers offer today.

Again, and I don’t mean to disappoint you, this isn’t the Holy Grail. Although we have now narrowed down what we need to two parameters there are just far too many variables to take into account.

These are just some of the most obvious ones, and ones you could factor into a model. But there are ones you’d never know about. How bad is a starters knock from the previous game, or did he have a skin full of beer the night before? These sorts of things can never be factored into your model.

I’ll show you the basics of deriving goal expectancy and team supremacy but how far you want to go with it is entirely up you. I’d recommend specialising your tweaks to try and take advantage of one area, as it will be far too hard to make a one size fits all formula. Maybe look for value in games with terrible weather conditions or matches after a round of European fixture, the options are endless. The more specialised your formula the more value you are likely to find once the conditions are met.

Calculating Goal Expectancy and Team Supremacy

For the purpose of this article I will concentrate on the English Premier League. It is probably the most efficient league in terms of having the correct starting odds, the sheer weight of money will move opening odds to their correct prices, eliminating any errors that might crop up in a bookies algorithm. I will do it with a whole round of games but keep the details down to just the one game.

As I write this it is the Monday before the 27th round of Prem fixtures, this round consists of 8 games, as it is also the weekend of the Carling Cup final between Tottenham and Chelsea. The screen shot below gives the current best odds for all the games – taken from

Premier League Betting Odds

So let’s start with the first game, West Ham v Crystal Palace. I have an excel spreadsheet all set up to automate all you’re about to see as the maths once all tweaks have been added can get very tiresome. I’d recommend if you are serious about odds compiling you learn at least the basics of excel. In my spreadsheet I have a current league table, the image below shows the league table prior to this round of games (taken from

Goal Expectancy

Now with this data we will calculate the goal expectancy and team supremacy, it’s best to say at this point that you may come across methods using home and away goal expectancy instead. Basically these are the same thing. Total goal expectancy is just the addition of home and away expectancies, and team supremacy is the subtraction of one from the other.

Firstly I start with having an average of goals each team has scored and conceded over the current season. As you learn what is the best time frame to consider relevant for current matches I’d always recommend using more data than less. The best model I’ve seen weights goal averages over both a longish period and of current form. But to keep this model simple we will just consider the average goals over the current season. You do this by dividing the goals for and against by the number of games played. For the game in question that is 1.461 and 1.153 for West Ham and for Crystal Palace it’s 1.077 and 1.423.

Remember there are endless ways to get the total expected goals and team supremacy’s but I will be just showing you a quick and easy method. This will give you pretty good estimates for any league but you should do your research and make slight changes based on circumstances. So to get the values we are looking for let’s first add the goals scored average from one team to the goals against average for the other team, and then divide by 2

(Goals For West Ham average + Crystal Place Against average) / 2 = 1.442
(Goals For Crystal Palace average + West Ham Against average) / 2 = 1.115

Now for total goals add these two numbers together. For supremacy it is a little trickier, you must subtract one from the other, in this case the second number from the first. But as this isn’t a game at a neutral venue you must also add a home team advantage. For the Premier league this advantage is about 0.4 of a goal. So Total Goals equals 2.557 and supremacy equals (1.442 – 1.115 + 0.4) = 0.438

Now we have these two number the real fun begins. This isn’t for the faint hearted, and is the reason you won’t find many punters taking on the challenge of compiling their own football odds. There is a much easier method to compiling match result odds that will be covered at the end of this article but it will not give you the same flexibility to customise the maths to fit your needs and generally should only be used to quickly gauge the approximate odds for a match.

Earlier I recommended that for those of you that are serious about odds compiling you should learn how to use excel. Now you are going to see why. To convert expectancy and supremacy into odds you must first compile a chart of potential scores. And to do this we use what is called in maths, bivariate poisson distribution.

This is maths that is far beyond the scope of this article, you can however find lots of articles online on it. But doing this by hand for every game you wish to compile odds for will take forever and kill your motivation for learning this skill, and no doubt cost you money in the long run. So having a calculator or spreadsheet is pretty essential.

The rest of the article gets pretty hard going from here so make sure you have your thinking cap on for this, if not bookmark for a later read. First I calculate the home and away team goal expectancies form the total goals and team supremacy. This is done for the home team by dividing total goal and supremacy by two and then adding them together. For the away team we just subtract the home expectancy from the total goals.

Then I plug this data into the excel spreadsheet that has the bivariate poisson distribution function set up for each of the possible score line (excel doesn’t have this as a standard function so you will need to code this yourself). The example in the image below has all the way up to 10 goals. I have taken the screen shot so you can see how the bivariate poisson function works.

Correct Score Chart

If you don’t wish to learn how to program this in excel, use the social share below to download our copy of the file.

Download football odds compiling file

As you can see, the poisson function has returned the percentage chance for each of the possible score lines. Now to get the match result all that needs to be done is an addition of all the applicable percentages. So for the draw, add up all the draw percentage. And for home and away win, add up the percentages that give that result. Doing this we end up with.

Home 47.3% Draw 25.9% Away 26.8%

Converting these percentages into odds gives us (you can learn how to convert percentage to odds in our implied probability post).

Home 2.11 Draw 3.86 Away 3.73

Note that these are the 100% book odds, which no bookie will be offering. Now compare these odds to that of the bookies, from the odds checker screen shot above, you see this method gives pretty good estimates. And that’s without taking anything like current form or injury news into account. You’re not going to find anyone willing to give away exactly how they derive their goal expectancies as this will give away an edge they might have found and potentially cost them money. But this is more than enough to get you started. The image below shows the bookies odds compared to the odds we just compiled.

Compiled Football Odds
As just said this system give pretty good estimates, not perfect, but good enough. You will have to work on altering the method of getting the goal expectancies in order to perfect this. Once this has been achieved the bivariate poisson distribution function works perfectly for delivering a correct score chart, so this will not need to be messed with. Only the way you come up with goal expectancy and supremacy’s need your attention. And as already stated you should just looks to perfect it for one aspect of the beautiful game as you will never perfect it for every game under all different circumstances. The Table below shows what odds this method has arrived at for the whole round of games.

Home Draw Away
Burnley 2.65 Draw 3.75 Swansea 2.82
Manchester United 1.64 Draw 4.31 Sunderland 6.58
Newcastle United 1.92 Draw 3.8 Aston Villa 4.61
Stoke City 2.04 Draw 3.75 Hull City 4.1
West Brom 3.14 Draw 3.46 Southampton 2.54
Liverpool 2.7 Draw 3.98 Manchester City 2.64
Arsenal 1.74 Draw 4.42 Everton 5.03

Simple Match result odds compiling

As promised I’ll now demonstrate a less maths intense method for compiling footy odds. This can be done by even the most mathematically challenged of people, but if you are one of these people I’d suggest professional sport betting probably isn’t the game for you. I must also say this isn’t a method I use as it doesn’t have the flexibility I was looking for, it also comes with constants that I have no idea how they were derived and has to be taken as a given.

So what is the information we need for this maths light odds compiling. You need home and away goal differences – in the articles I have read, goal difference over a 6 game periods is said to give the best results. You need the constants I just mentioned; these are called noise reduction factors, you have one for home teams and two for the away team. These values are 0.0156, 0.0003 and 0.0127 respectively. And the last values you need are the leagues average home and away win percentages. These two values vary massively if based on a small data set, so best to take as big a number of games as you deem relevant to the league you plan to compile odds for.

Now we know all the information that is needed let’s look at an example, and in keeping with the rest of this article, the game we will look at is West Ham vs Crystal Palace. This is a Premier League game so the first thing we need is the home and away average wins for the league. I’m going to use a data set that includes all last season’s games and this season’s games to date. This covers a total of 640 games.

Home wins = 288 = 0.45 or 45%
Draws = 152 = 0.2375 or 23.75%
Away wins = 200 = 0.3125 or 31.25%

We now have everything we need accept the home and away goal differences over the last 6 games. This is rather simple to find on any results website, and here is probably the best time to say this is the bit that lets this system down. For one it only results in whole goal advantages, and two it doesn’t take into account any of the teams’ opponents. The current game we are looking at perfectly highlights this. Crystal Palace played only two teams in the top half of the table and two of the other games were against teams in the relegation zone; whereas West Ham played three of the top six teams and only one team in the bottom half of the table.

With this information you don’t even have to calculate the odds to know that a system that doesn’t compensate for the quality of the opposition will lead to the team with the harder opponents being given slightly bigger odds than they should.

Anyway, I digress. Back to the matter at hand, the team goal differences. In this example both teams have a plus one goal difference over there last six games. Now we have all the information that is required let’s look at the formula’s and plug in the data.

If, League home win percentage = H
League away win percentage = A
Home noise reduction = N1
Away noise reductions = N2 and N3
Home goal difference = HG
Away goal difference = AG

Home odds = N1 x (HG – AG) + H
Away odds = ((N2 x (HG – AG))^2) – (N3 x (HG – AG) + A)
Draw odds = 1 – Home odds – Away odds

All three of these formulas give there odds in the form of implied probabilities, you will then have to convert them to the odds format of your choice. Adding all the data we calculated to the formulas we get our three set of odds for match result.

West Ham 2.22, Draw 4.21, Crystal Palace 3.2

And as predicted this formula has resulted in West Ham having slightly bigger odds than they should be. But yet at the same time this example has defiantly demonstrated that this system has some legs in it so long as you can adjust the method of determining the team’s goal differences.