Methodology
A ranking is only as honest as the math behind it. This page documents exactly how f1·versus turns 75 years of race results into a single score per driver — and, just as importantly, what it doesn’t try to measure.
§ 1. Where the data comes from
p. 1 of 5Every number you see comes from F1DB, an open-source Formula 1 database compiled and maintained by volunteers. F1DB ships a SQLite dump containing every race, qualifying session, championship standing, and driver record from 1950 to the current season.
We sync the latest F1DB release into Cloudflare D1, run a single aggregation pass per driver per era, and serve the pre-computed table to the calculator. No live scraping, no API key, no rate limits. When F1DB updates, we re-sync — typically within a week of each race weekend.
§ 2. The nine metrics
p. 2 of 5Each driver gets a 0–100 score on nine independent dimensions. The score is min-max normalized within the selected era, so “100” means “best driver in this era” for that one metric — not best of all time. Your formula decides how heavily each dimension counts.
§ 2.1 Championships
Count of season-ending championships won (position 1 in the final standings). The purest, most-cited statistic — but also the one most distorted by car quality, so it rewards drivers who spent their careers in dominant machinery.
§ 2.2 Wins
Race wins. Counts only main-event Grand Prix results — sprint races are excluded since they have a different scoring history and only existed for a handful of recent seasons.
§ 2.3 Podiums
Top-three finishes. A softer measure than wins; rewards consistency in good machinery and shows up brightly for drivers who were perpetually second-best to a dominant teammate.
§ 2.4 Poles
Pole positions — finishing first in qualifying. The cleanest measure of one-lap pace but skewed by qualifying format changes (1950s aggregate timing, 2003 single-lap, 2006-present knockout) which we do not currently normalize for.
§ 2.5 Fastest Laps
Number of races where the driver set the fastest lap. From 2019 onward this is also worth a championship point if you finish in the top ten, which subtly changes how teams pursue it.
§ 2.6 Win Rate
Wins divided by races started. A correction for career length: it lets short, dominant careers (Fangio, Clark) sit alongside long, prolific ones (Hamilton, Schumacher) without being buried by raw totals.
§ 2.7 Teammate H2H
The fairest comparison Formula 1 offers, with the most signal per data point. For every race where two teammates both finish with a valid classified position, we compare their results and credit the higher finisher. We do this for races and for qualifying sessions separately, then average the two rates. A score of 100 means the driver beat every teammate in every comparable session — an empirically impossible bar that even the all-time greats fall short of.
§ 2.8 Longevity
Career years (last season minus first season, inclusive). Rewards drivers who stayed relevant across rule changes, team transitions, and physical decline. Heavily favored by the Longevity preset; close to zero in the Peak Performance preset.
§ 2.9 Peak Dominance
The single best three-consecutive-season window of a driver’s career, measured as the sum of their share of total championship points in those three seasons. A driver who took 25% of all points scored across a three-year run gets a high peak score. This is the metric that surfaces Vettel 2010–12, Schumacher 2002–04, Hamilton 2018–20 — eras of true dominance that get diluted in lifetime averages.
§ 3. How era normalization works
p. 3 of 5Choosing “Era Normalized” (or any specific era filter) does two things. First, the driver pool is restricted to people who actually raced in that era — Fangio doesn’t appear in the Modern ranking, Verstappen doesn’t appear in the Golden Era one.
Second, and more importantly, the min-max normalization happens within the era. A pre-1979 driver’s “wins” score isn’t being compared to Hamilton’s 100+; it’s being compared to peers who raced 8–16 times per season instead of 22+. This is the right correction for season length, championship inflation, and the general expansion of the calendar.
What it doesn’t correct for is era difficulty — grid depth, reliability, the number of cars actually capable of winning. We don’t have a clean, defensible way to quantify that without smuggling in opinion. Reasonable people disagree on whether 1955 or 1995 had a deeper field. So we don’t pretend.
§ 4. What we deliberately don't measure
p. 4 of 5Formula 1 has a lively folklore of intangibles — race craft, wet-weather skill, ability to set up a car, mental fortitude under championship pressure. None of these show up here, for a simple reason: there is no neutral dataset for them. Any number that claims to measure “race craft” is really measuring someone’s opinion of race craft, ratified by a vote or a panel or a podcast.
We chose to ship a tool that can show its work. Every metric on this page comes from a query you could write yourself against the F1DB SQLite file. If you don’t like how the score comes out, you can move the sliders and watch the order change in real time. That’s the wedge.
Things you will not find here, and the reason for each:
- § 4.1Wet-weather wins. The weather flag in F1DB is sparse and inconsistent before 1990, and “wet” is a continuum, not a binary.
- § 4.2Race craft / overtaking. Position-change data only exists reliably from the late 1990s onward, and even then it conflates driver skill with car pace and pit-stop strategy.
- § 4.3Car quality adjustment. We could attempt it (regress driver results against teammate results to back out the car), but the assumption that teammates have equal equipment is regularly false. We’d be adding noise dressed up as rigor.
- § 4.4Single-race performances. Monaco 1984. Donington 1993. Brazil 2008. These belong in the lore, not in a ranking.
§ 4.5 Indianapolis 500 (1950–1960)
The F1DB dataset lists the Indianapolis 500 as a round of the Formula 1 World Championship from 1950 to 1960. This is historically accurate but misleading: the race was contested almost entirely by American oval specialists who did not race the rest of the European F1 calendar, and the European F1 grid did not race at Indianapolis. Including these results would put drivers who never drove a Formula 1 car against Hamilton and Schumacher. So we exclude all Indianapolis 500 results from every metric, and we remove drivers whose only championship appearances were at Indianapolis. Drivers who raced in both F1 and Indy 500 (like Mario Andretti) are kept, but only their non-Indy F1 results count.
§ 5. Limitations
p. 5 of 5A ranking like this can tell you a few things and cannot tell you many others. To be explicit about both:
It can tell you who racked up the most wins, championships, pole positions, and dominant seasons — and let you weight those against each other. It can show you, objectively, that Hamilton has the highest career win total in F1 history, that Schumacher and Verstappen have the highest peak-3-year dominance, that Senna has the highest pole rate of anyone with 100+ starts.
It cannot tell you who was the most talented driver. Talent is not a recorded number. The closest we get is the Teammate H2H metric, which holds the car constant — but a teammate is themselves a variable. Verstappen’s teammate record looks one way against Pérez, another against Albon, another against Ricciardo. Choosing how to weight that against career totals is the whole point of letting you build your own formula.
It cannot tell you anything about a driver who hasn’t finished their career. Active drivers’ Longevity and Peak Dominance scores are still moving. We freeze them at “current season” for the comparison, which is the most honest option but means a 2026 Verstappen will look more dominant than a 2028 Verstappen who spent two more years polishing his Peak number in a slower car.
And it cannot settle the GOAT debate. It can give you a starting position, a quantitative bedrock to argue from. The argument itself is the point.