2025 Bahrain Grand Prix

Grand Prix Race
April 13, 2025

Changelog

×

Version 1.0.2 Minor Update

October 23, 2025

Frontend

  • [Improved] Misc styling changes.
  • [Improved] About page explaining how calculations are made.

Algorithm

  • No changes.

Version 1.0.1 Minor Update

October 06, 2025

Frontend

  • [Added] Country flags for drivers & constructors.
  • [Added] About button in menu.
  • [Added] Changelog button in menu.
  • [Added] Displaying total calculations on homepage footer, and per-race calculations count on race results pages.
  • [Improved] Event search menu design.
  • [Improved] Hamburger menu design.
  • [Fixed] Removed empty sprint qualifying & sprint shootout from search results.

Algorithm

  • [Added] Historical weighting to team performance for stability.
  • [Added] Raw vs. modified ELO logging for auditing.
  • [Fixed] Enforced zero-cap on DNF ELO changes to prevent positive gains.

Version 1.0.0 Initial Release

October 02, 2025

  • Initial release with driver rankings and race results.
๐Ÿ“ˆ
DRIVER OF THE DAY
Pierre GASLY
Pierre GASLY
Position: 7
+20.8
๐Ÿ“‰
BIGGEST DROP
Fernando ALONSO
Fernando ALONSO
Position: 15
-11.2
Pos Driver Team Rating Change New Rating Modifiers
1
Oscar PIASTRI ๐Ÿ‡ฆ๐Ÿ‡บ Oscar PIASTRI
๐Ÿ‡ฌ๐Ÿ‡ง McLaren +9.6 1912
Perf Weight +13%Reliability +3%Team Exp +14%Podium Bonus
2
George RUSSELL ๐Ÿ‡ฌ๐Ÿ‡ง George RUSSELL
๐Ÿ‡ฉ๐Ÿ‡ช Mercedes +10.8 1938
Perf Weight +13%Reliability +3%Team Exp +40%Podium Bonus
3
Lando NORRIS ๐Ÿ‡ฌ๐Ÿ‡ง Lando NORRIS
๐Ÿ‡ฌ๐Ÿ‡ง McLaren +5.1 2001
Perf Weight +13%Reliability +3%Team Exp -14%Podium Bonus
4
Charles LECLERC ๐Ÿ‡ฒ๐Ÿ‡จ Charles LECLERC
๐Ÿ‡ฎ๐Ÿ‡น Ferrari +5.8 1991
Perf Weight +13%Reliability +3%Team Exp +9%Points Finish
5
Lewis HAMILTON ๐Ÿ‡ฌ๐Ÿ‡ง Lewis HAMILTON
๐Ÿ‡ฎ๐Ÿ‡น Ferrari +5.9 1874
Perf Weight +13%Reliability +3%Team Exp -9%Points Finish
6
Max VERSTAPPEN ๐Ÿ‡ณ๐Ÿ‡ฑ Max VERSTAPPEN
๐Ÿ‡ฆ๐Ÿ‡น Red Bull Racing +0.2 2083
Perf Weight +13%Reliability +3%Team Exp +32%Points Finish
7
Pierre GASLY ๐Ÿ‡ซ๐Ÿ‡ท Pierre GASLY
๐Ÿ‡ซ๐Ÿ‡ท Alpine +20.8 1688
Perf Weight +13%Reliability +3%Team Exp +40%Points Finish
8
Esteban OCON ๐Ÿ‡ซ๐Ÿ‡ท Esteban OCON
๐Ÿ‡บ๐Ÿ‡ธ Haas F1 Team +10.3 1641
Perf Weight +13%Reliability +3%Team Exp +23%Points Finish
9
Yuki TSUNODA ๐Ÿ‡ฏ๐Ÿ‡ต Yuki TSUNODA
๐Ÿ‡ฆ๐Ÿ‡น Red Bull Racing +5.8 1524
Perf Weight +13%Reliability +3%Team Exp -32%Points Finish
10
Oliver BEARMAN ๐Ÿ‡ฌ๐Ÿ‡ง Oliver BEARMAN
๐Ÿ‡บ๐Ÿ‡ธ Haas F1 Team +5.6 1523
Perf Weight +13%Reliability +3%Team Exp -23%Points Finish
11
Kimi ANTONELLI ๐Ÿ‡ฎ๐Ÿ‡น Kimi ANTONELLI
๐Ÿ‡ฉ๐Ÿ‡ช Mercedes +0.1 1564
Perf Weight +13%Reliability +3%Team Exp -40%Finish Bonus
12
Alexander ALBON ๐Ÿ‡น๐Ÿ‡ญ Alexander ALBON
๐Ÿ‡ฌ๐Ÿ‡ง Williams -2.0 1629
Perf Weight +13%Reliability +3%Finish Bonus
13
Isack HADJAR ๐Ÿ‡ซ๐Ÿ‡ท Isack HADJAR
๐Ÿ‡ฎ๐Ÿ‡น Racing Bulls +5.2 1545
Perf Weight +13%Reliability +3%Team Exp +37%Finish Bonus
14
Jack DOOHAN ๐Ÿ‡ฆ๐Ÿ‡บ Jack DOOHAN
๐Ÿ‡ซ๐Ÿ‡ท Alpine -1.5 1485
Perf Weight +13%Reliability +3%Team Exp -40%Finish Bonus
15
Fernando ALONSO ๐Ÿ‡ช๐Ÿ‡ธ Fernando ALONSO
๐Ÿ‡ฌ๐Ÿ‡ง Aston Martin -11.2 1671
Perf Weight +13%Reliability +3%Team Exp +26%Finish Bonus
16
Liam LAWSON ๐Ÿ‡ณ๐Ÿ‡ฟ Liam LAWSON
๐Ÿ‡ฎ๐Ÿ‡น Racing Bulls -4.0 1499
Perf Weight +13%Reliability +3%Team Exp -37%Finish Bonus
17
Lance STROLL ๐Ÿ‡จ๐Ÿ‡ฆ Lance STROLL
๐Ÿ‡ฌ๐Ÿ‡ง Aston Martin -7.9 1611
Perf Weight +13%Reliability +3%Team Exp -26%Finish Bonus
18
Gabriel BORTOLETO ๐Ÿ‡ง๐Ÿ‡ท Gabriel BORTOLETO
๐Ÿ‡จ๐Ÿ‡ญ Kick Sauber -7.1 1475
Perf Weight +13%Reliability +3%Finish Bonus
DNF
Carlos SAINZ ๐Ÿ‡ช๐Ÿ‡ธ Carlos SAINZ
๐Ÿ‡ฌ๐Ÿ‡ง Williams -6.0 1955
Perf Weight +13%Reliability -21%Team Exp -20%DNF Penalty45 laps

