Alberta's electoral map · An interactive explainer

Same voters, different winners

Alberta is redrawing the lines that decide who represents you. We took every ballot from the 2023 election and counted it under the proposed new map, under the map it replaced, and under thousands of maps drawn at random.

Scroll to begin, or look up your own riding
100 NDP voters100 UCP votersRiding boundary

This is Lethbridge. Each dot is about 100 people who voted in Alberta's 2023 election, placed in their own neighbourhood.

Orange dots voted NDP. Blue dots voted UCP.

The city is split almost exactly down the middle: about half and half.

Every ten years or so, Alberta redraws its ridings. An independent commission proposed splitting Lethbridge into two ridings.

One leans NDP and the other is a toss-up.

The government set that map aside, and an advisory panel drew a new one.

The city is now cut into four ridings. One stays inside Lethbridge. The other three reach as far as 150 km out into the surrounding farm country.

In those three ridings, Lethbridge's evenly split voters are joined by many more rural voters, who vote heavily UCP.

The result: one NDP-leaning seat and three safe UCP seats.

Nobody changed their vote. Only the lines moved.

Splitting a mid-sized city happens fairly often, so is this unusual? The next section covers how district lines affect results.

1How lines decide elections

Imagine a town of 25 voters, split into 5 ridings of 5 voters each. Party Purple has 15 voters (60%) and Party Green has 10 (40%). Each riding elects whoever wins most of its 5 voters.

The 25 voters stay in place in all three versions; only the district lines change. The parties are generic because either side can be packed or cracked.

Packing

Squeeze as many of one side's voters as possible into a few ridings they win by huge margins. Their extra votes in those ridings change nothing.

Cracking

Spread a group's voters thinly across several ridings, so they fall short everywhere. Lethbridge's city voters in the three new rural ridings are an example.

Because voters live in clusters, every map packs and cracks somebody to some degree. A more useful test is whether a map does it more than usual, and consistently to one side. One way to check is to have a computer draw thousands of maps without any voting data.

2What would a neutral line-drawer do?

We asked a computer to split the same five-riding area around Lethbridge in tens of thousands of random ways. Every map follows the basic rules: five ridings, each in one connected piece, each within 25% of the average population. The computer has no voting data when it draws them.

NDP seats won (2023 votes)

Random maps from a standard "recombination" sampler, which repeatedly merges two neighbouring ridings and re-splits them at random. Black lines are riding boundaries. Each riding is coloured by its 2023 winner, darker where the win is larger. The "keep Lethbridge whole" version makes the sampler reluctant to cut the city boundary, closer to how real commissions work.
What the random maps say. If the lines can go anywhere, splitting Lethbridge is common, and the panel's result (one NDP seat on the 2023 vote) is the most typical outcome. Random lines often split cities, while commissions usually try to follow municipal boundaries. Among random maps that keep Lethbridge whole, most give the NDP two seats on the 2023 vote (58%), and nearly all do in a close election (96%). By that standard the panel's map is unusual; by the looser one it is typical.

3Now the whole province

We rebuilt all 91 proposed ridings from the official report and ran every 2023 ballot through them. Move the slider to try a different election result and see which ridings change hands and how many seats each map gives each party.

NDP by 20+NDP by lessUCP by lessUCP by 20+
Calgary
Edmonton
The slider shifts every riding by the same amount (a "uniform swing"). Real elections move unevenly, so this is useful for comparing maps but is no forecast. Hover a riding for details, or click it to open its page.
Find your riding
Type a riding, city, town, county or First Nation. Every riding has its own page with its map, where its people come from, and how it would have voted.

Or browse all 91 ridings. Communities split between ridings show the share of residents in each.

At a 50/50 tie, the Commission's map gives the NDP a majority and the panel's map splits the legislature almost evenly. A handful of ridings account for the difference.

4Five areas that changed the most

Each map below fades between the Commission's lines and the panel's, coloured by how the 2023 vote would have gone. Most of Alberta's 91 ridings barely changed between the two maps.

Put together, the new map gives the UCP about three more seats in a close election than the Commission's map did.

5What it adds up to

Seats under each map, same 2023 ballots
Top: the actual 2023 result. Bottom: if the province had split 50/50
NDP seatsUCP seatsBlack tick: seats needed for a majority
The Commission's majority map was signed by its chair and the two NDP-nominated commissioners. Its minority map was signed by the two UCP-nominated commissioners. The panel's map is the one now before the Legislature.
Where the three seats come from, at a tied vote
Two were directed by the Legislature; one was the panel's own choice
The Legislature's Motion 37 told the panel to restore Lac Ste. Anne and Rocky Mountain House-Sundre, following the Commission chair's own alternative recommendation. Both happen to be in areas that vote strongly UCP. Splitting Lethbridge four ways was the panel's decision.
The vote share each party needs for a majority
UCP seat share at every possible province-wide result. Hover to compare
Commission majorityAdvisory PanelCommission minority
The UCP reaches a majority at 53.75% of the two-party vote on the Commission majority map, 51.25% on the panel map and 49.25% on the Commission minority map. In 2023 it won 54.4%.
How much does it matter? On 2023's actual result the difference is small: 50 UCP seats out of 91, against 48 of 89. On the real vote the panel map's efficiency gap is −2.7%, slightly favouring the NDP, the same as the Commission's map. The difference appears only when the result is close, between about 51% and 54% UCP, which is where a competitive Alberta election would land.

