Why price a soccer match yourself?
In order to find a value bet, you need to compare the odds you are betting on with what you believe to be a more accurate reflection of the true probability for an event. If the available odds underestimate the chance of an outcome in an event compared to your estimate, this will provide you with positive expected value.
While this is a simple enough concept to understand, having something to compare the bookmakers’ odds against is where most bettors will fall down. Odds comparison will certainly help you find the best odds to bet with, but creating your own probabilities and comparing them against the available odds is what will help you find the right option to bet on in a given market.
A lot of people fail to recognise how difficult winning in betting actually is, and you’re not going to start finding value bets as soon as you start pricing matches yourself. However, you need to start somewhere and it will certainly help improve your understanding of probability. Once you develop your knowledge, get access to better information and experiment with various inputs and pricing methods, you may begin to find legitimate betting opportunities.
Although I’ll run through an example of how to price a soccer match in this article, it’s important to note that you don’t necessarily have to do the “heavy lifting” of pricing a market yourself. Some people will choose to trust the market, using information provided by an efficient bookmaker like Pinnacle and look for discrepancies with other bookmakers.
It could be that you use Pinnacle’s odds for a game in tennis and scale it up to odds for the full match. Or it could be that you use individual team totals in an NBA to calculate the likelihood of each team outscoring the other (and by how many) to calculate odds for a Money Line or Handicap bet. We can save such examples (and their potential pitfalls) for another article though.
You have to start somewhere
The prospect of doing what a bookmaker does (creating odds for an event) with incomparable resources will likely seem daunting to a lot of bettors. Providing you are willing to put the time in to learn and you’re happy to make mistakes and accept failures (because they will happen), there is something to be gained from pricing markets yourself.
The common perception of a successful sports bettor has changed in recent years. While traditional handicappers who base their calculations off of their own knowledge and experience do still exist, it is now more about individuals or groups who build their own models with large data sets and complex algorithms.
If you’re aim is to get to the level of the professional bettors that many aspire to be like, you need to understand that you have to start somewhere. You don’t just fire up Excel, R or Python, put a load of data in and play around until it throws something useful up. Start with the basics, a simple approach with small amounts of data, and work your way up from there.
An example of how to price a soccer match
In order to help explain why pricing a soccer match is important if you want to bet on it, I’ve used a simple example to show how it could be done. It should be noted that this approach has plenty of flaws (which we’ll get on to later) and, when used by itself, it will not help you find value in soccer betting markets.
It’s not enough to simply say it works or it doesn’t work though. The most important thing is to understand why it works or why it doesn’t work.
I have used a Poisson model to create 1X2 odds for a round of fixtures in the Premier League (I have chosen the first round of fixtures from the 2019/20 season for this example). How Poisson Distribution can be used in betting is explained in more detail in a separate article, but I will also cover the basics here.
Using Infogol’s expected goals data from the previous Premier League season (2018/19), I was able to calculate the “Attack Strength” and “Defence Strength” of each team for playing both at home and away.
This provides us with a relative measure of team ability in terms of scoring and conceding goals by using the ratio of a team’s average and the league average. Using expected goals instead of actual goals will give a more accurate reflection of teams’ performances and go some way to removing the randomness and instances of luck we’d see in a 38-game season.
Home Attack Strength =
Team expected goals per home game / League average expected goals per home game
Home Defence Strength =
Team expected goals against per home game / League average expected goals against per home game
Away Attack Strength =
Team expected goals per away game / League average expected goals per away game
Away Defence Strength =
Team expected goals against per away game / League average expected goals against per away game
Premier League 2019/20 Attack Strength and Defence Strength
Team
|
xGF Home
|
xGA Home
|
xGF Away
|
xGA Away
|
Home AS
|
Home DS
|
Away AS
|
Away DS
|
Manchester City
|
52.6
|
15.6
|
37.9
|
12.9
|
1.679
|
0.619
|
1.505
|
0.412
|
Liverpool
|
43.9
|
15.7
|
34.6
|
18.4
|
1.401
|
0.623
|
1.374
|
0.587
|
Chelsea
|
34.8
|
16.0
|
30.1
|
25.7
|
1.111
|
0.635
|
1.195
|
0.820
|
Tottenham
|
33.3
|
27.2
|
27.7
|
24.7
|
1.063
|
1.080
|
1.100
|
0.788
|
Arsenal
|
35.9
|
26.2
|
27.8
|
32.0
|
1.146
|
1.040
|
1.104
|
1.021
|
Manchester United
|
37.5
|
23.9
|
32.2
|
30.7
|
1.197
|
0.949
|
1.278
|
0.980
|
Wolves
|
34.9
|
21.4
|
23.6
|
25.3
|
1.114
|
0.849
|
0.937
|
0.808
|
Everton
|
33.4
|
23.8
|
24.6
|
27.5
|
1.066
|
0.945
|
0.977
|
0.878
|
Leicester City
|
28.3
|
20.5
|
26.9
|
26.0
|
0.903
|
0.814
|
1.068
|
0.830
|
West Ham United
|
27.6
|
26.4
|
23.2
|
42.1
|
0.881
|
1.048
|
1.076
|
1.344
|
Watford
|
25.2
|
32.1
|
27.1
|
35.9
|
0.804
|
1.274
|
1.076
|
1.146
|
Crystal Palace
|
28.7
|
26.9
|
22.1
|
30.2
|
0.916
|
1.068
|
0.877
|
0.964
|
Newcastle United
|
25.6
|
29.4
|
17.5
|
33.6
|
0.817
|
1.167
|
0.695
|
1.072
|
Bournemouth
|
32.1
|
27.3
|
27.9
|
35.0
|
1.025
|
1.084
|
1.108
|
1.117
|
Burnley
|
28.4
|
30.5
|
21.1
|
38.2
|
0.906
|
1.211
|
0.838
|
1.219
|
Southampton
|
28.3
|
27
|
26.3
|
33.5
|
0.903
|
1.072
|
1.044
|
1.069
|
Brighton
|
22.4
|
26.3
|
18.4
|
39.0
|
0.715
|
1.044
|
0.730
|
1.245
|
Norwich
|
29.1
|
27.4
|
19.4
|
38.4
|
0.929
|
1.088
|
0.770
|
1.226
|
Sheffield United
|
26.8
|
30.5
|
19.2
|
42.6
|
0.855
|
1.211
|
0.762
|
1.360
|
Aston Villa
|
18.0
|
29.8
|
16.2
|
35.4
|
0.575
|
1.183
|
0.643
|
1.130
|
Next, we need to break this down into the specific fixtures that we want to price up. We can then use the home team’s home attack strength and the away team’s away defence strength to calculate how many goals the home team would be expected to score (and reverse this – using home defence strength and away attack strength – to calculate how many goals the away team might score).
This is what the process would look like for the match from Gameweek 1 of the 2018/19 Premier League season between Leicester and Wolves.
Leicester goals =
Leicester Home Attack Strength x Wolves Away Defence Strength x League average expected goals per home game
0.903 x 0.808 x 1.649 = 1.203
Wolves goals =
Wolves Away Attack Strength x Leicester Home Defence Strength x League average expected goals per away game
0.937 x 0.814 x 1.326 = 1.011
This then provides us with the number of goals each team would be expected to score if they were to play each other (1.203 for Leicester and 1.011 for Wolves). However, the game can’t finish 1.203 – 1.011 so we need to find a distribution of probability across a range out outcomes.
We can use the Poisson function in Excel to calculate the probability distribution for the different number of goals that each team might score in a match (I used a range of 0-5 to keep things simple). Using the example above, this is what the distribution will look like.
Leicester vs. Wolves Poisson Distribution
Goals
|
0
|
1
|
2
|
3
|
4
|
5
|
Leicester
|
0.3002
|
0.3612
|
0.2173
|
0.0871
|
0.0262
|
0.0063
|
Wolves
|
0.3639
|
0.3678
|
0.1858
|
0.0626
|
0.0158
|
0.0031
|
In order to calculate the probability of just the home win, draw and away win (1X2), we need to work out the probability for each of the potential outcomes.
Leicester 0 - 0 Wolves =
Probability of Leicester scoring 0 x Probability of Wolves scoring 0
0-0 = 0.3002 x 0.3639 = 0.1092 or 10.92%
We then replicate this for all of the possible permutations of a result where both teams can score between 0 and 5 goals (36 in total – six draws, 15 home wins and 15 away wins). This is what the outcomes for this match would look like.
Leicester vs. Wolves possible scores
Leicester
|
Wolves
|
Probability
|
%
|
0
|
0
|
0.109
|
10.924
|
1
|
1
|
0.133
|
13.285
|
2
|
2
|
0.040
|
4.037
|
3
|
3
|
0.005
|
0.545
|
4
|
4
|
0.000
|
0.041
|
5
|
5
|
0.000
|
0.002
|
Outcome
|
Draw
|
0.288
|
28.835
|
1
|
0
|
0.131
|
13.144
|
2
|
0
|
0.079
|
7.908
|
3
|
0
|
0.032
|
3.170
|
4
|
0
|
0.010
|
0.953
|
5
|
0
|
0.002
|
0.229
|
2
|
1
|
0.080
|
7.992
|
3
|
1
|
0.032
|
3.204
|
4
|
1
|
0.010
|
0.964
|
5
|
1
|
0.002
|
0.232
|
3
|
2
|
0.016
|
1.618
|
4
|
2
|
0.005
|
0.487
|
5
|
2
|
0.001
|
0.117
|
4
|
3
|
0.002
|
0.164
|
5
|
3
|
0.000
|
0.039
|
5
|
4
|
0.000
|
0.010
|
Outcome
|
Leicester Win
|
0.402
|
40.231
|
0
|
1
|
0.110
|
11.041
|
0
|
2
|
0.056
|
5.578
|
0
|
3
|
0.019
|
1.879
|
0
|
4
|
0.005
|
0.474
|
0
|
5
|
0.001
|
0.093
|
1
|
2
|
0.067
|
6.711
|
1
|
3
|
0.023
|
2.261
|
1
|
4
|
0.006
|
0.571
|
1
|
5
|
0.001
|
0.112
|
2
|
3
|
0.014
|
1.360
|
2
|
4
|
0.003
|
0.343
|
2
|
5
|
0.001
|
0.067
|
3
|
4
|
0.001
|
0.138
|
3
|
5
|
0.000
|
0.027
|
4
|
5
|
0.000
|
0.008
|
Outcome
|
Wolves Win
|
0.307
|
30.664
|
This provides us with the following probabilities for each outcome.
Leicester vs. Wolves possible outcomes
Outcome
|
%
|
Leicester Win
|
40.23
|
Draw
|
28.84
|
Wolves Win
|
30.66
|
We can then convert these percentages into odds, or convert the bookmakers’ odds into percentages, to compare the two and try to identify any bets that offer value. Below is an odds comparison of Pinnacle’s opening odds for Gameweek 1 of the 2019/20 Premier League season and the odds produces by this expected goals Poisson model.
xG Poisson vs. Pinnacle odds comparison
Home
|
Away
|
Pinnacle Open Home
|
Pinnacle Open Draw
|
Pinnacle Open Away
|
xG Poisson Home
|
xG Poisson Draw
|
xG Poisson Away
|
Liverpool
|
Norwich
|
1.15
|
9.59
|
18.05
|
1.23
|
7.89
|
16.3
|
West Ham
|
Man City
|
11.68
|
6.53
|
1.26
|
10.5
|
5.34
|
1.39
|
Bournemouth
|
Sheffield United
|
2.04
|
3.57
|
3.9
|
1.58
|
5.13
|
5.81
|
Burnley
|
Southampton
|
2.71
|
3.31
|
2.81
|
2.72
|
4.27
|
2.51
|
Crystal Palace
|
Everton
|
3.21
|
3.37
|
2.39
|
2.8
|
3.86
|
2.61
|
Watford
|
Brighton
|
1.98
|
3.44
|
4.37
|
2.13
|
4.09
|
3.49
|
Tottenham
|
Aston Villa
|
1.3
|
5.84
|
10.96
|
1.63
|
4.64
|
5.85
|
Leicester
|
Wolves
|
2.21
|
3.34
|
3.66
|
2.48
|
3.46
|
3.25
|
Newcastle
|
Arsenal
|
4.58
|
3.93
|
1.81
|
3.13
|
4.09
|
2.38
|
Man United
|
Chelsea
|
2.21
|
3.37
|
3.63
|
2.47
|
4.17
|
2.81
|
Identify your weaknesses and maximise your edge
If this was a real example we were experimenting with, you would then need to take some time to assess how accurate these odds are compared to those provided by the bookmaker. It’s all well and good finding discrepancies, but if the bookmaker is more accurate than you, you aren’t going to win in the long run.
The temptation might be to start placing money on what you believe to be the value bets produced, but even with small stakes this could prove to be a costly endeavour (we’d need a lot of bets to begin to make any meaningful observations). Therefore, back testing is the most efficient approach to see how viable this method is.
Comparing the odds this model would have produced for past events and comparing them against Pinnacle’s closing line will help us see how good this pricing strategy is. It’s not enough to simply say it works or it doesn’t work though. The most important thing is to understand why it works or why it doesn’t work.
There are plenty of reasons why the expected goals Poisson model used above isn’t a good way of pricing a soccer match. Using last season’s data and not using rolling data means it will quickly become outdated. Not accounting for transfers and new managers could skew the measure of team strength and their chance of winning a match. I’ve also used data from relegated teams for the newly promoted teams. These are just a few examples that should be considered.
If, hypothetically speaking, we did uncover some sort of edge with this model. It’s important to understand why. Is it just something that the bookmaker or other bettors haven’t considered? Is it dependant on when you place the bet? Can you improve the quality of the data to magnify the edge? Once we have a legitimate edge and we know how it is created, it is imperative that you manage your bankroll to maximise this edge.
What do you do when you start to win?
It may come as a surprise to some but the hard work isn’t over once you find a successful betting strategy. In fact, for a lot of people, this is when the hard work really begins.Unfortunately, some bookmakers will ban or restrict those that manage to make more accurate predictions than the odds being offered.
This makes it even more important that you maximise your edge while you can and that you work to keep improving your model so you test yourself at bookmakers where you won’t be banned or restricted, no matter how much you win. A bookmaker like Pinnacle.