Snooker through the Ages – Introduction

I have developed a method of ranking snooker players, which I will attempt to explain here. I will then write a series of posts which cover the long history of snooker, ranking players each season and comparing players over time.

No method is perfect, and my method isn’t either. Nevertheless, the results do seem to make sense, and I hope it is as interesting to read about as it was to develop.

The starting point is the basis of most rating systems, which is that every player has a score denoting their skill level. The difference in scores between 2 players can be converted into a chance of winning a given match. I have used the same scale as used by the Elo system, where a player with a 200 point advantage should win around 75% of their frames, and a player with a 400 point advantage should win around 90%.

For the purposes of this exercise, I assume that every player has a fixed rating for any given season, which does not change during the year.

The method I have used is as follows:

Let’s take a best of 19 match between 2 players. We don’t know anything about their abilities yet, so let’s assume they both have a rating of 1000.

If Player 1 wins the match 10-4, he has won 71% of the frames played. Given the scale I have used, we would expect a player to win 71% of frames against a player with 159 fewer points.

We can therefore approximate the ratings of the 2 players, by placing them 159 points apart, with the midpoint being the average of their previously estimated scores (1000).

That gives us estimated ratings of Player 1 (1079.50) and Player 2 (920.50).

As the lengths of snooker matches vary, I give these estimated ratings a weighting based on the length of the match, with best-of-19 or above having a weighting of 1, best of 3 being 3/19ths, best of 5 being 5/19ths, etc.

If this calculation is done for every match in a season, and the weighted average is taken for each player, we have an estimated rating for each player.

Of course, these ratings are not great. Because we started assuming every player had a rating of 1000, the initial output is better than nothing, but fairly naïve as it doesn’t reward wins over good opponents or punish losses to weaker players.

Thankfully, we can repeat the process, but instead of using 1000 as the inputs, we use the ratings we have just calculated. This then becomes an iterative process, with the output being fed back in over and over again until the ratings converge on a settled result.

We can see that the estimates are improving by calculating the difference between the ratings and the estimated ratings for each match, taking a weighted average, and seeing this reduce with each iteration of the system. Eventually, the error stops reducing. At this point, the error has been minimised, and we have our final ratings for each player in that season.

In themselves, these ratings are only useful in a relative sense, in that the differences between players tell us something, but a rating of 1300 doesn’t really mean anything.

Ideally, we will have a standard against which all ratings can be judged. In my method, I have moved all the ratings in the 1980-81 season, so that the average of the top 16 players is 1000.

In all other seasons, I have first calculated the difference between all the players, and then placed these on the scale in such a way that the differences between the ratings of established players in successive seasons is minimised. This allows all ratings in all years to be seen on the same scale.

In my next post, I will review the 1980-81 snooker season, and calculate the ratings for that year.

UPDATE:

Having reviewed the rankings produced by the above method, I have made 2 changes.

Firstly, the weighting for the estimated ratings now include a preference for players with more matches played, so it is not as easy to get a high rating by beating players with few matches.

Secondly, snooker players play to win matches, not just to maximise frames won. To account for this, if a player wins 60% of his frames, I will give a score of 80% (The average of 100% for a win, and 60% for the frames won). If a player wins 20% of his frames, I will give him a score of 10% (The average of 0% for a loss, and 20% for the frames won).

I find this produces ratings which seem better than the initial version.

Leave a comment