Your priorities

Drag to change how much each category counts. The ranking updates instantly.

Rankings

Default weights Compare the top 3 side by side →
# City Overall SafetyJobs & economyHousing costClimateAir qualityTrafficAmenities
1 CalgaryAB
71
67786675667563
2 MiltonON · GTA
70
10064535785961
3 OshawaON
66
81476261968817
4 OakvilleON · GTA
66
100575362756419
5 ReginaSK
65
347673539610018
6 PickeringON · GTA
65
81705363895112
7 SherbrookeQC
64
7062823194718
8 HamiltonON
64
71467761866326
9 St. Catharines–NiagaraON
63
7137745887925
10 OttawaON
62
72566243955162
11 AjaxON · GTA
62
81565360895414
12 Québec CityQC
61
66725936797024
13 HalifaxNS
61
557449391007925
14 Richmond HillON · GTA
60
75545356884433
15 SaskatoonSK
59
22746646969813
16 EdmontonAB
59
31686846798151
17 MarkhamON · GTA
59
75525352893647
18 Kitchener–WaterlooON
57
58576148953927
19 VictoriaBC
57
53634175626924
20 TorontoON · GTA
57
63465362813276
21 WindsorON
57
70427053545532
22 VaughanON · GTA
56
75545352751948
23 MontréalQC
55
59523943687490
24 BramptonON · GTA
53
65445354753031
25 WinnipegMB
51
0737042953950
26 LondonON
50
60345746953315
27 MississaugaON · GTA
49
6536535075050
28 VancouverBC
43
4955476001151
29 KelownaBC
39
303529750856
All scores 0–100 (higher is better), relative to the other cities. “—” means no data for that category; the overall score then uses the remaining categories.

How the score works

  1. Metric scores. For each measurement, the best city gets 100 and the worst gets 0; others are placed proportionally in between. For things like crime or rent, lower values score higher.
  2. Category scores. Each category is the average of its metric scores.
  3. Overall score. A weighted average of category scores using your priorities. If a city has no data for a category, the other categories are re-weighted for that city.

GTA cities. Toronto, Mississauga, Brampton, Markham, Vaughan, Oakville, Richmond Hill, Milton, Ajax and Pickering are ranked separately. Each has its own weather, air quality, amenities, traffic and population figures, and the crime index of its police service (several cities share one: Peel, York, Halton or Durham Regional Police). Jobs and rent are only published for the whole Toronto metro area, so those values are the same for all ten and are labelled “Toronto metro”. Oshawa's safety score uses Durham Regional Police.

CategoryWhat it measuresMetrics
SafetyPolice-reported crime, weighted by seriousness.Crime Severity Index, Violent Crime Severity Index
Jobs & economyLabour market strength and population growth.Unemployment rate, Employment rate, Population growth
Housing costAverage rent and how fast it is rising.Average 2-bedroom rent, Rent change
ClimateExtreme cold/heat, snow, wet days and sunshine over the past year.Extreme cold days, Hot days, Snowfall, Wet days, Sunshine
Air qualityFine-particle (PM2.5) pollution over the past 90 days.PM2.5 (90-day mean)
TrafficRush-hour road congestion measured by TomTom.Rush-hour congestion
AmenitiesParks, healthcare, schools and transit stops near downtown.Parks, Hospitals & clinics, Schools, Transit stops

Data sources

The pipeline runs every hour. Yearly and monthly statistics are only re-downloaded when they may have changed.

SourceLast runData fetchedRefresh
Open-Meteo Forecast API updated 2026-11-13T09:45:56Z every run
Open-Meteo Historical Weather API cached 2026-11-13T01:58:36Z every 12 hours
Open-Meteo Air Quality API updated 2026-11-13T09:45:56Z every 6 hours
Statistics Canada – Crime Severity Index (35-10-0026-01, 35-10-0188-01) cached 2026-11-11T22:53:49Z every 7 days
Statistics Canada – Labour Force Survey (14-10-0459-01) cached 2026-11-12T12:58:41Z daily
Statistics Canada – Population estimates (17-10-0148-01, 17-10-0155-01) cached 2026-11-11T22:53:49Z every 7 days
CMHC average rents via Statistics Canada (34-10-0133-01) cached 2026-11-11T22:53:49Z every 7 days
OpenStreetMap via Overpass API cached 2026-11-11T22:53:49Z every 7 days
TomTom Traffic Flow API updated 2026-11-13T09:45:56Z every run