← back to standings

Next Race Prediction

Round 6 — Monaco Grand Prix
2026-06-07 · Circuit de Monaco, Monte Carlo, Monaco
Prediction Model v1 5 Races Analyzed Client-Side Computation

Predicted Finishing Order

Composite score from current form (50%), momentum (30%), and consistency (20%)

PosDriverTeamWin %Podium %Points %Score

Win Probability

Horizontal bar chart of P(win) for each driver

Podium Probability

Stacked bars: P(1st), P(2nd), P(3rd) for the top 10 contenders

Form Indicators

Who is trending up, who is trending down, and the biggest mover

Model Explanation

How the prediction is computed

Three-Factor Weighted Model

The prediction combines three signals extracted from the current season's race results into a single composite strength score for each driver. Scores are normalized to produce probability estimates.

1. Current Form (weight = 0.50)

Points per race across all completed rounds. This is the strongest signal: drivers scoring more points per start are generally faster.

Form(d) = total_points(d) / races_entered(d)
Normalized: form_norm(d) = Form(d) / max(Form)

2. Momentum (weight = 0.30)

Linear regression slope of finishing positions across races. A negative slope (positions are decreasing, i.e., improving) gives a positive momentum score. This captures whether a driver is on an upswing or downswing.

positions = [finish_pos_r1, finish_pos_r2, ..., finish_pos_rN]
slope = linear_regression_slope(positions)
Momentum(d) = -slope (negative slope = improving)
Normalized: momentum_norm(d) = (Momentum(d) - min) / (max - min)

3. Consistency (weight = 0.20)

Inverse of the standard deviation of finishing positions. A driver who finishes in similar positions every race is more predictable and reliable.

stdev = std_deviation(finishing_positions(d))
Consistency(d) = 1 / (1 + stdev)
Normalized: consistency_norm(d) = Consistency(d) / max(Consistency)

Composite Score & Probabilities

S(d) = 0.50 * form_norm(d) + 0.30 * momentum_norm(d) + 0.20 * consistency_norm(d)
P_win(d) = S(d)^3 / sum(S(i)^3) — cubed to amplify separation
P_podium(d) = S(d)^2 / sum(S(i)^2) — squared for podium
P_points(d) = S(d) / sum(S(i)) — linear for points finish

Limitations

  • No circuit-specific data — some tracks favor different cars and driving styles.
  • No qualifying pace — grid position is a strong predictor not yet incorporated.
  • Small sample — early in the season, a single anomalous result heavily skews momentum and consistency.
  • Retirements counted as P20 — mechanical DNFs distort form and momentum unfairly.
  • No team-order effects or weather forecasts.
This model uses current season form only. With 5 races of data, predictions carry significant uncertainty. Circuit-specific effects and qualifying pace are not yet factored.