This page explains how CrimeMaps.ca collects municipal open-data crime incidents, computes per-category rates, and displays the official Statistics Canada Crime Severity Index (CSI) on ranking pages.
What we show on ranking pages
- StatCan CSI — the official annual Crime Severity Index for cities where Statistics Canada publishes a value. We do not invent a second composite score.
- Per-category rates — annualized incidents per 1,000 residents from live municipal open-data feeds, so readers can compare categories (assault, break-and-enter, auto theft, …) directly.
Annualized open-data rates
Raw year-to-date counts are not comparable across cities with different numbers of complete months. We annualize:
rate = (count in complete months / complete month count) × 12 / population × 1,000
- Only complete calendar months count; the in-progress month is excluded.
- Cities need at least 3 complete months and ≥100 YTD incidents to appear in the rate table.
- Coverage span is shown under each city name. Fewer than 6 complete months is marked annualized (projected).
- Partial taxonomies (e.g. no assault in the open feed) show "—" in missing columns, not zero.
Freshness
Rate tables require a live feed (typically date_max within ~40 days). Frozen feeds are omitted from rate rankings; CSI rows may still list them with a ⚠ marker because CSI is a static StatCan value.
Populations
2025 Statistics Canada postcensal estimates (2021 Census boundaries), Table 17-10-0155-01 where applicable.
Category taxonomy
Source offence strings are normalised into CrimeMaps categories (assault, robbery, break and enter, auto theft, theft, theft from vehicle, mischief, fraud, other, …). Non-assault person offences may be classified under other with a subcategory rather than as assault — see city pages for source-category detail.
Cities with limited data coverage
These cities have a frozen open-data feed and/or partial offence coverage (for example, property crimes only with no assault). They may appear in CSI tables when StatCan publishes a value (annotated with ⚠), but are excluded from annualized rate tables when the feed is not live. Individual city pages still show absolute counts from the open-data feed as-is.
- Abbotsford, BC — partial offence coverage (open feed omits assault / sexual assault) (2,433 incidents on file)
- Airdrie, AB — partial offence coverage (open feed omits assault / sexual assault) (371 incidents on file)
- Amherstburg, ON — open-data feed frozen since 2016-04-20 (564 incidents on file)
- Aylmer, ON — open-data feed frozen since 2019-10-08 (224 incidents on file)
- Belleville, ON — open-data feed frozen since 2016-04-27 (2,008 incidents on file)
- Brockville, ON — open-data feed frozen since 2018-03-22 (1,167 incidents on file)
- Burlington, ON — partial offence coverage (open feed omits assault / sexual assault) (6,866 incidents on file)
- Burnaby, BC — partial offence coverage (open feed omits assault / sexual assault) (3,707 incidents on file)
- Calgary, AB — open-data feed frozen since 2024-11-01 (2,009 incidents on file)
- Chatham-Kent, ON — open-data feed frozen since 2026-01-25 (4,282 incidents on file)
- Clive, AB — partial offence coverage (open feed omits assault / sexual assault) (1 incidents on file)
- Cobourg, ON — open-data feed frozen since 2026-05-18 (2,030 incidents on file)
- Coquitlam, BC — partial offence coverage (open feed omits assault / sexual assault) (6,064 incidents on file)
- Cornwall, ON — open-data feed frozen since 2025-12-10 (4,758 incidents on file)
- Cowley, AB — partial offence coverage (open feed omits assault / sexual assault) (1 incidents on file)
- Espanola, ON — open-data feed frozen since 2015-08-15 (472 incidents on file)
- Foremost, AB — partial offence coverage (open feed omits assault / sexual assault) (1 incidents on file)
- Gananoque, ON — partial offence coverage (open feed omits assault / sexual assault); open-data feed frozen since 2025-08-21 (480 incidents on file)
- Girouxville, AB — partial offence coverage (open feed omits assault / sexual assault) (1 incidents on file)
- Grande Prairie, AB — partial offence coverage (open feed omits assault / sexual assault) (1,139 incidents on file)
- Greater Sudbury, ON — open-data feed frozen since 2018-09-03 (110 incidents on file)
- Halton Hills, ON — partial offence coverage (open feed omits assault / sexual assault) (2,414 incidents on file)
- Hamilton, ON — partial offence coverage (open feed omits assault / sexual assault) (1,030 incidents on file)
- Langley, BC — partial offence coverage (open feed omits assault / sexual assault) (24,133 incidents on file)
- Leduc, AB — partial offence coverage (open feed omits assault / sexual assault) (322 incidents on file)
- Lloydminster (Part), AB — partial offence coverage (open feed omits assault / sexual assault) (341 incidents on file)
- Maple Ridge, BC — partial offence coverage (open feed omits assault / sexual assault) (39,665 incidents on file)
- Milton, ON — partial offence coverage (open feed omits assault / sexual assault) (3,884 incidents on file)
- Montreal, QC — partial offence coverage (open feed omits assault / sexual assault) (289,025 incidents on file)
- Nanaimo, BC — partial offence coverage (open feed omits assault / sexual assault); open-data feed frozen since 2021-03-21 (2,497 incidents on file)
- Oakville, ON — partial offence coverage (open feed omits assault / sexual assault) (14,057 incidents on file)
- Parkland County, AB — partial offence coverage (open feed omits assault / sexual assault) (215 incidents on file)
- Perth South, ON — partial offence coverage (open feed omits assault / sexual assault) (9 incidents on file)
- Pitt Meadows, BC — partial offence coverage (open feed omits assault / sexual assault); open-data feed frozen since 2026-04-01 (7,598 incidents on file)
- Prince George, BC — partial offence coverage (open feed omits assault / sexual assault) (24,367 incidents on file)
- Red Deer, AB — partial offence coverage (open feed omits assault / sexual assault) (1,293 incidents on file)
- Richmond, BC — partial offence coverage (open feed omits assault / sexual assault) (20,098 incidents on file)
- Rocky View County, AB — partial offence coverage (open feed omits assault / sexual assault) (323 incidents on file)
- Saugeen Shores, ON — open-data feed frozen since 2026-04-13 (866 incidents on file)
- Shelburne, ON — open-data feed frozen since 2019-06-26 (807 incidents on file)
- Sherbrooke, QC — open-data feed frozen since 2026-06-30 (16,142 incidents on file)
- St. Albert, AB — partial offence coverage (open feed omits assault / sexual assault) (488 incidents on file)
- St. Thomas, ON — open-data feed frozen since 2019-02-19 (1,555 incidents on file)
- Strathcona County, AB — partial offence coverage (open feed omits assault / sexual assault) (641 incidents on file)
- Strathroy-Caradoc, ON — open-data feed frozen since 2019-12-03 (1,045 incidents on file)
- Surrey, BC — partial offence coverage (open feed omits assault / sexual assault) (2,922 incidents on file)
- Thunder Bay, ON — open-data feed frozen since 2024-10-24 (9,276 incidents on file)
- Timmins, ON — open-data feed frozen since 2017-12-21 (3,382 incidents on file)
- West Nipissing, ON — open-data feed frozen since 2019-04-04 (746 incidents on file)
- Wetaskiwin, AB — partial offence coverage (open feed omits assault / sexual assault) (310 incidents on file)
- Wingham, ON — open-data feed frozen since 2018-07-16 (138 incidents on file)
- Winnipeg, MB — open-data feed frozen since 2026-04-15 (49,782 incidents on file)
- Wood Buffalo, AB — partial offence coverage (open feed omits assault / sexual assault) (714 incidents on file)
- Woodstock, ON — open-data feed frozen since 2019-06-14 (2,426 incidents on file)
- Yellowknife, NT — partial offence coverage (open feed omits assault / sexual assault) (398 incidents on file)
What we do not do
- We do not publish a proprietary severity composite for ranking cities against each other.
- We do not invent map points from official report PDFs or Excel totals (SEO-only official-stats files).
- We do not treat partial open feeds as complete UCR2 coverage.
Source
- CSI: StatCan Table 35-10-0026-01 and police-service table 35-10-0063-01
- Populations: Statistics Canada annual demographic estimates (2025)
- Incidents: municipal and police open-data portals listed on each city page and crime data sources