Where the tax bill comes from.
Calgary's 2026 property tax, computed parcel-by-parcel and mapped two ways.
We take the City’s open assessment roll, multiply every parcel by the published 2026 mill rates, and sum it back up — by community (313 neighbourhoods) and by ward (14 wards plus an “unallocated” bucket). No hand-keyed totals: if it’s on screen, it came from the roll.
The figures
2 views · computed from the open rollTax generated, by community
An interactive 3D map — each of 313 communities' tower height is the property tax (city + provincial) it generates in 2026.
Tax revenue, by ward
The 14 wards (plus an unallocated bucket), ranked — a choropleth of who pays and a sorted bar of how much.
Sources & method
primary sources · open recordThe City's open assessment roll
Every parcel's assessed value, published by the City of Calgary on Open Calgary. The roll is the input; nothing here is hand-keyed.
Parcel × mill rate, summed
Each parcel is multiplied by the published 2026 residential / non-residential mill rates, then aggregated to community and ward. The transformation travels in each artefact's derivation.
The JSON travels with the chart
Every figure carries the artefact filename it renders from. The committed JSON is the public record — re-runnable, checkable, defensible.