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 Open Qualifiers Feb. 12, 2026, 9:51 a.m. 2025 Stan Moody 5 4 Jiang Jun
World Open Qualifiers Feb. 12, 2026, 9:51 a.m. 2025 Ding Junhui 2 5 Marco Fu
World Open Qualifiers Feb. 12, 2026, 9:51 a.m. 2025 Jack Lisowski 5 2 Gong Chenzhi
World Open Qualifiers Feb. 12, 2026, 2:32 p.m. 2025 Mark Selby 5 4 Haydon Pinhey
World Open Qualifiers Feb. 12, 2026, 2:32 p.m. 2025 Elliot Slessor 5 2 Bai Yulu
World Open Qualifiers Feb. 12, 2026, 2:32 p.m. 2025 Si Jiahui 3 5 Zhao Hanyang
World Open Qualifiers Feb. 12, 2026, 2:32 p.m. 2025 David Gilbert 5 3 Connor Benzey
World Open Qualifiers Feb. 12, 2026, 2:32 p.m. 2025 Matthew Selt 5 4 Liam Davies
World Open Qualifiers Feb. 12, 2026, 2:33 p.m. 2025 Tom Ford 4 5 Allan Taylor
World Open Qualifiers Feb. 12, 2026, 2:33 p.m. 2025 Wu Yize 5 2 Liam Pullen

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 1653.40
2 Mark Selby 1613.77
3 Zhao Xintong 1593.74
4 Kyren Wilson 1581.97
5 Shaun Murphy 1549.17
6 Wu Yize 1543.84
7 John Higgins 1542.06
8 Mark Williams 1540.86
9 Mark Allen 1534.55
10 Xiao Guodong 1521.59
11 Neil Robertson 1517.87
12 Elliot Slessor 1508.21
13 Ali Carter 1501.83
14 Ronnie O'Sullivan 1501.14
15 Barry Hawkins 1495.22
16 Ding Junhui 1494.37
17 Zhou Yuelong 1488.11
18 Luca Brecel 1481.44
19 Si Jiahui 1469.45
20 Zhang Anda 1460.12
21 Stephen Maguire 1449.77
22 Jak Jones 1446.21
23 Jack Lisowski 1443.27
24 Yuan Sijun 1441.59
25 Chris Wakelin 1436.95
26 Stuart Bingham 1435.16
27 Matthew Selt 1435.03
28 Joe O'Connor 1433.43
29 Anthony McGill 1430.67
30 Chang Bingyu 1426.61
31 Tom Ford 1424.89
32 Pang Junxu 1423.26
33 Cao Yupeng 1420.40
34 Ricky Walden 1419.11
35 David Gilbert 1416.75
36 Hossein Vafaei 1413.74
37 Gary Wilson 1412.93
38 Stan Moody 1405.95
39 Ryan Day 1401.91
40 Sam Craigie 1401.60
41 Noppon Saengkham 1400.43
42 Lei Peifan 1396.16
43 Thepchaiya Un-Nooh 1393.30
44 Jimmy Robertson 1388.29
45 Zak Surety 1388.17
46 Jackson Page 1385.56
47 Xu Si 1384.80
48 Aaron Hill 1384.19
49 Scott Donaldson 1380.46
50 Daniel Wells 1376.13
51 Martin O'Donnell 1375.17
52 Lyu Haotian 1373.40
53 Ben Woollaston 1371.48
54 Robbie Williams 1368.35
55 Graeme Dott 1363.80
56 Ken Doherty 1363.58
57 Matthew Stevens 1362.49
58 Fan Zhengyi 1361.83
59 Marco Fu 1359.52
60 Louis Heathcote 1354.89
61 Julien Leclercq 1352.49
62 Jiang Jun 1347.96
63 He Guoqiang 1347.78
64 Michael Holt 1344.94
65 Liam Highfield 1344.73
66 Oliver Lines 1344.54
67 Long Zehuang 1339.32
68 David Lilley 1335.21
69 Ben Mertens 1329.36
70 Liu Hongyu 1327.69
71 Sunny Akani 1324.39
72 Ishpreet Chadha 1322.47
73 Robert Milkins 1315.92
74 Dylan Emery 1314.69
75 Jamie Jones 1312.09
76 Jimmy White 1310.45
77 Liam Davies 1308.02
78 Artemijs Zizins 1307.05
79 David Grace 1305.61
80 Mark Davis 1304.52
81 Antoni Kowalski 1302.77
82 Iulian Boiko 1298.97
83 Gao Yang 1294.14
84 Liam Pullen 1293.94
85 Ian Burns 1292.76
86 Steven Hallworth 1291.66
87 Jordan Brown 1286.08
88 Alexander Ursenbacher 1281.45
89 Allan Taylor 1276.24
90 Ross Muir 1271.23
91 Lan Yuhao 1268.34
92 Mitchell Mann 1266.98
93 Cheung Ka Wai 1262.30
94 Bulcsu Revesz 1260.78
95 Duane Jones 1258.92
96 Sanderson Lam 1257.12
97 Yao Pengcheng 1252.80
98 Lim Kok Leong 1252.45
99 Michał Szubarczyk 1251.97
100 Amir Sarkhosh 1249.27
101 Wang Yuchen 1245.82
102 Liu Wenwei 1242.09
103 Gong Chenzhi 1240.91
104 Zhao Hanyang 1226.10
105 Liam Graham 1221.35
106 Huang Jiahao 1219.84
107 Mohammed Shehab 1219.13
108 Xu Yichen 1217.31
109 Mateusz Baranowski 1216.51
110 Florian Nüßle 1214.01
111 Haris Tahir 1213.17
112 Robbie McGuigan 1212.22
113 Farakh Ajaib 1208.17
114 Chatchapong Nasa 1201.11
115 Connor Benzey 1195.96
116 Sahil Nayyar 1192.61
117 Bai Yulu 1188.43
118 Leone Crowley 1182.13
119 Oliver Brown 1181.12
120 Haydon Pinhey 1167.17
121 Fergal Quinn 1154.14
122 Jonas Luz 1138.83
123 Chris Totten 1137.57
124 Ng On Yee 1134.36
125 Kreishh Gurbaxani 1124.32
126 Hatem Yassin 1120.08
127 Reanne Evans 1077.15
128 Mink Nutcharut 1031.89

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.