Event Search

×

About DRS

×

Dynamic Rating System (DRS)

DRS is an ELO-inspired rating engine for motorsports racing. It measures how far a driver exceeds or falls short of expectations in every race โ€” not just who wins, but how much better (or worse) they did than their car, form, and rivals suggest they should have.

1. Expected Performance

For every driver in the race, we calculate their expected win probability against every other driver using the classic ELO formula:

Expected = 1 / (1 + 10(OpponentElo - MyElo)/400)

Then average all those expected scores โ†’ this is what the driver โ€œshouldโ€ have achieved based purely on current skill rating.

In Simple Terms: โ€œIf Max has 2000 Elo and Zhou has 1400, Max is expected to beat Zhou ~91% of the time. We do this for every pair in the race and average it. Thatโ€™s the bar the driver has to clear.โ€

2. Actual Performance

Turns finishing position into a 0โ€“1 score:

  • Normalized = (total drivers - position) / (total - 1) โ†’ P1 = 1.0, last = 0.0
  • Score = Normalized^1.2 (slightly rewards higher finishes more)
  • Points bonus: P1โ€“P10 get up to +0.3 extra
  • Teammate beat: +0.10 (backmarker teams get +0.05 extra)
  • Finish multiplier: ร—1.05 for finishing
  • DNF: 0.1 + (laps completed / 60) ร— 0.3 ร— team reliability factor
