← back to standings

Monte Carlo Championship Projection

10,000 simulated seasons, computed in your browser. Each simulation races the remaining 19 rounds using a Dirichlet-multinomial model calibrated to current form, then crowns a champion. The numbers below answer: who wins from here?
10,000 seasons 19 races remaining client-side JS
Click "Run Simulation" to begin.

Projection Summary

Key probabilities from the Monte Carlo simulation

Antonelli Title Probability
--
P(WDC) from current position
Most Likely Champion
--
highest win probability
Antonelli Points Range
--
5th to 95th percentile
Title Decided Early
--
P(clinched before final race)

Championship Win Probability

Percentage of 10,000 simulated seasons each driver wins the title

Antonelli Final Points Distribution

Histogram of projected season-end points totals across all simulations

Methodology

How the simulation works

Dirichlet-Multinomial Race Simulation

Each driver's "strength" is derived from their points-per-race average over the first 5 rounds. To prevent zero-point drivers from having zero probability, we add a smoothing floor:

raw_strength(i) = points_per_race(i) + 0.5
alpha(i) = raw_strength(i) × concentration

The concentration parameter (set to 2.0) controls how deterministic races are: higher values mean strength differences dominate, lower values allow more upsets. The alpha vector serves as the parameter for a Dirichlet distribution.

Sampling race results. For each of the 19 remaining races, we draw finishing positions using a sequential weighted sampling scheme that approximates a Dirichlet-multinomial draw:

For position p = 1, 2, ..., N:
  Select driver j from remaining drivers with P(j) = alpha(j) / sum(alpha_remaining)
  Remove j from pool; assign position p to j

This is equivalent to drawing from a Plackett-Luce model, which is the standard ranking extension of the multinomial-logit. The sequential draw ensures exactly one driver per finishing position.

Points allocation. Standard F1 scoring: 25-18-15-12-10-8-6-4-2-1 for positions 1 through 10. After all 19 races, the driver with the highest cumulative points (current + simulated) is crowned champion. Ties are broken by win count.

Title clinch detection. After each simulated race, we check whether any driver has mathematically clinched the championship (i.e., their lead exceeds 25 × remaining races). If so, the season is flagged as "decided early."

Implementation. The simulation runs 10,000 iterations entirely in the browser using a Mulberry32 PRNG for speed. Typical runtime is 200-400ms on modern hardware. No external libraries or network requests are used.