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
UK Championship Dec. 3, 2025, 7:17 p.m. 2025 Mark Selby 6 2 Zhou Yuelong
UK Championship Dec. 3, 2025, 7:17 p.m. 2025 Judd Trump 6 3 Si Jiahui
UK Championship Dec. 4, 2025, 1:20 p.m. 2025 Zhang Anda 6 2 Zhao Xintong
UK Championship Dec. 4, 2025, 1:20 p.m. 2025 Ding Junhui 6 5 Scott Donaldson
UK Championship Dec. 4, 2025, 7:11 p.m. 2025 John Higgins 5 6 Shaun Murphy
UK Championship Dec. 4, 2025, 7:11 p.m. 2025 Elliot Slessor 0 6 Barry Hawkins
UK Championship Dec. 5, 2025, 1:07 p.m. 2025 Pang Junxu 4 6 Neil Robertson
UK Championship Dec. 5, 2025, 1:07 p.m. 2025 Judd Trump 6 2 Ding Junhui
UK Championship Dec. 5, 2025, 6:57 p.m. 2025 Shaun Murphy 6 3 Zhang Anda
UK Championship Dec. 5, 2025, 6:57 p.m. 2025 Barry Hawkins 2 6 Mark Selby

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 1644.06
2 Mark Selby 1600.20
3 Kyren Wilson 1569.65
4 Neil Robertson 1567.27
5 Mark Williams 1565.79
6 Shaun Murphy 1560.32
7 Zhao Xintong 1551.57
8 Mark Allen 1543.59
9 John Higgins 1539.63
10 Xiao Guodong 1523.71
11 Ding Junhui 1517.91
12 Barry Hawkins 1515.27
13 Wu Yize 1514.76
14 Ronnie O'Sullivan 1506.25
15 Stephen Maguire 1486.76
16 Si Jiahui 1481.09
17 Elliot Slessor 1478.67
18 Ali Carter 1477.85
19 Luca Brecel 1477.26
20 Jack Lisowski 1474.98
21 Joe O'Connor 1472.72
22 Zhou Yuelong 1458.50
23 Hossein Vafaei 1453.47
24 Gary Wilson 1451.33
25 Jak Jones 1448.56
26 Zhang Anda 1445.85
27 Yuan Sijun 1444.57
28 Pang Junxu 1439.62
29 Anthony McGill 1433.43
30 Ricky Walden 1421.25
31 Cao Yupeng 1420.40
32 David Gilbert 1418.35
33 Ben Woollaston 1417.96
34 Thepchaiya Un-Nooh 1417.35
35 Matthew Selt 1414.37
36 Ryan Day 1408.84
37 Chris Wakelin 1408.58
38 Stan Moody 1404.63
39 Stuart Bingham 1401.60
40 Lei Peifan 1397.74
41 Aaron Hill 1395.15
42 Scott Donaldson 1394.55
43 Daniel Wells 1394.03
44 Sam Craigie 1390.69
45 Jackson Page 1386.48
46 Tom Ford 1386.28
47 Matthew Stevens 1383.48
48 Zak Surety 1383.27
49 Martin O'Donnell 1382.29
50 Lyu Haotian 1382.12
51 Oliver Lines 1381.30
52 Ken Doherty 1381.05
53 He Guoqiang 1376.28
54 Noppon Saengkham 1372.99
55 Xu Si 1368.25
56 Graeme Dott 1363.80
57 Chang Bingyu 1361.43
58 Robbie Williams 1360.87
59 Fan Zhengyi 1356.36
60 Louis Heathcote 1355.91
61 Jimmy Robertson 1353.63
62 Marco Fu 1344.32
63 David Lilley 1343.92
64 Michael Holt 1342.32
65 Jamie Jones 1337.34
66 Robert Milkins 1335.88
67 Jimmy White 1334.04
68 Sunny Akani 1333.89
69 Long Zehuang 1331.18
70 Liu Hongyu 1331.11
71 Mark Davis 1330.25
72 Jiang Jun 1317.67
73 Dylan Emery 1314.08
74 Liam Highfield 1312.31
75 Liam Davies 1311.53
76 Steven Hallworth 1310.32
77 Ben Mertens 1307.04
78 Ishpreet Chadha 1304.02
79 Ian Burns 1300.86
80 Jordan Brown 1296.52
81 Julien Leclercq 1292.78
82 Antoni Kowalski 1291.02
83 Liam Pullen 1289.77
84 Artemijs Zizins 1287.55
85 David Grace 1284.09
86 Alexander Ursenbacher 1271.17
87 Yao Pengcheng 1265.45
88 Duane Jones 1263.97
89 Gao Yang 1262.73
90 Allan Taylor 1262.27
91 Lan Yuhao 1260.93
92 Ross Muir 1258.59
93 Wang Yuchen 1256.59
94 Gong Chenzhi 1256.36
95 Iulian Boiko 1253.60
96 Lim Kok Leong 1252.45
97 Sanderson Lam 1251.47
98 Mitchell Mann 1250.50
99 Cheung Ka Wai 1244.09
100 Amir Sarkhosh 1242.67
101 Bulcsu Revesz 1242.49
102 Michał Szubarczyk 1237.69
103 Mateusz Baranowski 1237.61
104 Liam Graham 1228.27
105 Huang Jiahao 1227.45
106 Haris Tahir 1224.43
107 Liu Wenwei 1222.57
108 Zhao Hanyang 1222.21
109 Chatchapong Nasa 1217.14
110 Mohammed Shehab 1214.27
111 Xu Yichen 1210.82
112 Florian Nüßle 1208.50
113 Connor Benzey 1207.05
114 Leone Crowley 1204.06
115 Bai Yulu 1203.48
116 Sahil Nayyar 1194.85
117 Farakh Ajaib 1192.61
118 Robbie McGuigan 1189.68
119 Haydon Pinhey 1186.50
120 Oliver Brown 1186.20
121 Fergal Quinn 1172.58
122 Jonas Luz 1155.90
123 Chris Totten 1155.38
124 Kreishh Gurbaxani 1138.59
125 Hatem Yassin 1136.74
126 Ng On Yee 1122.56
127 Reanne Evans 1089.03
128 Mink Nutcharut 1040.78

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.