Gravis Marketing
Graded against the actual result across 127 races (from 221 polls, through 2020).
Head-to-head vs the VotePredictor model
The fair, apples-to-apples test: on the 125 races Gravis Marketing actually polled, how its final poll's margin compared to what the VotePredictor model predicted for those same races.
| Model | Avg miss (pts) | Called right |
|---|---|---|
| Gravis Marketing | 5.98 | 72% |
| VotePredictor | 4.16 | 82% |
VotePredictor aggregates all the pollsters, so it's expected to beat any single one on margin — that's the value of averaging. The honest comparison among forecasters is on the combined board.
Every race (125)
Each race Gravis Marketing polled, scored on its final poll — the call right before the vote — against the actual Dem−Rep result. Click a race for its full detail.
Accuracy by time to election
Lower is better. Time to election runs right (election week) to left (~2 months out).
By the numbers
| Time to election | Polls | Avg miss | vs field | Called right |
|---|---|---|---|---|
| ≤1 wk | 38 | 4.47 | +0.19 | 74% |
| 1–3 wk | 90 | 4.72 | -0.35 | 58% |
| 3–6 wk | 54 | 6.89 | +1.15 | 63% |
| 6–9 wk | 39 | 6.39 | +0.24 | 64% |
vs field is this pollster's average miss minus all pollsters' at the same lead time — green beats the field, redtrails it. Our historical polls reach ~2 months out; earlier polling isn't in the record.
Track record by cycle — getting better?
| Year | Polls | Avg miss | Lean (house effect) |
|---|---|---|---|
| 2012 | 53 | 5.6 | R+5.3 |
| 2014 | 32 | 6.8 | D+3.8 |
| 2016 | 72 | 5.1 | D+3.2 |
| 2017 | 11 | 4.7 | R+2.6 |
| 2018 | 29 | 5.3 | R+0.2 |
| 2020 | 23 | 4.6 | D+4.6 |
Do we credit a pollster for fixing its bias? Each cycle, the model re-estimates every pollster's lean from all its earlier polls (walk-forward) and subtracts it before using the poll. We tested weighting recent cycles more — it doesn't help: a pollster's lean in one cycle barely predicts the next (correlation 0.28), so the swings above are mostly noise, and averaging over more history beats chasing the latest cycle. The all-time estimate we use came out within ~0.5% of the best option.