Key probabilities from the Monte Carlo simulation
Percentage of 10,000 simulated seasons each driver wins the title
Histogram of projected season-end points totals across all simulations
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:
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:
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.