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 |
| China Open | Aug. 14, 2026, 6 a.m. | 2026 | Zhou Yuelong | 6 | 5 | David Gilbert |
| China Open | Aug. 14, 2026, 6 a.m. | 2026 | Noppon Saengkham | 6 | 4 | Shaun Murphy |
| China Open | Aug. 14, 2026, 11:26 a.m. | 2026 | Neil Robertson | 1 | 6 | Mark Selby |
| China Open | Aug. 14, 2026, 11:44 a.m. | 2026 | Stuart Bingham | 6 | 3 | Zhang Anda |
| China Open | Aug. 15, 2026, 5:59 a.m. | 2026 | Noppon Saengkham | 6 | 5 | Zhou Yuelong |
| China Open | Aug. 15, 2026, 11:29 a.m. | 2026 | Mark Selby | 6 | 2 | Stuart Bingham |
| China Open | Aug. 16, 2026, 6:04 a.m. | 2026 | Mark Selby | 10 | 6 | Noppon Saengkham |
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.96 |
| 2 | Mark Selby | 1619.52 |
| 3 | Zhao Xintong | 1618.87 |
| 4 | Kyren Wilson | 1580.50 |
| 5 | Wu Yize | 1579.54 |
| 6 | Shaun Murphy | 1562.60 |
| 7 | John Higgins | 1551.63 |
| 8 | Mark Allen | 1550.71 |
| 9 | Barry Hawkins | 1524.21 |
| 10 | Neil Robertson | 1523.06 |
| 11 | Mark Williams | 1521.97 |
| 12 | Xiao Guodong | 1514.98 |
| 13 | Zhou Yuelong | 1501.43 |
| 14 | Ronnie O'Sullivan | 1499.00 |
| 15 | Ali Carter | 1493.93 |
| 16 | Zhang Anda | 1487.84 |
| 17 | Ding Junhui | 1482.16 |
| 18 | Stuart Bingham | 1475.29 |
| 19 | Hossein Vafaei | 1463.05 |
| 20 | Jak Jones | 1459.80 |
| 21 | Elliot Slessor | 1458.82 |
| 22 | Luca Brecel | 1456.03 |
| 23 | David Gilbert | 1449.73 |
| 24 | Noppon Saengkham | 1448.27 |
| 25 | Si Jiahui | 1447.52 |
| 26 | Jack Lisowski | 1445.88 |
| 27 | Pang Junxu | 1442.68 |
| 28 | Chang Bingyu | 1440.10 |
| 29 | Matthew Selt | 1433.57 |
| 30 | Yuan Sijun | 1431.84 |
| 31 | Stephen Maguire | 1431.81 |
| 32 | Chris Wakelin | 1431.10 |
| 33 | Anthony McGill | 1427.47 |
| 34 | Stan Moody | 1427.03 |
| 35 | Gary Wilson | 1421.85 |
| 36 | Jackson Page | 1421.32 |
| 37 | Joe O'Connor | 1414.79 |
| 38 | Tom Ford | 1413.39 |
| 39 | Jiang Jun | 1406.19 |
| 40 | Ryan Day | 1402.02 |
| 41 | Ricky Walden | 1398.04 |
| 42 | Sam Craigie | 1397.31 |
| 43 | Fan Zhengyi | 1389.53 |
| 44 | Lei Peifan | 1382.82 |
| 45 | Aaron Hill | 1382.80 |
| 46 | Xu Si | 1379.55 |
| 47 | Thepchaiya Un-Nooh | 1378.31 |
| 48 | Martin O'Donnell | 1374.76 |
| 49 | Daniel Wells | 1374.63 |
| 50 | Robbie Williams | 1372.26 |
| 51 | Liu Hongyu | 1369.66 |
| 52 | He Guoqiang | 1367.74 |
| 53 | Jimmy Robertson | 1362.76 |
| 54 | Zak Surety | 1358.22 |
| 55 | Liam Highfield | 1357.19 |
| 56 | Matthew Stevens | 1355.83 |
| 57 | Ben Woollaston | 1354.57 |
| 58 | Marco Fu | 1353.58 |
| 59 | Scott Donaldson | 1350.67 |
| 60 | Michael Holt | 1350.40 |
| 61 | Lyu Haotian | 1350.27 |
| 62 | Ben Mertens | 1345.69 |
| 63 | Dylan Emery | 1342.89 |
| 64 | Julien Leclercq | 1335.85 |
| 65 | Louis Heathcote | 1334.56 |
| 66 | Oliver Lines | 1332.29 |
| 67 | Long Zehuang | 1323.82 |
| 68 | Gao Yang | 1323.68 |
| 69 | Jamie Jones | 1321.74 |
| 70 | Liam Pullen | 1316.95 |
| 71 | Alfie Burden | 1316.41 |
| 72 | Ishpreet Chadha | 1314.99 |
| 73 | Steven Hallworth | 1313.95 |
| 74 | David Lilley | 1310.38 |
| 75 | Liam Davies | 1309.55 |
| 76 | Yao Pengcheng | 1309.44 |
| 77 | Antoni Kowalski | 1304.67 |
| 78 | Jamie Clarke | 1303.62 |
| 79 | Jordan Brown | 1302.49 |
| 80 | Andrew Higginson | 1299.82 |
| 81 | Artemijs Zizins | 1297.70 |
| 82 | Jimmy White | 1294.18 |
| 83 | David Grace | 1289.95 |
| 84 | Iulian Boiko | 1285.96 |
| 85 | Ian Burns | 1283.98 |
| 86 | Ashley Hugill | 1282.78 |
| 87 | Ashley Carty | 1280.69 |
| 88 | Igor Figueiredo | 1273.57 |
| 89 | Lan Yuhao | 1265.38 |
| 90 | Ross Muir | 1263.85 |
| 91 | Mitchell Mann | 1263.20 |
| 92 | Wang Xinbo | 1262.01 |
| 93 | Alexander Ursenbacher | 1261.06 |
| 94 | Oliver Sykes | 1248.53 |
| 95 | Cheung Ka Wai | 1244.22 |
| 96 | Deng Haohui | 1243.59 |
| 97 | Michał Szubarczyk | 1243.19 |
| 98 | Gong Chenzhi | 1241.95 |
| 99 | Hammad Miah | 1241.60 |
| 100 | Stuart Carrington | 1236.97 |
| 101 | Craig Steadman | 1236.26 |
| 102 | Florian Nüßle | 1235.85 |
| 103 | Michael Larkov | 1235.19 |
| 104 | Luo Zetao | 1233.46 |
| 105 | Liu Yang | 1228.26 |
| 106 | Liu Wenwei | 1224.73 |
| 107 | Zhao Hanyang | 1220.11 |
| 108 | Huang Jiahao | 1217.98 |
| 109 | Phil O'Kane | 1216.56 |
| 110 | Xu Yichen | 1216.45 |
| 111 | Paul Norris | 1213.77 |
| 112 | Oliver Brown | 1205.63 |
| 113 | Mateusz Baranowski | 1202.98 |
| 114 | Liam Graham | 1200.93 |
| 115 | Sahil Nayyar | 1194.84 |
| 116 | Thanawat Tirapongpaiboon | 1188.02 |
| 117 | Connor Benzey | 1185.87 |
| 118 | Chatchapong Nasa | 1184.95 |
| 119 | Mahmoud El Hareedy | 1182.52 |
| 120 | Leone Crowley | 1179.97 |
| 121 | Fergal Quinn | 1142.46 |
| 122 | Sean O'Sullivan | 1117.73 |
| 123 | Anton Kazakov | 1115.67 |
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.