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
International Championship Nov. 2, 2026, 6:04 a.m. 2026 Xu Si 2 6 John Higgins
International Championship Nov. 2, 2026, 6:04 a.m. 2026 Neil Robertson 4 6 Wang Xinbo
International Championship Nov. 2, 2026, 6:04 a.m. 2026 Si Jiahui 6 0 Liu Hongyu
International Championship Nov. 2, 2026, 6:04 a.m. 2026 Ding Junhui 6 5 Zhang Anda
International Championship Nov. 2, 2026, 6:16 a.m. 2026 Julien Leclercq 3 6 Marco Fu
International Championship Nov. 2, 2026, 11:24 a.m. 2026 Sam Craigie 5 6 Zhao Xintong
International Championship Nov. 2, 2026, 11:24 a.m. 2026 Aaron Hill 6 2 Daniel Wells
International Championship Nov. 2, 2026, 11:24 a.m. 2026 Chris Wakelin 3 6 Chang Bingyu
International Championship Nov. 2, 2026, 11:24 a.m. 2026 Ryan Day 1 6 Kyren Wilson
International Championship Nov. 2, 2026, 11:24 a.m. 2026 Wu Yize 5 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 1626.33
2 Kyren Wilson 1617.60
3 Mark Selby 1607.52
4 Zhao Xintong 1603.72
5 Shaun Murphy 1558.78
6 Wu Yize 1556.91
7 Mark Williams 1548.45
8 John Higgins 1548.44
9 Mark Allen 1538.52
10 Jak Jones 1520.00
11 Barry Hawkins 1516.12
12 Neil Robertson 1504.81
13 Ali Carter 1496.06
14 Zhou Yuelong 1493.88
15 Ronnie O'Sullivan 1491.19
16 Ding Junhui 1487.38
17 Zhang Anda 1482.15
18 Xiao Guodong 1481.05
19 Chang Bingyu 1477.86
20 Luca Brecel 1456.32
21 Stuart Bingham 1454.51
22 Hossein Vafaei 1449.34
23 Stephen Maguire 1448.45
24 Pang Junxu 1448.33
25 Anthony McGill 1446.29
26 David Gilbert 1445.74
27 Si Jiahui 1444.70
28 Elliot Slessor 1441.81
29 Yuan Sijun 1440.80
30 Matthew Selt 1437.78
31 Jack Lisowski 1432.51
32 Sam Craigie 1430.32
33 Chris Wakelin 1429.52
34 Noppon Saengkham 1429.09
35 Fan Zhengyi 1426.31
36 Stan Moody 1425.15
37 Ryan Day 1414.14
38 Joe O'Connor 1412.92
39 Aaron Hill 1406.69
40 Daniel Wells 1403.26
41 Ricky Walden 1402.43
42 Xu Si 1400.98
43 Liam Davies 1400.01
44 Jackson Page 1398.48
45 Tom Ford 1396.20
46 Martin O'Donnell 1392.30
47 Jiang Jun 1390.62
48 Gary Wilson 1387.81
49 Scott Donaldson 1386.60
50 Liam Highfield 1382.17
51 Robbie Williams 1381.12
52 Thepchaiya Un-Nooh 1372.99
53 Marco Fu 1364.79
54 Lei Peifan 1359.46
55 Liu Hongyu 1358.62
56 Ben Woollaston 1354.22
57 Lyu Haotian 1353.17
58 Gao Yang 1353.01
59 Oliver Lines 1351.70
60 Dylan Emery 1351.64
61 He Guoqiang 1347.79
62 Matthew Stevens 1346.70
63 Jimmy Robertson 1342.89
64 Michael Holt 1341.90
65 Louis Heathcote 1335.61
66 Julien Leclercq 1333.78
67 Liam Pullen 1329.10
68 Yao Pengcheng 1328.77
69 Zak Surety 1327.02
70 Wang Xinbo 1323.19
71 Ben Mertens 1317.40
72 Long Zehuang 1316.43
73 Jamie Clarke 1311.45
74 Jordan Brown 1310.77
75 Alfie Burden 1308.24
76 Ishpreet Chadha 1307.67
77 Iulian Boiko 1307.52
78 David Lilley 1306.62
79 Jamie Jones 1306.10
80 David Grace 1303.34
81 Antoni Kowalski 1299.57
82 Steven Hallworth 1298.73
83 Jimmy White 1297.84
84 Ian Burns 1297.40
85 Artemijs Zizins 1297.10
86 Andrew Higginson 1284.72
87 Ashley Carty 1284.03
88 Ashley Hugill 1281.82
89 Ross Muir 1273.90
90 Igor Figueiredo 1273.57
91 Cheung Ka Wai 1270.32
92 Mitchell Mann 1267.56
93 Oliver Sykes 1257.43
94 Lan Yuhao 1252.87
95 Alexander Ursenbacher 1251.92
96 Gong Chenzhi 1249.30
97 Michał Szubarczyk 1244.40
98 Mateusz Baranowski 1239.11
99 Zhao Hanyang 1236.48
100 Stuart Carrington 1230.32
101 Huang Jiahao 1229.30
102 Hammad Miah 1228.76
103 Liu Wenwei 1227.73
104 Michael Larkov 1225.07
105 Luo Zetao 1224.93
106 Craig Steadman 1222.68
107 Deng Haohui 1221.05
108 Florian Nüßle 1217.68
109 Liu Yang 1215.12
110 Thanawat Tirapongpaiboon 1211.70
111 Chatchapong Nasa 1203.95
112 Xu Yichen 1202.30
113 Oliver Brown 1199.65
114 Paul Norris 1197.31
115 Phil O'Kane 1195.43
116 Liam Graham 1192.70
117 Sahil Nayyar 1179.58
118 Leone Crowley 1179.01
119 Connor Benzey 1177.08
120 Mahmoud El Hareedy 1163.04
121 Fergal Quinn 1132.20
122 Anton Kazakov 1116.15
123 Sean O'Sullivan 1105.26

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.