A simplistic driver strength calculation for every F1 driver (current and historical) using the chess Elo algorithm.
This project calculates Elo ratings for Formula 1 drivers by comparing their performance against their teammates in both qualifying and race sessions. Each driver receives three separate Elo scores:
Race-by-race Elo changes and detailed analysis for each season:
Decades | Season Reports | Official F1 Results |
---|---|---|
2020s | 2025 • 2024 • 2023 • 2022 • 2021 • 2020 | F1.com 2020s |
2010s | 2019 • 2018 • 2017 • 2016 • 2015 • 2014 • 2013 • 2012 • 2011 • 2010 | F1.com 2010s |
2000s | 2009 • 2008 • 2007 • 2006 • 2005 • 2004 • 2003 • 2002 • 2001 • 2000 | F1.com 2000s |
1990s | 1999 • 1998 • 1997 • 1996 • 1995 • 1994 • 1993 • 1992 • 1991 • 1990 | F1.com 1990s |
1980s | 1989 • 1988 • 1987 • 1986 • 1985 • 1984 • 1983 • 1982 • 1981 • 1980 | F1.com 1980s |
1970s | 1979 • 1978 • 1977 • 1976 • 1975 • 1974 • 1973 • 1972 • 1971 • 1970 | F1.com 1970s |
1960s | 1969 • 1968 • 1967 • 1966 • 1965 • 1964 • 1963 • 1962 • 1961 • 1960 | F1.com 1960s |
1950s | 1959 • 1958 • 1957 • 1956 • 1955 • 1954 • 1953 • 1952 • 1951 • 1950 | F1.com 1950s |
Each season report contains the final ELO table plus detailed race-by-race analysis showing how each driver’s ELO changed after every qualifying session and race.
Last updated: 2025-08-01
This table shows the current Elo ratings of drivers currently on the grid for the 2025 season. Some drivers may have peaked earlier in their careers, so this is not a comprehensive list of the best drivers of all time.
For the all-time best drivers, see: Best Qualifying Elo • Best Race Elo • Best Global Elo
The Global Elo combines qualifying (30%) and race (70%) Elo changes using a weighted calculation to provide a comprehensive driver rating.
Rank | Driver | Constructor | Qualifying Elo | Race Elo | Global Elo |
---|---|---|---|---|---|
1 | Red Bull | 1963 ▲ +2 | 2045 ▲ +84 | 2021 ▲ +60 | |
2 | ![]() |
Mercedes | 1953 ▲ +103 | 1872 ▲ +22 | 1893 ▲ +43 |
3 | Williams | 1783 ▼ -11 | 1843 ▲ +49 | 1828 ▲ +34 | |
4 | Ferrari | 1738 ▲ +93 | 1773 ▲ +128 | 1762 ▲ +117 | |
5 | Aston Martin | 1767 ▼ -3 | 1711 ▼ -59 | 1727 ▼ -43 | |
6 | Alpine F1 Team | 1709 ▲ +84 | 1677 ▲ +52 | 1687 ▲ +62 | |
7 | ![]() |
McLaren | 1703 ▼ -38 | 1620 ▼ -121 | 1645 ▼ -96 |
8 | McLaren | 1675 ▲ +151 | 1597 ▲ +73 | 1621 ▲ +97 | |
9 | ![]() |
Ferrari | 1657 ▼ -76 | 1594 ▼ -139 | 1616 ▼ -117 |
10 | Williams | 1667 ▲ +51 | 1543 ▼ -73 | 1582 ▼ -34 | |
11 | Haas F1 Team | 1588 ▲ +36 | 1555 ▲ +3 | 1563 ▲ +11 | |
12 | Sauber | 1599 ▲ +99 | 1527 ▲ +27 | 1550 ▲ +50 | |
13 | RB F1 Team | 1570 ▲ +70 | 1536 ▲ +36 | 1545 ▲ +45 | |
14 | RB F1 Team | 1555 ▼ -79 | 1530 ▼ -104 | 1539 ▼ -95 | |
15 | ![]() |
Haas F1 Team | 1521 ▼ -16 | 1528 ▼ -9 | 1526 ▼ -11 |
16 | Sauber | 1475 ▼ -75 | 1513 ▼ -37 | 1500 ▼ -50 | |
17 | Aston Martin | 1398 ▼ -49 | 1530 ▲ +83 | 1490 ▲ +43 | |
18 | Alpine F1 Team | 1427 ▼ -87 | 1502 ▼ -12 | 1480 ▼ -34 | |
19 | Mercedes | 1501 ▲ +1 | 1438 ▼ -62 | 1457 ▼ -43 | |
20 | Alpine F1 Team | 1477 ↔ 0 | 1436 ▼ -41 | 1449 ▼ -28 | |
21 | Red Bull | 1328 ▼ -93 | 1446 ▲ +25 | 1412 ▼ -9 |
Based on peak Race Elo ratings (race finishing positions vs teammates) • See complete list here
Seasons represented: 1958 (F1.com) • 1965 (F1.com) • 1968 (F1.com) • 1976 (F1.com) • 1987 (F1.com) • 1990 (F1.com) • 1991 (F1.com) • 1992 (F1.com) • 1994 (F1.com) • 1997 (F1.com) • 1998 (F1.com) • 1999 (F1.com) • 2001 (F1.com) • 2005 (F1.com) • 2010 (F1.com) • 2013 (F1.com) • 2014 (F1.com) • 2015 (F1.com) • 2016 (F1.com) • 2022 (F1.com) • 2023 (F1.com) • 2024 (F1.com) • 2025 (F1.com)
Based on peak Qualifying Elo ratings (qualifying positions vs teammates) • See complete list here
Seasons represented: 1965 (F1.com) • 1967 (F1.com) • 1968 (F1.com) • 1970 (F1.com) • 1973 (F1.com) • 1974 (F1.com) • 1978 (F1.com) • 1982 (F1.com) • 1983 (F1.com) • 1985 (F1.com) • 1989 (F1.com) • 1990 (F1.com) • 1991 (F1.com) • 1993 (F1.com) • 1996 (F1.com) • 1998 (F1.com) • 2001 (F1.com) • 2005 (F1.com) • 2007 (F1.com) • 2008 (F1.com) • 2009 (F1.com) • 2011 (F1.com) • 2014 (F1.com) • 2021 (F1.com) • 2025 (F1.com)
Based on peak Global Elo ratings (30% qualifying + 70% race performance vs teammates) • See complete list here
Seasons represented: 1958 (F1.com) • 1965 (F1.com) • 1968 (F1.com) • 1970 (F1.com) • 1972 (F1.com) • 1975 (F1.com) • 1984 (F1.com) • 1986 (F1.com) • 1987 (F1.com) • 1991 (F1.com) • 1992 (F1.com) • 1994 (F1.com) • 1996 (F1.com) • 1998 (F1.com) • 2000 (F1.com) • 2001 (F1.com) • 2002 (F1.com) • 2008 (F1.com) • 2010 (F1.com) • 2012 (F1.com) • 2013 (F1.com) • 2014 (F1.com) • 2016 (F1.com) • 2018 (F1.com) • 2025 (F1.com)
Based on peak Elo ratings achieved during their F1 careers. Last updated: 2025-08-01
The Elo calculation follows the classic chess Elo formula, comparing each driver directly with their teammate(s) for each race weekend. Key rules:
data/YYYY-race-results.json
files (fetched from Ergast API)The standard chess Elo rating system is used with the following parameters:
1500
points (or carried over from previous season)64
(determines rating change magnitude)E
= 1
/ (1
+ 10
^((opponent_elo
- player_elo
) / 400
))new_elo
= old_elo
+ K
× (actual_score
- expected_score
)Each race weekend, teammates are compared head-to-head in three categories:
Compares grid positions between teammates.
Example: Charles Leclerc (1600
Elo) vs Lewis Hamilton (1500
Elo) - Ferrari teammates
P3
, Hamilton qualifies P5
1/(1+10^((1500-1600)/400))
= 0.64
1
1600 + 64 × (1 - 0.64)
= 1623
1500 + 64 × (0 - 0.36)
= 1477
Compares finishing positions between teammates.
Example: George Russell (1550
Elo) vs Andrea Kimi Antonelli (1450
Elo) - Mercedes teammates
P2
, Antonelli finishes P4
1/(1+10^((1450-1550)/400))
= 0.641
1550 + 64 × (1 - 0.64)
= 15731450 + 64 × (0 - 0.36)
= 1427Combines 30%
of qualifying and 70%
of race Elo changes with weighted calculation.
Example: Max Verstappen (1700
Elo) vs Yuki Tsunoda (1600
Elo) - Red Bull teammates
P1
, Tsunoda P3
(Verstappen wins)
1/(1+10^((1600-1700)/400))
= 0.6464 × (1 - 0.64)
= +2364 × (0 - 0.36)
= -23P2
, Tsunoda P1
(Tsunoda wins)
1/(1+10^((1600-1700)/400))
= 0.6464 × (0 - 0.64)
= -4164 × (1 - 0.36)
= +4130%
qualifying + 70%
race):
(23 × 0.3) + (-41 × 0.7) = 6.9 - 28.7
= -22(-23 × 0.3) + (41 × 0.7) = -6.9 + 28.7
= +221700 + (-22)
= 1678
1600 + 22
= 1622
⚡ Built with javascript · Data from Ergast API · Powered by GitHub Pages