After the initial euphoria died down after Gent became Jupiler Pro League champions for the first time in their history at the end of May, something kept popping up in the aftermath, namely how unlikely the Buffalo's title victory was...
In April I saw odds of 14-1 on Gent winning outright flash up on Unibet. As time went on, I kept asking the questions more: "could they actually do this? is it possible? is this going to happen?!" See the below tweet exchange with Jonas Van De Veire (who works at KAA Gent) from May, which summarises the progression of the odds:
@SatThereThinkin 35/1 at the start of the season.
— Jonas Van De Veire (@Jonasvdv_) May 18, 2015
But were Gent the team that most outperformed expectations?
It is hard to see past Gent winning the JPL as being the biggest overperformance of expectations of the 2014/15 season. However, with the next couple of posts I aim to look into a little bit more detail at the differences between expected and actual outcomes of the past season.
One fairly simple method of comparing the actual (observed) outcome to what is expected, is by using the bookmakers' odds as a proxy for "expectations". I have done this previously, and it naturally assumes that the bookies' are generally accurate with their odds. The methodology is explained at the end of this post.
In short, when I look at the data, Sporting Charleroi is the team that most overperformed expectations over the course of the regular season (the first 30 gameweeks), and Zulte-Waregem is the team that most underperformed expectations. If you look at the table below, you will see Charleroi highlighted in green and Waregem highlighted in red:
Belgian Jupiler Pro League – Regular Season
Expected Position and
Points (Bookies’ odds) vs. Actual Position and Points – Season 2014/15
|
||||||
Team
|
Actual Points
|
Actual Finish
|
Expected Points
|
Expected Position
|
Diff. Between Actual and
Expected Points
|
Diff. Between Expected
and Actual Position
|
Club Brugge
|
61
|
1
|
57.926
|
2
|
3.074
|
1
|
Anderlecht
|
57
|
2
|
58.560
|
1
|
-1.560
|
-1
|
Gent
|
57
|
3
|
50.655
|
4
|
6.345
|
1
|
Standard
|
53
|
4
|
51.418
|
3
|
1.582
|
-1
|
Kortrijk
|
51
|
5
|
41.129
|
8
|
9.871
|
3
|
Charleroi
|
49
|
6
|
38.019
|
10
|
10.981
|
4
|
Genk
|
49
|
7
|
44.350
|
6
|
4.650
|
-1
|
Lokeren
|
42
|
8
|
45.896
|
5
|
-3.896
|
-3
|
Mechelen
|
41
|
9
|
39.681
|
9
|
1.319
|
0
|
Oostende
|
38
|
10
|
36.148
|
11
|
1.852
|
1
|
Westerlo
|
33
|
11
|
33.728
|
12
|
-0.728
|
1
|
Waregem
|
31
|
12
|
41.181
|
7
|
-10.181
|
-5
|
Mouscron-Peruwelz
|
26
|
13
|
33.002
|
13
|
-7.002
|
0
|
Waasland-Beveren
|
26
|
14
|
29.910
|
14
|
-3.910
|
0
|
Cercle Brugge
|
24
|
15
|
28.554
|
15
|
-4.554
|
0
|
Lierse
|
22
|
16
|
28.502
|
16
|
-6.502
|
0
|
--------------------------------------------------------------
Methodology Explained
1) I first calculate the 'Expected Points' per game: using odds from football-data.co.uk, I averaged the odds of eight different bookmakers on each game. I used the average of the odds to convert to 'Expected Points'.
2) Taking the example of the Genk-Anderlecht game in GW 27 (which ended 1-0 Anderlecht), the average of the bookmakers' odds were: 3.3 home win, 3.31 draw and 2.18 away win. I put these all as the denominator under 1 to get a %age chance of the odds.
3) The odds then became 30% Genk win, 30% draw and 46% Anderlecht win = totalling 106% - the 6% being the bookmakers' profit. So, to convert these figures into workable ones, I divided all these odds by 1.06 (or, 106%) to ensure the odds added up to 1.
4) In so doing the odds became 28.5% Genk win, 28.4% draw and 43.1% Anderlecht win.
5) To convert these odds into 'Expected Points' you multiply the odds by the points for winning (3) and points for drawing (1) - e.g. Genk (3*0.285) + 0.284 = 1.1 points; and, Anderlecht (3*0.431) + 0.284 = 1.6 points, ie Anderlecht favourites to win.
6) So, with Anderlecht, there expected points = 1.6 and actual points = 3 (difference being 1.4 points)
7) I then summed up all expected points of the 30 games played and compared them to actual points in the 30 games, ie expected vs actual.