City Score 2025 — Canadian city rankings
343 places ranked across eight open-data pillars.
OpenStats
- Theme
- composite
- Cadence
- annual
- Geography unit
- csd
- How we publish
- Full OpenStats table
How the City Score works
Each placement is scored from 0 to 1 inside its edition. When rank 1 means best, first place scores near 100%. When rank 1 means worst (for example highest radon or hardest water), that ordering is flipped so a healthier result still scores higher. Series in the same pillar (for example water hardness and lead) are averaged first. A city's OpenStats City Score is then the equal-weight mean across all eight pillars: tax, construction, connectivity, indoor air, water, seismic hazard, population growth, and crime severity. Missing pillars score at median standing (50%) so thin coverage cannot inflate the rank. Cities are ordered by that score. Commercial livability lists are never inputs.
Year panels from 2016 through 2025 use live atlas rows when a pillar publishes for that year. Permits, mill rates, and broadband may use documented estimates so hometown charts can move across the decade when a direct municipal reading is missing. Survey or model vintages for radon, water hardness, water lead, and seismic PGA may be carried forward; those carries are flagged when static for more than two years. Carried radon values are Health Canada survey vintages held constant — they are not newly measured annual city tests. Full ingest and tier rules sit on the methodology page.
Pillars measure different things. Use the City Score as a summary signal, then open the individual studies and topic pages for decisions about a specific home or project.
Current leaders
| # | City | Province | Standing | Pillars |
|---|---|---|---|---|
| 1 | Barrie | Ontario | 70% | 8 |
| 2 | Oakville | Ontario | 69% | 7 |
| 3 | Markham | Ontario | 68% | 7 |
| 4 | Niagara Falls | Ontario | 68% | 6 |
| 5 | Pickering | Ontario | 67% | 5 |
| 6 | Burnaby | British Columbia | 67% | 7 |
| 7 | Ottawa | Ontario | 66% | 7 |
| 8 | Bradford West Gwillimbury | Ontario | 66% | 5 |
| 9 | Langford | British Columbia | 66% | 6 |
| 10 | Wasaga Beach | Ontario | 65% | 6 |
| 11 | Colwood | British Columbia | 65% | 6 |
| 12 | Hamilton | Ontario | 64% | 8 |
| 13 | New Tecumseth | Ontario | 64% | 5 |
| 14 | Vaughan | Ontario | 64% | 6 |
| 15 | Orangeville | Ontario | 64% | 5 |
| 16 | Innisfil | Ontario | 63% | 5 |
| 17 | Winkler | Manitoba | 62% | 5 |
| 18 | East Gwillimbury | Ontario | 62% | 5 |
| 19 | Beaumont | Alberta | 62% | 5 |
| 20 | Blackfalds | Alberta | 62% | 5 |
| 21 | Essa | Ontario | 62% | 6 |
| 22 | Niverville | Manitoba | 62% | 5 |
| 23 | Toronto | Ontario | 62% | 8 |
| 24 | Tillsonburg | Ontario | 62% | 6 |
| 25 | Cowansville | Quebec | 61% | 5 |
Editions
- OpenStats City Score (2025)343 placements · coverage 343
- OpenStats City Score (2024)343 placements · coverage 343
- OpenStats City Score (2023)343 placements · coverage 343
- OpenStats City Score (2022)343 placements · coverage 343
- OpenStats City Score (2021)343 placements · coverage 343
- OpenStats City Score (2020)343 placements · coverage 343
- OpenStats City Score (2019)343 placements · coverage 343
- OpenStats City Score (2018)343 placements · coverage 343
- OpenStats City Score (2017)343 placements · coverage 343
- OpenStats City Score (2016)343 placements · coverage 343