In Simple Terms: โ€œP1 isnโ€™t just โ€˜1stโ€™, itโ€™s a near-perfect score. Beating your teammate? Extra credit. Crashing out on lap 1? Barely any points. Finishing lap 50 of 60? You get partial credit โ€” not zero.โ€

3. Performance Difference

Diff = Actual Score โ€“ Expected Score

Positive = outperformed expectations. Negative = underperformed.

In Simple Terms: โ€œDid the driver do better than their rating said they would? Thatโ€™s the gap we care about.โ€

4. Dynamic K-Factor (Learning Rate)

Base = 28. Then adjusted:

  • High Elo (>1900) โ†’ ร—0.7 (slow learning)
  • Low Elo (<1400) โ†’ ร—1.4 (fast learning)
  • Podium โ†’ ร—1.4 | P4โ€“P10 โ†’ ร—1.2 | Back of grid โ†’ ร—1.1
  • Smaller field โ†’ lower K | Tighter competition โ†’ higher K

Final K clamped between 15 and 45.

In Simple Terms: โ€œRookies and backmarkers change rating faster. A podium in a chaotic race? Big swing. A veteran cruising to P8? Small tweak.โ€

5. Modifiers

  • Race Weight (1.0โ€“1.5): Bigger fields, closer Elo spread, more top drivers โ†’ more important race โ†’ bigger Elo swings.
  • Reliability Factor: DNF โ†’ ~0.7โ€“0.9 (less penalty if car is unreliable or many laps done). Finish โ†’ ร—1.03.
  • Team Expectation: Did you beat your teamโ€™s average? Sigmoid curve gives 0.6โ€“1.4ร— boost/penalty.
In Simple Terms: โ€œA DNF in a fragile car hurts less. Beating your teammate when both cars are slow? Thatโ€™s huge. Crashing a bulletproof Red Bull? Ouch.โ€

6. Intelligent Capping

  • Standard: ยฑ25 Elo
  • Backmarker upside โ†’ up to +30, downside only -15
  • DNF โ†’ no positive gain
  • Exceptional: (e.g. backmarker in P4) โ†’ up to +40
  • Catastrophic: (e.g. 1950 Elo driver P17) โ†’ down to -30
In Simple Terms: โ€œNo one jumps +100 for one miracle. But a Haas in the points? Thatโ€™s worth celebrating. A Ferrari in the wall? That stings โ€” but not endlessly.โ€

Full Calculation Flow (per driver)

  1. Build team strength (current + 60% historical)
  2. Expected = average win-probability vs all others
  3. Actual = position โ†’ score + bonuses
  4. Diff = Actual โ€“ Expected
  5. Raw Change = K ร— Diff
  6. Apply: Race Weight ร— Reliability ร— Team Expectation
  7. Cap intelligently โ†’ Final Elo change
In Simple Terms: โ€œItโ€™s not just โ€˜you finished P5โ€™. Itโ€™s: โ€˜You were expected to be P12 in that car. You beat your teammate. The car usually breaks. You finished. Hereโ€™s +32 Elo.โ€™โ€

Examples

Exceptional: Backmarker P4

Expected: 0.15 โ†’ Actual: 0.78 โ†’ Diff: +0.63 โ†’ K: 38 โ†’ Raw: +24 โ†’ Exceptional cap โ†’ +38 Elo

Catastrophic: Top driver P17

Expected: 0.82 โ†’ Actual: 0.12 โ†’ Diff: -0.70 โ†’ K: 22 โ†’ Raw: -15 โ†’ Catastrophic โ†’ -28 Elo

DNF with 42/66 laps

Actual: ~0.29 โ†’ Expected: 0.55 โ†’ Diff: -0.26 โ†’ K: 30 โ†’ Reliability: 0.84 โ†’ Final: -6 Elo

The Idea: Reward drivers for punching above their weight. Penalize underperformance โ€” but fairly, with context. The system learns and self-corrects over time.