Here, I am going to make an alternative world ranking system for snooker. Currently, the world snooker rankings are based on a two-year rolling sum of prize money won by players in ranking tournaments. However, this may be a bit distorted for example because:
To create this ranking system I am going to use match, event and player data sourced from the excellent snooker.org via their API. I have obtained historical data back to the beginning of the 2013 season and have implemented a script to add the latest matches once per day from the Snooker.org API. As an example of the match data the table below has the last ten matches included in the ranking system.
Event | Datetime | Season | Player1 Name | Player1 Score | Player2 Score | Player2 Name |
Xi'an Grand Prix Qualifiers | July 26, 2024, 9 a.m. | 2024 | Chris Wakelin | 5 | 4 | Rory Thor |
Xi'an Grand Prix Qualifiers | July 26, 2024, 9 a.m. | 2024 | Elliot Slessor | 5 | 0 | Manasawin Phetmalaikul |
Xi'an Grand Prix Qualifiers | July 26, 2024, 1:35 p.m. | 2024 | Pang Junxu | 5 | 2 | Michael Holt |
Xi'an Grand Prix Qualifiers | July 26, 2024, 1:35 p.m. | 2024 | Jak Jones | 5 | 4 | Robbie McGuigan |
Xi'an Grand Prix Qualifiers | July 26, 2024, 1:35 p.m. | 2024 | Joe O'Connor | 5 | 3 | Duane Jones |
Xi'an Grand Prix Qualifiers | July 26, 2024, 1:35 p.m. | 2024 | Tom Ford | 5 | 3 | Stan Moody |
Xi'an Grand Prix Qualifiers | July 26, 2024, 1:45 p.m. | 2024 | Sanderson Lam | 2 | 5 | Zak Surety |
Xi'an Grand Prix Qualifiers | July 26, 2024, 5:55 p.m. | 2024 | Barry Hawkins | 5 | 1 | Kreishh Gurbaxani |
Xi'an Grand Prix Qualifiers | July 26, 2024, 5:55 p.m. | 2024 | Mark Williams | 5 | 0 | Liam Graham |
Using the full database of snooker matches I can calculate an alternative player rating system. This rating system works by initialising all players ratings at a chosen level before their first match and then adjusting the ratings after each match based on each of the players ratings before the match and the outcome of the match. The current ratings are given in the table below:
Ranking | Player | Rating |
1 | Judd Trump | 1685.96 |
2 | Ronnie O'Sullivan | 1596.97 |
3 | Mark Allen | 1577.06 |
4 | John Higgins | 1561.02 |
5 | Mark Williams | 1544.37 |
6 | Kyren Wilson | 1539.26 |
7 | Ali Carter | 1534.04 |
8 | Mark Selby | 1514.48 |
9 | Ding Junhui | 1507.80 |
10 | Hossein Vafaei | 1506.98 |
11 | Shaun Murphy | 1502.87 |
12 | Neil Robertson | 1488.27 |
13 | Barry Hawkins | 1486.92 |
14 | Luca Brecel | 1484.54 |
15 | Si Jiahui | 1475.90 |
16 | Gary Wilson | 1471.43 |
17 | Jack Lisowski | 1467.60 |
18 | Stuart Bingham | 1465.89 |
19 | Jak Jones | 1462.23 |
20 | David Gilbert | 1459.54 |
21 | Zhang Anda | 1453.35 |
22 | Anthony McGill | 1446.28 |
23 | Pang Junxu | 1445.03 |
24 | Joe O'Connor | 1444.15 |
25 | Ryan Day | 1436.85 |
26 | Zhou Yuelong | 1436.38 |
27 | Matthew Selt | 1429.12 |
28 | Lyu Haotian | 1427.77 |
29 | Thepchaiya Un-Nooh | 1427.69 |
30 | Yuan Sijun | 1421.67 |
31 | Stephen Maguire | 1420.66 |
32 | Cao Yupeng | 1420.40 |
33 | Chris Wakelin | 1417.22 |
34 | Tom Ford | 1416.13 |
35 | Daniel Wells | 1415.41 |
36 | Robbie Williams | 1410.08 |
37 | Scott Donaldson | 1410.07 |
38 | Ricky Walden | 1407.74 |
39 | Martin O'Donnell | 1406.23 |
40 | Xiao Guodong | 1405.10 |
41 | Graeme Dott | 1404.77 |
42 | Noppon Saengkham | 1399.43 |
43 | Ben Woollaston | 1391.63 |
44 | Fan Zhengyi | 1386.45 |
45 | Jackson Page | 1386.31 |
46 | Robert Milkins | 1384.70 |
47 | Elliot Slessor | 1384.06 |
48 | Sam Craigie | 1383.42 |
49 | Marco Fu | 1374.01 |
50 | Jamie Jones | 1371.84 |
51 | Jordan Brown | 1365.35 |
52 | Sunny Akani | 1359.47 |
53 | Mark Davis | 1359.37 |
54 | Martin Gould | 1359.24 |
55 | Jimmy White | 1358.72 |
56 | Matthew Stevens | 1358.58 |
57 | Jimmy Robertson | 1356.76 |
58 | Tian Pengfei | 1355.55 |
59 | Dominic Dale | 1352.32 |
60 | Michael White | 1350.98 |
61 | David Lilley | 1345.96 |
62 | Wu Yize | 1345.39 |
63 | Jamie Clarke | 1341.81 |
64 | He Guoqiang | 1339.85 |
65 | Xu Si | 1337.60 |
66 | Joe Perry | 1328.48 |
67 | Anthony Hamilton | 1325.85 |
68 | Oliver Lines | 1321.14 |
69 | Aaron Hill | 1320.61 |
70 | Michael Holt | 1318.94 |
71 | Long Zehuang | 1303.32 |
72 | Liu Hongyu | 1302.43 |
73 | Ashley Carty | 1294.28 |
74 | Stuart Carrington | 1292.99 |
75 | Ian Burns | 1290.48 |
76 | Ben Mertens | 1287.58 |
77 | Julien Leclercq | 1287.16 |
78 | Alexander Ursenbacher | 1282.21 |
79 | Andrew Higginson | 1278.29 |
80 | David Grace | 1275.17 |
81 | Louis Heathcote | 1273.99 |
82 | Liam Davies | 1268.49 |
83 | Zak Surety | 1267.00 |
84 | Cheung Ka Wai | 1265.65 |
85 | Ishpreet Chadha | 1264.69 |
86 | Xing Zihao | 1263.05 |
87 | Artemijs Zizins | 1259.88 |
88 | Ma Hailong | 1257.51 |
89 | Mitchell Mann | 1255.71 |
90 | Alfie Burden | 1253.58 |
91 | Antoni Kowalski | 1253.51 |
92 | Sanderson Lam | 1252.39 |
93 | Lim Kok Leong | 1250.00 |
94 | Haris Tahir | 1250.00 |
95 | Jonas Luz | 1250.00 |
96 | Jiang Jun | 1248.55 |
97 | Stan Moody | 1243.83 |
98 | Ross Muir | 1239.86 |
99 | Mohammed Shehab | 1236.31 |
100 | Gong Chenzhi | 1233.70 |
101 | Hammad Miah | 1233.10 |
102 | Bulcsu Revesz | 1230.13 |
103 | Amir Sarkhosh | 1229.76 |
104 | Liam Pullen | 1229.55 |
105 | Kreishh Gurbaxani | 1228.82 |
106 | Bai Yulu | 1224.89 |
107 | Allan Taylor | 1219.03 |
108 | Huang Jiahao | 1215.95 |
109 | Lei Peifan | 1205.79 |
110 | Duane Jones | 1201.71 |
111 | Mostafa Dorgham | 1201.05 |
112 | Robbie McGuigan | 1195.73 |
113 | Chris Totten | 1185.68 |
114 | Haydon Pinhey | 1172.41 |
115 | Manasawin Phetmalaikul | 1168.02 |
116 | Farakh Ajaib | 1166.95 |
117 | Andrew Pagett | 1160.99 |
118 | Wang Yuchen | 1158.84 |
119 | Dean Young | 1156.81 |
120 | Baipat Siripaporn | 1155.35 |
121 | Liam Graham | 1148.63 |
122 | Ahmed Elsayed | 1148.54 |
123 | Rory Thor | 1127.51 |
124 | Mink Nutcharut | 1096.49 |
125 | Reanne Evans | 1079.56 |
At the moment the rating system is quite simple and not optimised but I intend to do some work to calibrate the rating system to maximise some chosen evaluation metric when time allows.