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 |
Welsh Open | Feb. 13, 2025, 7:10 p.m. | 2024 | Ryan Day | 1 | 4 | Ali Carter |
Welsh Open | Feb. 13, 2025, 8:57 p.m. | 2024 | Pang Junxu | 1 | 4 | Luca Brecel |
Welsh Open | Feb. 13, 2025, 9:27 p.m. | 2024 | Matthew Selt | 2 | 4 | Jack Lisowski |
Welsh Open | Feb. 14, 2025, noon | 2024 | Mark Selby | 5 | 4 | John Higgins |
Welsh Open | Feb. 14, 2025, 4:34 p.m. | 2024 | Jackson Page | 2 | 5 | Luca Brecel |
Welsh Open | Feb. 14, 2025, 7:06 p.m. | 2024 | Jack Lisowski | 3 | 5 | Stephen Maguire |
Welsh Open | Feb. 14, 2025, 7:25 p.m. | 2024 | Ali Carter | 5 | 3 | Joe O'Connor |
Welsh Open | Feb. 15, 2025, 1:16 p.m. | 2024 | Luca Brecel | 3 | 6 | Mark Selby |
Welsh Open | Feb. 15, 2025, 7:08 p.m. | 2024 | Stephen Maguire | 6 | 4 | Ali Carter |
Welsh Open | Feb. 16, 2025, 1:07 p.m. | 2024 | Mark Selby | 9 | 6 | Stephen Maguire |
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 | 1696.41 |
2 | Kyren Wilson | 1620.11 |
3 | Mark Selby | 1603.70 |
4 | Mark Allen | 1583.98 |
5 | John Higgins | 1550.71 |
6 | Barry Hawkins | 1539.23 |
7 | Xiao Guodong | 1535.68 |
8 | Ronnie O'Sullivan | 1534.25 |
9 | Ding Junhui | 1523.10 |
10 | Shaun Murphy | 1519.38 |
11 | Mark Williams | 1515.89 |
12 | Neil Robertson | 1503.77 |
13 | Luca Brecel | 1493.21 |
14 | Hossein Vafaei | 1481.88 |
15 | Si Jiahui | 1475.88 |
16 | Wu Yize | 1472.18 |
17 | Jak Jones | 1459.61 |
18 | Ali Carter | 1459.04 |
19 | David Gilbert | 1454.86 |
20 | Zhang Anda | 1453.63 |
21 | Joe O'Connor | 1448.43 |
22 | Jack Lisowski | 1447.71 |
23 | Matthew Selt | 1446.38 |
24 | Pang Junxu | 1446.38 |
25 | Yuan Sijun | 1444.79 |
26 | Chris Wakelin | 1439.66 |
27 | Stuart Bingham | 1434.19 |
28 | Stephen Maguire | 1433.61 |
29 | Ricky Walden | 1432.58 |
30 | Elliot Slessor | 1430.75 |
31 | Anthony McGill | 1426.09 |
32 | Cao Yupeng | 1420.40 |
33 | Ryan Day | 1414.47 |
34 | Lyu Haotian | 1414.11 |
35 | Thepchaiya Un-Nooh | 1411.40 |
36 | Jackson Page | 1406.55 |
37 | Noppon Saengkham | 1404.55 |
38 | Graeme Dott | 1397.06 |
39 | Martin O'Donnell | 1396.54 |
40 | Zhou Yuelong | 1396.07 |
41 | Ben Woollaston | 1395.36 |
42 | Tom Ford | 1388.35 |
43 | Sam Craigie | 1383.42 |
44 | Xu Si | 1376.88 |
45 | Fan Zhengyi | 1376.08 |
46 | Robert Milkins | 1374.13 |
47 | Gary Wilson | 1374.03 |
48 | Robbie Williams | 1370.94 |
49 | Scott Donaldson | 1367.76 |
50 | Marco Fu | 1367.31 |
51 | Daniel Wells | 1367.13 |
52 | Jimmy Robertson | 1366.05 |
53 | Lei Peifan | 1364.20 |
54 | Matthew Stevens | 1359.27 |
55 | Martin Gould | 1359.24 |
56 | Jamie Jones | 1355.38 |
57 | He Guoqiang | 1354.22 |
58 | Sunny Akani | 1353.44 |
59 | Mark Davis | 1351.93 |
60 | Michael White | 1350.98 |
61 | Oliver Lines | 1343.83 |
62 | Michael Holt | 1342.22 |
63 | Stan Moody | 1341.58 |
64 | Aaron Hill | 1337.76 |
65 | Long Zehuang | 1329.32 |
66 | Ishpreet Chadha | 1324.60 |
67 | Jimmy White | 1323.34 |
68 | Dominic Dale | 1320.35 |
69 | Jordan Brown | 1320.09 |
70 | Tian Pengfei | 1318.41 |
71 | Liu Hongyu | 1316.39 |
72 | David Lilley | 1309.81 |
73 | Antoni Kowalski | 1304.39 |
74 | Louis Heathcote | 1301.06 |
75 | Alexander Ursenbacher | 1299.21 |
76 | Ma Hailong | 1298.10 |
77 | Jamie Clarke | 1295.71 |
78 | Jiang Jun | 1293.06 |
79 | Andrew Higginson | 1285.91 |
80 | Zak Surety | 1285.11 |
81 | Anthony Hamilton | 1281.86 |
82 | Alfie Burden | 1281.65 |
83 | Ben Mertens | 1280.71 |
84 | Liam Davies | 1280.16 |
85 | Stuart Carrington | 1275.03 |
86 | David Grace | 1273.68 |
87 | Ashley Carty | 1272.06 |
88 | Sanderson Lam | 1271.00 |
89 | Joe Perry | 1269.69 |
90 | Julien Leclercq | 1269.53 |
91 | Gong Chenzhi | 1265.56 |
92 | Artemijs Zizins | 1264.21 |
93 | Ross Muir | 1263.75 |
94 | Bulcsu Revesz | 1262.38 |
95 | Ian Burns | 1260.13 |
96 | Xing Zihao | 1259.40 |
97 | Duane Jones | 1256.47 |
98 | Allan Taylor | 1255.36 |
99 | Cheung Ka Wai | 1253.62 |
100 | Lim Kok Leong | 1252.45 |
101 | Amir Sarkhosh | 1235.95 |
102 | Wang Yuchen | 1226.87 |
103 | Haris Tahir | 1225.74 |
104 | Hammad Miah | 1225.17 |
105 | Liam Pullen | 1222.66 |
106 | Rory Thor | 1218.59 |
107 | Liam Graham | 1217.66 |
108 | Mohammed Shehab | 1217.40 |
109 | Bai Yulu | 1215.53 |
110 | Haydon Pinhey | 1209.73 |
111 | Kreishh Gurbaxani | 1208.98 |
112 | Huang Jiahao | 1207.65 |
113 | Jonas Luz | 1206.39 |
114 | Mitchell Mann | 1202.63 |
115 | Chris Totten | 1202.14 |
116 | Andrew Pagett | 1189.29 |
117 | Mostafa Dorgham | 1181.47 |
118 | Dean Young | 1172.18 |
119 | Robbie McGuigan | 1165.31 |
120 | Farakh Ajaib | 1158.12 |
121 | Manasawin Phetmalaikul | 1140.55 |
122 | Baipat Siripaporn | 1104.98 |
123 | Ahmed Elsayed | 1099.95 |
124 | Reanne Evans | 1071.56 |
125 | Mink Nutcharut | 1066.33 |
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.