Elo Reverse Calculator

Input odds below (in decimal):
Home Odds:
Draw Odds:
Away odds:



Elo

Elo is simply a way of rating teams.  The ratings can be used to compare teams and generate probabilities for head to heads.  The probability one team will beat another is just a function of the difference in their rating.

p = 1/(1+10^(-diff/400))

 The tweet further below from ClubElo introduces another parameter r to take account of draws.


Elo: The Hard Way

The process is better described on eloratings.net and clubelo.com.  If you visit these sites you can see it is quite complex.  Basically you initialise all teams to 1000 points for example.  Then you need a history of results and update each teams ratings depending if they win, lose or draw.  There are nuances to worry about, home field advantage, big wins, inter-league adjustments, k-factor weightings, etc.

Elo: The Easy Way

Say someone has already rated the teams, and also they have taken into account more than just the match histories and results.  Perhaps they have amalgamated all relevant information from the weather, to the team line ups, to the team motivation.  This is what betting markets do.  Sharing and collecting all the information into the 1x2 odds.  We can reverse engineer these odds to get the implied team ratings.

Step 1: Remove the margin
There will usually be a margin applied to the betting market odds.  Remove this using the power/log method to give margin free probabilities of win (w), draw (d) and lose (l).

Step 2: Determine the Elo parameters
Below ClubElo answers the reverse question, if we have the parameters p and r, how to determine the win/draw/lose probabilities.  However it is straight forward to rearrange so given we have the win/draw/lose probabilities, we can determine the parameters.


https://twitter.com/clubelo/status/1356660502848503814


Rearranging for d = 2 * (p-w) to write in terms of p gives p = w + d/2.  We know d and w from the markets so this is solved.

And now we know w and p, so we can write the first equation in terms of r to solve for r.

w = p * (r+p-r*p) becomes r = (w - p^2)/(p - p^2)

Step 3: Infer Team Rating
So the Elo equation gives the probability in terms of the difference in ratings (diff). 

p = 1/(1+10^(-diff/400))

So again rearrange, and we've already calculated the p so there is a solution for the ratings difference.

diff = -400 * log10((1-p)/p))

For Elo the ratings, the difference is all that matters, teams rated 2100 and 2000 will generate the same probabilities as teams rated 1100 and 1000.  This makes sense, in a one off match you can only assess the strengths of each team relative to eachother, not their absolute strength.  So, for this calculater I centre the ratings around 1000.

If the match is not at a neutral venue then you should take account of Home Field Advantage.  ClubElo rating use something like 50 points, Wolrd Football Elo use 100 points, so the raw home team rating can be determined by subtracting something from the results displayed.  What exactly you will need to determine yourself based on the competitions.

Is this useful

It is a short cut to get to teams ratings without going through a long history of results and recalculations.  You can get a pretty good set of ratings for a set of teams based on just a few weeks of odds.

It can also be more accurate, especially for International Football.  The scarcity of matches and head to heads will always mean that the betting markets will be more accurate than the World Football Elo Ratings in my opinion.

You won't beat the main market closing lines, after all those are our source of truth we are trying to emulate.  It may be useful for early lines, or for feeding into simulations of outright markets.

I have created another calculator with a simalar idea for those that are interested, here.  This time reverse engineering the market odds to get the goal expectancy of each team and use that to derive a host of markets.


Comments

Popular posts from this blog

Bet Unfair

Deconstructing WDL and O/U 2.5 goals odds.

Chrome Extension 1000