What is the probability Harris wins? Building a Statistical Model.
By David Gros. Updated: (first published )

After Joe Biden made the historic decision to exit the presidential race, the race entered a new exciting time with lots of uncertain questions. In this article we'll try to see just how uncertain we are, and build a probabilistic model of whether Kamala Harris will win.
There are lots of online election forecasts (e.g., from Silver et al., Morris et al., Gelman et al., among others). So why build another one? In a previous article I created an election model to help understand if Biden should drop out (focusing on Gretchen Whitmer as a replacement). That had a motivation and rhetorical purpose. I partially made a version for Harris, but didn't publish before Biden dropped out. So while this Harris model is now mostly recreational, it has some potential contributions for those interested in election modeling:
- Transparency - Each part tries to include links to corresponding source code
- Analysis and visualization of the amount of available polling (Section 1.2). This is to model the potentially limited initial Harris polling.
- Alternative approach/presentation of errors and poll movement (Section 2)
- Timeliness/impatience - At time of writing, prominent modelers like FiveThirtyEight, Silver, and the Economist have/had not released a version for Harris yet. This gives one initial estimate.
For those just looking for a number, here's jumping ahead for the top-line:
This estimate should automatically update several times a day with the newest polling data. For reference, here's archived past versions.
Jul | Aug | Sep | Oct | Nov | |||||||||||
21π΄π» | 28 42% | 4 49% | 11 53% | 18 55% | 25 56% | 1 58% | 8 57% | 15 57% | 22 | 29 | 6 | 13 | 20 | 27 | 3 |
22 | 29 43% | 5 51% | 12 55% | 19π΄π 56% | 26 56% | 2 58% | 9 59% | 16 57% | 23 | 30 | 7 | 14 | 21 | 28 | 4 |
23 | 30 47% | 6πVP 51% | 13 55% | 20π΄π 56% | 27 56% | 3 57% | 10π¬ 58% | 17 58% | 24 | 1 | 8 | 15 | 22 | 29 | 5π³οΈ |
24 | 31 49% | 7 50% | 14 55% | 21π΄π 56% | 28 57% | 4 57% | 11 58% | 18 60% | 25 | 2 | 9 | 16 | 23 | 30 | |
25 | 1 49% | 8 51% | 15 55% | 22π΄π 56% | 29 59% | 5 58% | 12 58% | 19 61% | 26 | 3 | 10 | 17 | 24 | 31 | |
26 44% | 2 50% | 9 50% | 16 54% | 23 57% | 30 58% | 6 58% | 13 58% | 20 | 27 | 4 | 11 | 18 | 25 | 1 | |
27 44% | 3 49% | 10 53% | 17 55% | 24 56% | 31 58% | 7 58% | 14 58% | 21 | 28 | 5 | 12 | 19 | 26 | 2 |
We'll go through each of the steps to reach this estimate. The general approach follows that of other polls-based models. We create an average of polls in each swing state, estimate the expected polling miss, and then estimate how polls might move. Then we run thousands of random simulationsto get a fraction
where each candidate wins.
Our modeling focuses on the 8 swing states that are most likely to decide the election (ie, be the "tipping point").
Where are Polls Today
Gathering Data
The first step is gathering polling data (sourced via FiveThirtyEight).
Not all pollsters are equal, with some pollsters having a better track record. Thus, we weight each poll. Our weighting is intended to be scaled where 1.0 is the value of a poll from a top-rated pollster (eg, Siena/NYT, Emerson College, Marquette University, etc.) that interviewed their sample yesterday or sooner.
Less reliable/transparent pollsters are weighted as some fraction of 1.0. Additionally, older polls are weighted lessWeight decays with an approximate half-life of 9 days. We use between the start and end date, and wait 1.5 days to start decay.. Polls before Biden dropped out carry ΒΌ weight. This function is only a heuristic estimate (see codefor exact definition).
If a pollster reports multiple numbers (eg, with or without RFK Jr., registered voters or likely voters, etc), we use the version with the largest sum covered by the Democrat and Republican.
Weight | Pollster (rating) | Dates | Harris: Trump | Harris Share | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0.91 | YouGov (3.0) | 09/15-49% : 45% | 52.1 | 0.82 | Beacon/Shaw (2.8) | 09/13- | 50% : 48% | 51.0 | 0.78 | Siena/NYT (3.0) | 09/11- | 47% : 47% | 50.0 | 0.67 | YouGov (3.0) | 09/11- | 50% : 46% | 52.1 | 0.65 | Data for Progress (2.6) | 09/12- | 50% : 46% | 52.1 | 0.64 | Ipsos (2.8) | 09/11- | 51% : 47% | 52.0 | 0.61 | Ipsos (2.8) | 09/11- | 47% : 42% | 52.8 | 0.59 | AtlasIntel (2.7) | 09/11- | 48% : 51% | 48.5 | 0.53 | YouGov (3.0) | 09/08- | 45% : 45% | 50.0 | 0.39 | Angus Reid (2.0) | 09/13- | 49% : 45% | 52.1 | 0.39 | RMG Research (2.3) | 09/09- | 51% : 47% | 52.0 | 0.38 | Siena/NYT (3.0) | 09/03- | 47% : 48% | 49.5 | 0.37 | Morning Consult (1.9) | 09/13- | 51% : 45% | 53.1 | 0.34 | Marist (2.9) | 09/03- | 49% : 48% | 50.5 | 0.34 | Emerson (2.9) | 09/03- | 51% : 48% | 51.9 | 0.34 | Morning Consult (1.9) | 09/12- | 50% : 45% | 52.6 | 0.32 | Morning Consult (1.9) | 09/11- | 50% : 45% | 52.6 | 0.31 | YouGov (3.0) | 09/01- | 47% : 45% | 51.1 | 0.30 | TIPP (1.8) | 09/11- | 47% : 43% | 52.2 | 0.30 | Outward Intelligence (?) | 09/15- | 53% : 47% | 52.9 | 0.29 | Morning Consult (1.9) | 09/10- | 50% : 45% | 52.6 | 0.29 | Morning Consult (1.9) | 09/11- | 50% : 45% | 52.6 | 0.27 | Leger (2.0) | 09/10- | 47% : 44% | 51.6 | 0.27 | Morning Consult (1.9) | 09/09- | 50% : 46% | 52.1 | 0.27 | Florida Atlantic University/Mainstreet Research (?) | 09/16- | 49% : 45% | 52.1 | 0.27 | Morning Consult (1.9) | 09/10- | 50% : 46% | 52.1 | 0.26 | HarrisX (1.5) | 09/14- | 51% : 49% | 51.0 | 0.25 | Morning Consult (1.9) | 09/08- | 50% : 46% | 52.1 | 0.25 | Cygnal (2.1) | 09/03- | 49% : 47% | 51.1 | 0.25 | ActiVote (?) | 09/11- | 53% : 47% | 52.7 | 0.24 | J.L. Partners (1.6) | 09/11- | 43% : 42% | 50.6 | 0.24 | RMG Research (2.3) | 09/03- | 50% : 48% | 51.0 | 0.23 | Morning Consult (1.9) | 09/07- | 49% : 46% | 51.6 | 0.22 | Redfield & Wilton Strategies (1.8) | 09/12- | 44% : 42% | 51.2 | 0.22 | Morning Consult (1.9) | 09/06- | 49% : 46% | 51.6 | 0.21 | HarrisX (1.5) | 09/11- | 52% : 48% | 52.0 | 0.20 | Kaiser Family Foundation (2.5) | 08/26- | 48% : 47% | 50.5 | 0.20 | Morning Consult (1.9) | 09/05- | 49% : 46% | 51.6 | 0.19 | Suffolk (2.9) | 08/25- | 48% : 43% | 52.4 | 0.19 | Pew (2.5) | 08/26- | 49% : 49% | 50.0 | 0.19 | Morning Consult (1.9) | 09/04- | 49% : 46% | 51.6 | 0.18 | YouGov (3.0) | 08/25- | 47% : 45% | 51.1 | 0.17 | Morning Consult (1.9) | 09/03- | 49% : 46% | 51.6 | 0.16 | Ipsos (2.8) | 08/21- | 45% : 41% | 52.3 | 0.16 | SoCal Strategies (?) | 09/10- | 48% : 45% | 51.6 | 0.16 | YouGov (3.0) | 08/22- | 47% : 46% | 50.5 | 0.16 | Morning Consult (1.9) | 09/02- | 49% : 46% | 51.6 | 0.15 | Morning Consult (1.9) | 09/01- | 50% : 46% | 52.1 | 0.15 | Quinnipiac (2.8) | 08/23- | 49% : 48% | 50.5 | 0.14 | Echelon Insights (2.7) | 08/23- | 48% : 49% | 49.5 | 0.14 | Morning Consult (1.9) | 08/31- | 50% : 45% | 52.6 | 0.14 | Ipsos (2.8) | 08/23- | 52% : 46% | 53.1 | 0.13 | ActiVote (?) | 09/03- | 51% : 49% | 51.2 | 0.13 | Big Village (1.2) | 09/11- | 50% : 43% | 53.8 | 0.13 | RMG Research (2.3) | 08/26- | 51% : 48% | 51.5 | 0.13 | Morning Consult (1.9) | 08/30- | 50% : 45% | 52.6 | 0.12 | SurveyMonkey (2.0) | 08/26- | 44% : 41% | 51.8 | 0.12 | Morning Consult (1.9) | 08/29- | 50% : 46% | 52.1 | 0.12 | HarrisX/Harris Poll (1.5) | 09/04- | 50% : 50% | 50.0 | 0.11 | Morning Consult (1.9) | 08/28- | 49% : 46% | 51.6 | 0.10 | Outward Intelligence (?) | 09/01- | 52% : 48% | 52.0 | 0.10 | YouGov (3.0) | 08/17- | 46% : 43% | 51.7 | 0.10 | TIPP (1.8) | 08/28- | 48% : 45% | 51.6 | 0.10 | Morning Consult (1.9) | 08/27- | 49% : 46% | 51.6 | 0.09 | Morning Consult (1.9) | 08/26- | 49% : 46% | 51.6 | 0.09 | Kaplan Strategies (2.0) | 08/24- | 52% : 45% | 53.6 | 0.09 | Morning Consult (1.9) | 08/25- | 49% : 45% | 52.1 | 0.08 | Fairleigh Dickinson (2.6) | 08/17- | 50% : 43% | 53.8 | 0.08 | Big Village (1.2) | 09/06- | 49% : 45% | 52.4 | 0.08 | Morning Consult (1.9) | 08/24- | 50% : 45% | 52.6 | 0.08 | RMG Research (2.3) | 08/19- | 49% : 49% | 50.0 | 0.08 | YouGov (3.0) | 08/14- | 51% : 48% | 51.5 | 0.08 | Redfield & Wilton Strategies (1.8) | 08/29- | 44% : 42% | 51.2 | 0.07 | ActiVote (?) | 08/25- | 51% : 49% | 50.8 | 0.07 | Morning Consult (1.9) | 08/23- | 50% : 45% | 52.6 | 0.07 | Leger (2.0) | 08/23- | 50% : 46% | 52.1 | 0.07 | Morning Consult (1.9) | 08/22- | 50% : 45% | 52.6 | 0.07 | Emerson (2.9) | 08/12- | 52% : 48% | 52.3 | 0.06 | Clarity (1.6) | 08/23- | 51% : 45% | 53.1 | 0.06 | Morning Consult (1.9) | 08/21- | 50% : 45% | 52.6 | 0.06 | YouGov (3.0) | 08/11- | 46% : 44% | 51.1 | 0.06 | Angus Reid (2.0) | 08/19- | 47% : 42% | 52.8 | 0.06 | |