An alternative rating system for snooker players

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.