6Against tens of thousands of random provinces

An independent audit had already generated random valid maps for all of Alberta. Each falling dot below is about 50 of those maps, landing on the number of seats the UCP would win in a tied election.

47,500 random 91-riding maps from the open-source audit, scored on election-day ballots (the basis it uses). Commission maps (89 seats) are scaled to 91. Random maps don't model the extra weight the law allows for rural areas, so every real Alberta map leans somewhat UCP compared with them. The comparison shows how far each map leans.

What it shows

In a tied election the panel map gives the UCP more seats than 99% of random maps. The Commission majority map falls in the 82nd–94th percentile, and the minority map beyond the 99.9th. On other standard fairness measures (efficiency gap, mean-median, declination) the panel map is unremarkable.

Why the caution

Random maps ignore real-world considerations: communities, rivers, municipal lines, and the law's allowance for sparse rural areas. The comparison indicates direction and rough size. It says nothing about intent.

7Smaller ridings, safer seats

The law allows ridings to differ in population by up to 25%, and more in remote areas, so that a rural MLA isn't asked to cover an impossibly large area. This is usually called "effective representation". In Alberta it also has a partisan effect.

Riding size vs 2023 UCP share, all 91 proposed ridings
Further left: fewer people per MLA, so each vote counts for a bit more
CalgaryEdmontonElsewhere
Of the 18 ridings more than 5% below the average population, the UCP won 17 in 2023. Of the 33 more than 5% above average, it won 10. Correlation r = −0.56.

8How we rebuilt a map that came only as pictures

The panel's report included maps but no boundary files. A high-resolution edition held by the Legislature Library still contains each boundary as a drawing, which can be read back as geometry and fitted onto Elections Alberta's own voting areas.

The report's Lethbridge page (printed sideways)
Lethbridge riding map page from the report
The outline, fitted to the real voting areas
The outline is taken from the page, scaled to the riding area printed in the report, and rotated using the riding's own label. A search then finds the rough position, and an iterative "closest point" fit snaps it onto the voting-area lines. The animation replays the steps the fitting code took. Final median error: about 3 metres.
91 / 91
ridings rebuilt from the report's pages
99.99%
of Alberta covered, with 0.01% overlap between neighbours
87 / 87
official 2023 riding results reproduced exactly by our vote data
98,207
people in our four Lethbridge ridings. Statistics Canada counts 98,406
Full method, data and checks
  • Outlines were read from the PDF's drawing commands, one page per riding. The projection (Alberta 10TM) was confirmed from the province map's scales.
  • Votes: election-day votes were split across voting areas by population, and advance, special and mobile ballots by turnout share. The totals match Elections Alberta's official results in every riding. Voting areas cut by a new line were split by area.
  • Random maps (Lethbridge area): about 20,000 sampled maps per variant from a ReCom sampler on 300 voting areas, after burn-in. ±25% population, contiguous ridings, 2021 census population.
  • Province-wide random maps are from the open-source audit Ixby/alberta-electoral-boundaries-audit. Its sample data was read, not re-run.
  • Downloads: 91 rebuilt ridings (GeoJSON) · results by riding (CSV) · method notes · shareable animation (GIF)

9What this does and doesn't show

Quick glossary

RidingAn electoral district. Alberta's proposed map has 91, each electing one MLA.
Two-party voteUCP and NDP votes only. Together they were 97% of the 2023 vote.
Uniform swingShifting every riding's result by the same number of points to imagine a different election.
Packing / crackingConcentrating a group's voters in a few ridings, or spreading them thinly across many.
Efficiency gapThe difference in "wasted" votes between parties, as a share of all votes.
Commission vs panelThe independent Electoral Boundaries Commission proposed an 89-riding map. The Legislature set it aside and asked an advisory panel to draw 91.

About this analysis. This is an independent project with no party affiliation. It was built with the help of an AI system (Anthropic's Claude), which wrote and ran the extraction, fitting and analysis code under human direction. Every figure can be reproduced from the published inputs and the downloadable files. Corrections are welcome.

Every riding has its own page: browse all 91. An earlier, more technical version is archived at /v1.

Sources