| Fin | Driver | Team | Rating Δ | Rating |
|---|---|---|---|---|
| P1 | Marcus Armstrong | PREMA Theodore Racing | +113 | 5,414 |
| P2 | Ralf Aron | PREMA Theodore Racing | +95 | 5,457 |
| P3 | Jehan Daruvala | Carlin | +92 | 5,270 |
| P4 | Daniel Ticktum | Motopark | +54 | 5,625 |
| P5 | Mick Schumacher | PREMA Theodore Racing | +85 | 4,919 |
| P6 | Robert Shwartzman | PREMA Theodore Racing | +30 | 5,519 |
| P7 | Juri Vips | Motopark | +52 | 4,965 |
| P8 | Marino Sato | Motopark | +109 | 3,961 |
| P9 | Zhou Guanyu | PREMA Theodore Racing | −3 | 5,335 |
| P10 | Keyvan Andres | Van Amersfoort Racing | +87 | 3,842 |
| P11 | Alex Palou | Hitech Bullfrog GP | −45 | 5,518 |
| P12 | Ben Hingeley | Hitech Bullfrog GP | −18 | 4,881 |
| P13 | Artem Petrov | Van Amersfoort Racing | +18 | 4,183 |
| P14 | Enaam Ahmed | Hitech Bullfrog GP | −97 | 5,635 |
| P15 | Sebastian Fernandez | Motopark | −19 | 4,264 |
| P16 | Jonathan Aberdein | Motopark | −56 | 4,557 |
| P17 | Ameya Vaidyanathan | Carlin | +27 | 3,213 |
| P18 | Ferdinand Habsburg | Carlin | −119 | 5,046 |
| P19 | Fabio Scherer | Motopark | −116 | 4,772 |
| P20 | Julian Hanses | ma-con | −91 | 4,212 |
| P21 | Petru Florescu | Fortec Motorsports | −70 | 3,763 |
| P22 | Nikita Troitskiy | Carlin | −127 | 4,285 |
Rating Δ is the Elo exchange from this race: taken from the cars finished behind, ceded to those ahead, net zero across the field. A shared car splits its change among co-drivers by FIA grade, so both appear at the same position.