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 |
| English Open | Sept. 10, 2026, 2:48 p.m. | 2026 | Joe O'Connor | 1 | 4 | Ding Junhui |
| English Open | Sept. 10, 2026, 2:57 p.m. | 2026 | Liam Davies | 4 | 1 | Wu Yize |
| English Open | Sept. 10, 2026, 6:01 p.m. | 2026 | Judd Trump | 4 | 3 | Anthony McGill |
| English Open | Sept. 10, 2026, 6:01 p.m. | 2026 | Ali Carter | 4 | 2 | Gong Chenzhi |
| English Open | Sept. 10, 2026, 9:02 p.m. | 2026 | Pang Junxu | 3 | 4 | Shaun Murphy |
| English Open | Sept. 10, 2026, 9:43 p.m. | 2026 | Mark Williams | 4 | 1 | Barry Hawkins |
| English Open | Sept. 11, 2026, 11:49 a.m. | 2026 | Zhou Yuelong | 5 | 6 | Ali Carter |
| English Open | Sept. 11, 2026, 11:49 a.m. | 2026 | Ding Junhui | 6 | 2 | Kyren Wilson |
| English Open | Sept. 11, 2026, 5:59 p.m. | 2026 | Mark Williams | 6 | 3 | Liam Davies |
| English Open | Sept. 11, 2026, 5:59 p.m. | 2026 | Judd Trump | 5 | 6 | Shaun Murphy |
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 | 1648.04 |
| 2 | Mark Selby | 1625.91 |
| 3 | Zhao Xintong | 1619.32 |
| 4 | Kyren Wilson | 1575.02 |
| 5 | Shaun Murphy | 1567.90 |
| 6 | Wu Yize | 1558.20 |
| 7 | John Higgins | 1553.97 |
| 8 | Mark Allen | 1550.71 |
| 9 | Mark Williams | 1535.11 |
| 10 | Barry Hawkins | 1518.64 |
| 11 | Ronnie O'Sullivan | 1513.31 |
| 12 | Xiao Guodong | 1512.48 |
| 13 | Zhou Yuelong | 1511.61 |
| 14 | Neil Robertson | 1509.35 |
| 15 | Ali Carter | 1504.19 |
| 16 | Jak Jones | 1502.42 |
| 17 | Ding Junhui | 1488.81 |
| 18 | Zhang Anda | 1485.52 |
| 19 | Chang Bingyu | 1474.36 |
| 20 | Stuart Bingham | 1466.61 |
| 21 | David Gilbert | 1452.90 |
| 22 | Pang Junxu | 1452.60 |
| 23 | Elliot Slessor | 1448.30 |
| 24 | Luca Brecel | 1447.97 |
| 25 | Jack Lisowski | 1447.28 |
| 26 | Hossein Vafaei | 1443.52 |
| 27 | Noppon Saengkham | 1443.05 |
| 28 | Stan Moody | 1435.65 |
| 29 | Matthew Selt | 1435.58 |
| 30 | Si Jiahui | 1435.47 |
| 31 | Yuan Sijun | 1435.26 |
| 32 | Anthony McGill | 1432.78 |
| 33 | Chris Wakelin | 1431.35 |
| 34 | Stephen Maguire | 1430.76 |
| 35 | Joe O'Connor | 1419.23 |
| 36 | Jackson Page | 1412.49 |
| 37 | Tom Ford | 1406.22 |
| 38 | Gary Wilson | 1403.91 |
| 39 | Ryan Day | 1397.10 |
| 40 | Jiang Jun | 1394.78 |
| 41 | Fan Zhengyi | 1392.62 |
| 42 | Ricky Walden | 1391.99 |
| 43 | Sam Craigie | 1390.27 |
| 44 | Aaron Hill | 1388.29 |
| 45 | Liam Highfield | 1385.72 |
| 46 | Xu Si | 1383.46 |
| 47 | Daniel Wells | 1377.95 |
| 48 | Robbie Williams | 1376.03 |
| 49 | Martin O'Donnell | 1374.76 |
| 50 | Lei Peifan | 1370.23 |
| 51 | Thepchaiya Un-Nooh | 1368.52 |
| 52 | He Guoqiang | 1361.09 |
| 53 | Liu Hongyu | 1360.10 |
| 54 | Lyu Haotian | 1356.99 |
| 55 | Ben Woollaston | 1354.57 |
| 56 | Marco Fu | 1353.58 |
| 57 | Scott Donaldson | 1350.67 |
| 58 | Matthew Stevens | 1348.99 |
| 59 | Liam Davies | 1347.34 |
| 60 | Jimmy Robertson | 1346.42 |
| 61 | Zak Surety | 1344.57 |
| 62 | Michael Holt | 1340.83 |
| 63 | Oliver Lines | 1339.43 |
| 64 | Julien Leclercq | 1335.85 |
| 65 | Dylan Emery | 1335.50 |
| 66 | Ben Mertens | 1335.10 |
| 67 | Long Zehuang | 1330.64 |
| 68 | Louis Heathcote | 1329.11 |
| 69 | Gao Yang | 1318.38 |
| 70 | Ishpreet Chadha | 1317.60 |
| 71 | Liam Pullen | 1316.95 |
| 72 | Alfie Burden | 1313.49 |
| 73 | Jamie Jones | 1313.03 |
| 74 | Artemijs Zizins | 1310.88 |
| 75 | David Lilley | 1308.22 |
| 76 | Jamie Clarke | 1307.06 |
| 77 | Steven Hallworth | 1306.47 |
| 78 | Iulian Boiko | 1301.09 |
| 79 | Yao Pengcheng | 1300.74 |
| 80 | Antoni Kowalski | 1300.13 |
| 81 | Andrew Higginson | 1299.82 |
| 82 | Jimmy White | 1294.18 |
| 83 | David Grace | 1292.08 |
| 84 | Ashley Hugill | 1289.78 |
| 85 | Ashley Carty | 1289.57 |
| 86 | Jordan Brown | 1287.87 |
| 87 | Ian Burns | 1283.98 |
| 88 | Igor Figueiredo | 1273.57 |
| 89 | Ross Muir | 1272.91 |
| 90 | Wang Xinbo | 1272.41 |
| 91 | Lan Yuhao | 1265.38 |
| 92 | Alexander Ursenbacher | 1261.06 |
| 93 | Mitchell Mann | 1259.32 |
| 94 | Gong Chenzhi | 1251.43 |
| 95 | Oliver Sykes | 1248.53 |
| 96 | Cheung Ka Wai | 1244.22 |
| 97 | Michał Szubarczyk | 1243.19 |
| 98 | Hammad Miah | 1241.60 |
| 99 | Deng Haohui | 1241.13 |
| 100 | Luo Zetao | 1238.59 |
| 101 | Stuart Carrington | 1236.97 |
| 102 | Craig Steadman | 1236.26 |
| 103 | Michael Larkov | 1235.19 |
| 104 | Florian Nüßle | 1228.77 |
| 105 | Liu Wenwei | 1224.73 |
| 106 | Liu Yang | 1221.49 |
| 107 | Zhao Hanyang | 1220.11 |
| 108 | Huang Jiahao | 1217.98 |
| 109 | Paul Norris | 1213.77 |
| 110 | Phil O'Kane | 1211.68 |
| 111 | Xu Yichen | 1210.43 |
| 112 | Oliver Brown | 1204.44 |
| 113 | Liam Graham | 1198.15 |
| 114 | Thanawat Tirapongpaiboon | 1197.08 |
| 115 | Mateusz Baranowski | 1195.19 |
| 116 | Sahil Nayyar | 1194.84 |
| 117 | Connor Benzey | 1185.87 |
| 118 | Chatchapong Nasa | 1182.69 |
| 119 | Leone Crowley | 1179.97 |
| 120 | Mahmoud El Hareedy | 1178.50 |
| 121 | Fergal Quinn | 1142.46 |
| 122 | Sean O'Sullivan | 1116.01 |
| 123 | Anton Kazakov | 1113.95 |
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.