Who will win the 2027 French presidential election?

Bayesian poll-aggregation forecast. This is work in progress, I would love your feedback.

Who's running?

Choose among the following. On the left, you can choose to include the Green Party candidate or not, and you can choose one of the three Socialist candidates. At the center, choose Attal, Philippe, or Both. For Les Républicains, pick one or none. Only candidates polled recently enough to estimate are shown. All the "fixed" major and minor candidates (including Le Pen since she confirmed she was running) are always included. The forecast recomputes simulated results from the posterior draws.

Who wins the presidency?

Each dot is one simulated election, placed in the row of the candidate who won it — so the width of each cloud is that candidate's chance of winning. Hover a dot to see that simulation's first-round result and the runoff it produced. ()

First-round vote intention over time

Lines are the model's estimate; shaded bands are the 80% credible interval, widening toward election day. Dots are individual polls, each shown at the candidate's reported share (including alternatives not in the selected line-up).

First round in 1,000 simulated elections

Each dot is one simulated first-round result. The two candidates with the highest scores advance to the runoff, so candidates clustered near the top are fighting for the second qualifying spot.

Most likely runoff match-ups

The runoffs that occur most often across simulations. Each dot is one simulated runoff, placed by the RN candidate's second-round share and coloured by the winner; the dashed line is the 50% threshold. Hover a dot for that runoff's result.

Model: weekly random-walk aggregation of first-round polls (softmax over the candidates in each poll, with pollster house effects), chained to a Bradley–Terry runoff model. Priors for opinion drift, poll error and house effects are calibrated on the 2012, 2017, and 2022 elections. Shares are among expressed votes. Turnout and undecideds are not modelled separately. Built with R, Stan and D3.js.