How OpenStats Builds Rankings
OpenStats ranks Canadian cities from public data. Topic sites publish the municipal readings that feed those rankings. This page explains how data moves from source to city page to ranking.
OpenStats runs six topic sites, each covering one subject: building permits, property tax, indoor radon, drinking water quality, broadband availability, and natural hazards. Each topic site ingests public data on an automated schedule, normalizes it into a common per-municipality format, and publishes a dedicated page for every tracked city. Those readings feed OpenStats rankings on openstats.ca. This page describes the process shared across all six topics; each topic site also carries its own methodology notes specific to its subject.
City ranking history corpus
The hub also maintains a curated ranking corpus under studies. External commercial rankings are stored as newspaper-style citations (place, rank, year, publisher, source URL). OpenStats-owned series and open government tables may include full ranked rows. Hometown pages at /cities/ chart placements over time. The OpenStats City Score is an equal-weight average of open-data pillars we track: tax (mill rates), construction (permit value), connectivity (broadband download), indoor air (radon), drinking water (hardness and lead), seismic hazard (peak ground acceleration), population growth (StatCan CSD estimates), and crime severity (StatCan CSI at CMA or provincial grain). Year-varying panels use live atlas rows where available; permits, mill rates, and broadband fill gaps with documented estimates so hometown charts move over 2016–2025. Survey or model vintages (radon, water, PGA) may be carried forward and are flagged when static for more than two years. Missing pillars score at median standing so thin coverage cannot inflate the rank. External commercial lists remain on hometown pages as separate published appearances and never enter the City Score.
Ingest
Ingest pipelines connect directly to the originating source for each dataset: a Statistics Canada table download, a federal agency CSV or GraphQL feed, a provincial open data portal, or a municipality's published water quality report. Each pipeline runs on a fixed schedule appropriate to how often the underlying source updates, records a timestamped audit entry noting the source table or feed, the record count returned, and any errors encountered, and writes results into a per-site data file before publication.
Where a source changes its format, moves its data behind a new endpoint, or temporarily fails to respond, the ingest step logs the failure rather than silently substituting stale or fabricated data. Pages that cannot be refreshed from a live source keep their most recent successfully ingested figures and are not updated until the next successful run.
Normalize
Raw source data rarely matches a municipality one-to-one. Statistics Canada geography codes, provincial administrative boundaries, and a city's common name do not always line up directly, so each pipeline maps source records to a fixed master list of Canadian municipalities using published geography codes, boundary files, or, where neither is available, nearest-match geographic proximity. Units are converted to a common basis (for example, mill rates expressed consistently per $1,000 of assessed value, or hardness expressed consistently in mg/L as calcium carbonate) so figures can be compared across municipalities and across topics without a reader needing to convert units themselves.
Data tiers
Not every dataset reports every municipality at the same level of geographic precision. Rather than hide that gap, every OpenStats city page states which data tier applies to the figures shown on it.
- Direct. The figure is reported specifically for that municipality in the underlying source, or matched to it with high geographic confidence (for example, a hex grid cell or point dataset that falls clearly within the municipal boundary).
- Regional proxy. The municipality is not separately broken out in the underlying source, so the page uses the nearest available broader geography, typically a census metropolitan area, regional health authority, or watershed, as the best available estimate. Regional proxy figures are labeled as such because they can understate or overstate the true municipal-level figure, particularly for smaller municipalities inside a large CMA.
- Seed / fallback. Used only where no live source currently covers a municipality at all. Seed records are built from the most recent reliable published figure available at the time the page was created and are replaced by live data as soon as a pipeline covers that municipality directly. Seed-tier pages are excluded from monetization gating on Health/Money/Legal (YMYL) topics until upgraded to direct or regional-proxy status.
Refresh cadence
Refresh frequency follows how often each underlying source actually updates, not a fixed OpenStats schedule. Statistics Canada building permit tables update monthly with roughly a six-week publication lag; the ISED National Broadband Data map updates roughly twice a year; municipal water quality and property tax figures update on each municipality's own annual or fiscal-year reporting cycle; and hazard layers such as wildfire and seismic hazard update on the cadence set by Natural Resources Canada, ranging from near-real-time for active fire hotspots to multi-year for the seismic hazard model itself. Each city page reports the period the current figures cover so a reader can judge how current a given number is.
Topic methods in brief
Shared ingest and tier rules above apply everywhere. Each topic also carries source-specific constraints summarized here and expanded in the matching guide.
- Building permits. Statistics Canada Monthly Survey of Building Permits (SDDS 2802), Table 34-10-0292-01. Values are construction intentions at authorization. Residential and non-residential columns should be read separately. Seasonal adjustment in federal headlines differs from the unadjusted totals used in calendar-year rankings.
- Property tax. Residential mill rates from provincial open data and municipal schedules, normalized per $1,000 of assessed value where possible. Assessment bases differ by province (annual market value, multi-year phase-in, capped programs), so dollar-bill estimates accompany raw rates.
- Broadband. ISED National Broadband Data hex and community layers. Figures are advertised availability ceilings and provider counts, refreshed on the federal twice-yearly cycle, distinct from household speed-test samples.
- Indoor radon. Health Canada Cross-Canada Survey aggregates and the 200 Bq/m³ guideline. Community means describe participating long-term tests. OpenStats does not invent yearly municipal measurements; multi-year score panels that lack a new survey carry the survey vintage forward and flag it as static.
- Natural hazards. CWFIS wildfire products, NRCan seismic hazard (National Building Code design basis), and best-available public flood context. Update cadences differ by layer; composite grades are comparative browsing aids.
- Drinking water hardness. Named municipal and utility annual reports (mg/L as CaCO₃), with report year cited. Hardness is an aesthetic/operational parameter under Health Canada guidance; boil-water advisories are tracked separately.
City Score pillar scoring
The OpenStats City Score converts each pillar placement to a 0–1 standing inside its edition, flips direction when rank 1 means a worse outcome (for example higher radon or harder water), averages series inside the same pillar, then takes an equal-weight mean across 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 rank. Commercial livability lists are cited on hometown pages and never enter the score. Pillar-specific carry-forward and estimate rules are stated on each study series page.
Limitations
OpenStats creates rankings from public data and publishes topic readings that cite those sources. It does not independently verify source accuracy or conduct its own field measurement. Errors present in an underlying source, such as a misclassified geography code in a federal table or an outdated figure in a municipal report, will carry through to the corresponding city page until the source itself is corrected and the next ingest run picks up the correction.
Geographic matching, particularly for regional-proxy and seed-tier pages, is an approximation and should not be treated as a precise measurement for any single address or property. Figures on health, financial, and legal topics such as radon, water quality, and property tax are provided for general informational and comparative purposes; decisions with material health or financial consequences should rely on direct testing, a licensed professional, or an official government determination specific to the property or situation in question, not solely on a city-level average published here.
Where a dataset is later found to contain a systemic error affecting many municipalities, the correction is applied at the next scheduled ingest run for that pipeline; OpenStats does not keep historical snapshots of a page as it appeared before a correction.
Related: Methodology · Data sources · All guides