Poll-level detail (the small Neighbourhood tiles) is available for Quebec, Ontario, Alberta and British Columbia. Riding colours show the winning party; paler = tighter race.
What the analysis found
- Demography predicts vote similarity far better than winners. A riding's top-10 demographic neighbours are its top-10 vote twins of the time — about random chance.
- Twin persistence is the strongest filter. Only ~a quarter of vote-twin pairs survive between elections ( overlap), yet stable pairs are far more predictable from demographics than one-election pairs.
- The signal replicates within ridings. Even between polls of the same riding — no regional confounds — poll-level demographic similarity predicts poll-level vote similarity at ~2× random in all four elections (2015–2025, QC·ON·AB·BC).
- What carries it: between ridings, rural/exurban economic structure, language and incumbency; within ridings, an affluence-and-diversity gradient (dwelling value, immigrant & visible-minority shares, income).
- Honest negatives: turnout adds nothing; open seats are not easier to read demographically; riding-level financing data has coverage artefacts.
Method in one paragraph
"Voting twins" = pairs of ridings whose six-party vote-share profiles are close
(cosine similarity). The "demographic lens" compares ridings across ~80 census
characteristics (2021 Census, 2023 Representation Order). We ask how often a riding's
demographic neighbourhood coincides with its vote neighbourhood — precision@K — against
the K/(n−1) random baseline. Full reports:
voting_twin_variables_v2.md,
voting_twin_panel.md,
voting_twin_poll_level.md.
Search for any federal riding to see its ten nearest demographic twins — and whether their actual votes agree, in 2025 and 2021.
Which variables carry the signal
Nonzero weights from the reward-driven coordinate search over the rich
census feature set (GE45, all provinces). Higher weight = the variable is more heavily
relied on when deciding which ridings are "demographically alike". Source:
voting_twin_variables_v2.md.
| Feature | Weight |
|---|
Across elections (both representation orders)
Precision@K against STABLE twins (mutual top-K neighbours in ≥2 elections). Unweighted lens.
Within ridings, at poll level
Same question one level down: do similar-looking polls inside the same riding vote alike? QC+ON+AB+BC pooled, four elections.