Click a riding for demographics & twins · click a poll for neighbourhood detail
The science behind the map
What the analysis found
Demography predicts vote similarity far better than winners.
A riding's top-10 demographic neighbours are also its top-10 vote twins
of the time — about
random chance.
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 — at riding
level AND at poll level, where stable twins double predictability.
The signal replicates within ridings. Between polls of the same
riding — zero regional confounds — demographic similarity predicts vote similarity at
~2× random in every election, in all four provinces.
What carries it: between ridings, rural/exurban economic structure,
language and incumbency; within ridings, an affluence-and-diversity gradient.
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 measure 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.
Which variables carry the signal
Nonzero learned weights, GE45, all provinces
(voting_twin_variables_v2.md).