Levels are calculated for every player after every match.
In singles we start with both players' levels whereas in doubles we combine both partners' levels together to form team levels and then we can apply an extended singles algorithm to the teams.
Fundamentally we look at the result and work back to calculate the relative 'how well they played' ratio between the two players/teams for that result. We then calculate the comparative level ratio of the players/teams before the match and compare the two ratios to see if they played better or worse than expected.
If they played better than expected, they will go up, if worse than expected they will go down. It's not based on whether they won or lost - if you played better than expected, even though you lost, you will still go up. And for the same reason, you can still win and go down if your win was not as comprehensive as it should have been.
How much you go up and down is based on damping which is based on quite a few factors.
In a nutshell, the algorithm uses:
- Maths - is at the heart of the algorithm and is used to determine what player levels should be if there was no damping or behavioural modelling. I.e. if your level is 20% higher than your opponent(s) then you'd be expected to win 20% more of the rallies. It's straightforward for squash (PAR - point a rally) as, for example, if your level is twice that of your opponent then you'd be expected to win your games 11-5 or so. For tennis scoring we use the games score in a set and a 2:1 ratio there will give you a game score of around 6-1. We use whatever we can to work an accurate 'played at' ratio - points and games for squash, games and sets for Padel/tennis. The overall goal is that if you play twice as well as your opponent then your level will be double theirs. This works all the way up from beginner (<50) to top pro (>50,000).
- Weighting- the more important the match (e.g. a tournament) the greater the weighting. This allows you to play a box match without having too much impact on your league or tournament standings.
- Damping- there is a reasonable amount of damping dialled into each match trying to get the balance right between wild swings and slow progress. The algorithm does its best to reward every player for a good result and, as a consequence, an appropriate level reduction if the result isn't so good. The intention is that a player's level is a reasonable assessment of their current playing level within a match or two. The maths determines what level you should be, the damping determines how long it takes to get there. As we are all human and vary quite a bit from match to match, we need some damping!
- Behavioural modelling- as it turns out, not everyone puts 100% effort in every match and that’s down to behaviour. There are many other cases too where player behaviour defies the maths and, based on the analysis of millions of results on the system, we’ve built an extensive behavioural model that allows us to predict and make use of these behaviours. See the calibration FAQ for more detail on what behaviours we model.
At a very high level, it's quite straightforward as there's a direct correlation between the ratio of the player levels to the expected points scores. For PAR You can do it in your head! E.g. 20% better - 11-9, 30% better - 11-8, 50% better - 11-7 and so on. It's not quite so straightforward for tennis scoring but, either way, if you play better than expected you'll go up a bit or, if worse, you'll go down a bit. That's it, really! The complexity is over how much that 'bit' is but, fundamentally, your level will adjust so that your level ratios match your results ratios - on average.
We can work with game (or set) scores only, making assumptions around the average 3-0 or 2-0 result (based on our analysis of real match results) but we can only use averages and have to apply a lot more damping so it takes quite a few results for the levels to become accurate. Not all 3-0 results are the same, obviously.
Note that in the match review page, you can scroll down and click on 'View full explanation' and it shows you the algorithm output in verbose mode for that match so you can see exactly why your level changed by the amount it did.