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
World Championship April 29, 2025, 9:11 a.m. 2024 Zhao Xintong 13 5 Chris Wakelin
World Championship April 29, 2025, 1:28 p.m. 2024 Luca Brecel 8 13 Judd Trump
World Championship April 29, 2025, 1:28 p.m. 2024 Ronnie O'Sullivan 13 9 Si Jiahui
World Championship May 1, 2025, 12:01 p.m. 2024 Zhao Xintong 17 7 Ronnie O'Sullivan
World Championship May 1, 2025, 12:01 p.m. 2024 Zhao Xintong 17 7 Ronnie O'Sullivan
World Championship May 1, 2025, 6:11 p.m. 2024 Mark Williams 17 14 Judd Trump
World Championship May 1, 2025, 6:11 p.m. 2024 Mark Williams 17 14 Judd Trump
World Championship May 1, 2025, 6:11 p.m. 2024 Mark Williams 17 14 Judd Trump
World Championship May 4, 2025, 12:01 p.m. 2024 Zhao Xintong 18 12 Mark Williams
World Championship May 4, 2025, 12:01 p.m. 2024 Zhao Xintong 18 12 Mark Williams

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 1674.03
2 Kyren Wilson 1613.21
3 John Higgins 1590.09
4 Mark Selby 1550.56
5 Mark Allen 1548.22
6 Ronnie O'Sullivan 1532.49
7 Xiao Guodong 1525.13
8 Neil Robertson 1521.03
9 Shaun Murphy 1519.61
10 Barry Hawkins 1518.46
11 Mark Williams 1507.96
12 Ding Junhui 1505.29
13 Luca Brecel 1502.84
14 Hossein Vafaei 1497.94
15 Joe O'Connor 1483.82
16 Ali Carter 1478.21
17 Si Jiahui 1465.88
18 Pang Junxu 1462.02
19 Wu Yize 1457.38
20 Chris Wakelin 1451.68
21 Jak Jones 1446.82
22 Ricky Walden 1445.32
23 Jack Lisowski 1443.72
24 David Gilbert 1435.80
25 Matthew Selt 1435.48
26 Stephen Maguire 1432.85
27 Zhang Anda 1429.39
28 Yuan Sijun 1428.37
29 Cao Yupeng 1420.40
30 Elliot Slessor 1419.55
31 Zhou Yuelong 1417.12
32 Stuart Bingham 1412.12
33 Ryan Day 1410.05
34 Anthony McGill 1409.93
35 Ben Woollaston 1406.95
36 Lyu Haotian 1401.04
37 Thepchaiya Un-Nooh 1397.98
38 Tom Ford 1396.70
39 Jackson Page 1395.79
40 Graeme Dott 1388.42
41 Noppon Saengkham 1387.86
42 Martin O'Donnell 1387.18
43 Xu Si 1386.21
44 Fan Zhengyi 1386.15
45 Sam Craigie 1383.42
46 Lei Peifan 1383.36
47 Daniel Wells 1381.04
48 Jimmy Robertson 1372.37
49 Mark Davis 1363.76
50 Robbie Williams 1363.00
51 Gary Wilson 1361.92
52 Jamie Jones 1360.12
53 Scott Donaldson 1359.15
54 Sunny Akani 1357.99
55 He Guoqiang 1357.87
56 Michael Holt 1357.38
57 Robert Milkins 1355.57
58 Martin Gould 1353.30
59 Michael White 1350.98
60 Stan Moody 1350.14
61 Aaron Hill 1347.37
62 Zak Surety 1345.49
63 Oliver Lines 1341.43
64 Marco Fu 1341.23
65 Matthew Stevens 1339.54
66 David Lilley 1333.90
67 Long Zehuang 1323.24
68 Anthony Hamilton 1322.34
69 Liu Hongyu 1320.44
70 Ishpreet Chadha 1318.48
71 Jimmy White 1314.24
72 Jordan Brown 1310.36
73 Dominic Dale 1308.28
74 Tian Pengfei 1304.92
75 Andrew Higginson 1299.63
76 Alexander Ursenbacher 1296.93
77 Antoni Kowalski 1295.04
78 Jiang Jun 1293.43
79 Louis Heathcote 1293.16
80 Ma Hailong 1289.99
81 Jamie Clarke 1287.46
82 Joe Perry 1283.88
83 Ben Mertens 1280.61
84 Ashley Carty 1276.45
85 Liam Davies 1276.12
86 Gong Chenzhi 1276.05
87 Ross Muir 1275.66
88 Duane Jones 1274.28
89 Julien Leclercq 1270.68
90 David Grace 1267.80
91 Ian Burns 1267.74
92 Stuart Carrington 1266.32
93 Sanderson Lam 1266.25
94 Allan Taylor 1264.31
95 Xing Zihao 1262.54
96 Artemijs Zizins 1257.36
97 Bulcsu Revesz 1255.45
98 Lim Kok Leong 1252.45
99 Cheung Ka Wai 1250.32
100 Wang Yuchen 1242.72
101 Alfie Burden 1237.51
102 Hammad Miah 1233.24
103 Haris Tahir 1227.38
104 Amir Sarkhosh 1224.14
105 Liam Graham 1218.54
106 Mitchell Mann 1216.89
107 Liam Pullen 1215.70
108 Mohammed Shehab 1212.52
109 Rory Thor 1211.36
110 Huang Jiahao 1210.95
111 Bai Yulu 1209.52
112 Kreishh Gurbaxani 1204.29
113 Haydon Pinhey 1204.17
114 Jonas Luz 1199.26
115 Chris Totten 1194.65
116 Andrew Pagett 1181.82
117 Dean Young 1177.26
118 Mostafa Dorgham 1174.43
119 Robbie McGuigan 1168.95
120 Farakh Ajaib 1159.98
121 Manasawin Phetmalaikul 1144.17
122 Baipat Siripaporn 1098.62
123 Ahmed Elsayed 1096.02
124 Reanne Evans 1068.48
125 Mink Nutcharut 1062.63

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.