Canadian crime-safety intelligence (annual)
Annual crime-safety intelligence for Canada and the 13 provinces/territories from Statistics Canada's Uniform Crime Reporting Survey (keyless Web Data Service; tables 35-10-0177-01 and 35-10-0026-01). Each row is one geography x year (1998 to the latest published year; Nunavut from 1999): the Crime Severity Index (total / violent / non-violent, 2006=100), the weighted clearance rate (percent), headline incident rates per 100,000, a documented 0-100 safety score (100*(0.50*(1-minmax CSI total) + 0.25*clearance/100 + 0.25*(1-minmax violent CSI)), min-maxed across geographies within each year; higher = safer) with its within-year rank and year-over-year rank change, YoY momentum for CSI/violent CSI/total rate, the violation category driving the year's movement (additive decomposition of six mutually-exclusive headline leaves) with its signed share, and a 3-year CSI trend flag (improving/deteriorating/stable). Units: index points, percent, incidents per 100,000, scores, ranks. Caveats: police-REPORTED figures only (not victimization); genuine upstream gaps are kept missing, never filled; small geographies are noisy, especially homicide; the latest year is occasionally revised the following July; the safety score is a relative within-year ranking, not an absolute measure. Primary key: (geo_name, year). Cadence: yearly; as_of is the latest year in the panel, so identical input produces an identical content hash. Statistics Canada Open Licence — commercial_use = yes, attribution required. Sample use: order by year desc, safety_rank for the latest provincial safety ranking, or track rank_change_yoy for risers/fallers.
- Rows
- 391
- Columns
- 27
- Source cadence
- Yearly
- Last refreshed
- Sep 26, 2026
- Theme
- crime
| Column | Type | Description |
|---|---|---|
| as_of | integer | Latest year in the panel; year-granular as-of stamping soidentical upstream input yields an identical content hash. (unit: year) |
| year | integer | Reference year of the UCR reporting period (calendar year). |
| geo_name | string | Geography: Canada or one of the 13 provinces/territories, aspublished by Statistics Canada. |
| country | string | Canonical country name (Canada) for every row. |
| country_code | string | ISO 3166-1 alpha-3 code for Canada (CAN) — the join key for the'Enrich with public data' feature. (unit: code) |
| csi_total | float | Crime Severity Index, total (2006 = 100 for Canada).Seriousness-weighted: each offence is weighted by itsincarceration rate and average sentence length. (unit: index points) |
| csi_violent | float | Violent Crime Severity Index (2006 = 100 for Canada). (unit: index points) |
| csi_nonviolent | float | Non-violent Crime Severity Index (2006 = 100 for Canada). (unit: index points) |
| clearance_total_pct | float | Weighted clearance rate, total (percent of police-reportedincidents cleared by charge or otherwise). (unit: percent) |
| total_rate_per_100k | float | Police-reported incidents per 100,000 population, all violations(July 1 population estimates). (unit: per 100,000) |
| violent_rate_per_100k | float | Police-reported violent Criminal Code violations per 100,000population. (unit: per 100,000) |
| property_rate_per_100k | float | Police-reported property crime violations per 100,000population. (unit: per 100,000) |
| homicide_rate_per_100k | float | Police-reported homicides per 100,000 population. Noisy forsmall geographies (territories, PEI) — small populations amplifysingle incidents. (unit: per 100,000) |
| safety_score | float | Documented 0-100 safety score (higher = safer):100*(0.50*(1-minmax(csi_total)) + 0.25*clearance/100 +0.25*(1-minmax(csi_violent))), min-maxed across the 14geographies within each year. Null when any input is missing(never imputed). A relative within-year ranking, not an absolutesafety measure. (unit: score) |
| safety_rank | integer | Within-year safety rank (1 = safest of the 14 geographies; tiesbroken by csi_total asc, then geo_name asc). (unit: rank) |
| csi_yoy_pct | float | Year-over-year percent change of the total Crime Severity Index. (unit: percent) |
| violent_csi_yoy_pct | float | Year-over-year percent change of the violent Crime SeverityIndex. (unit: percent) |
| total_rate_yoy_pct | float | Year-over-year percent change of the total incident rate per100,000. (unit: percent) |
| rank_change_yoy | integer | Change in safety_rank vs the prior year (positive = moved safer;negative = moved less safe). Null for each geography's firstyear. (unit: ranks) |
| top_driver_violation | string | UCR violation code of the leaf category contributing most to theyear's total-rate movement in its direction (100 violent, 200property, 300 other Criminal Code, 900 traffic, 401 drug, 610other federal statutes — mutually exclusive leaves that sum tothe total). Null for first years and when |total change| < 1.0per 100k. (unit: code) |
| top_driver_violation_label | string | Provider-verbatim label of top_driver_violation. |
| top_driver_delta_rate | float | Year-over-year change of the driver's incident rate per 100,000(signed: same direction as the total's movement). (unit: per 100,000) |
| top_driver_share_pct | float | Signed share of the year's total-rate change explained by thedriver (100 * driver delta / total delta). Null when the totalchange is too small to attribute. (unit: percent) |
| trend_3y | string | 3-year Crime Severity Index trend flag from the OLS slope overthe trailing up-to-3 years: 'improving' (slope < -1.5 indexpts/yr), 'deteriorating' (slope > 1.5), else 'stable'. |
| trend_3y_slope | float | OLS slope of csi_total over the trailing up-to-3 years (needs >=2 non-null points). (unit: index points/year) |
| source_url | string | Full-table CSV download URLs for the two underlying UCR tables (35-10-0177-01 and 35-10-0026-01). (unit: URL) |
| row_hash | string | SHA-256 (16 hex chars) over the row's content fields; identicalinput yields an identical hash, so a re-run on unchangedupstream data is a no-op. (unit: hash) |
First 10 sample rows — a preview, not the complete dataset.
| as_of | year | geo_name | country | country_code | csi_total | csi_violent | csi_nonviolent | clearance_total_pct | total_rate_per_100k | violent_rate_per_100k | property_rate_per_100k | homicide_rate_per_100k | safety_score | safety_rank | csi_yoy_pct | violent_csi_yoy_pct | total_rate_yoy_pct | rank_change_yoy | top_driver_violation | top_driver_violation_label | top_driver_delta_rate | top_driver_share_pct | trend_3y | trend_3y_slope | source_url | row_hash |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2,025 | 1,998 | Canada | Canada | CAN | 118.84 | 97.8 | 126.93 | 34.06 | 8,915.12 | 1,344.85 | 5,696.02 | 1.85 | 67.76 | 8 | — | — | — | — | — | — | — | — | — | — | https://www150.statcan.gc.ca/n1/tbl/csv/35100177-eng.zip; https://www150.statcan.gc.ca/n1/tbl/csv/35100026-eng.zip | 1ac433d749303168 |
| 2,025 | 1,998 | Newfoundland and Labrador | Canada | CAN | 76.38 | 58.43 | 83.28 | 41.91 | 6,464.52 | 1,291.64 | 3,587.49 | 1.3 | 84.63 | 2 | — | — | — | — | — | — | — | — | — | — | https://www150.statcan.gc.ca/n1/tbl/csv/35100177-eng.zip; https://www150.statcan.gc.ca/n1/tbl/csv/35100026-eng.zip | fa0656df08fe3958 |
| 2,025 | 1,998 | Prince Edward Island | Canada | CAN | 73.31 | 57.83 | 79.27 | 50.45 | 7,110.2 | 1,261.24 | 3,822 | 0.74 | 87.61 | 1 | — | — | — | — | — | — | — | — | — | — | https://www150.statcan.gc.ca/n1/tbl/csv/35100177-eng.zip; https://www150.statcan.gc.ca/n1/tbl/csv/35100026-eng.zip | 1d666ba4a41c09f4 |
| 2,025 | 1,998 | Nova Scotia | Canada | CAN | 105.4 | 84.95 | 113.26 | 35.55 | 8,849.49 | 1,551.66 | 5,400.54 | 2.58 | 72.89 | 5 | — | — | — | — | — | — | — | — | — | — | https://www150.statcan.gc.ca/n1/tbl/csv/35100177-eng.zip; https://www150.statcan.gc.ca/n1/tbl/csv/35100026-eng.zip | 74cb915bf357a169 |
| 2,025 | 1,998 | New Brunswick | Canada | CAN | 89.98 | 67.12 | 98.77 | 43.97 | 7,748.44 | 1,532.74 | 4,036.77 | 0.67 | 80.76 | 3 | — | — | — | — | — | — | — | — | — | — | https://www150.statcan.gc.ca/n1/tbl/csv/35100177-eng.zip; https://www150.statcan.gc.ca/n1/tbl/csv/35100026-eng.zip | 16e5a458cd347a29 |
| 2,025 | 1,998 | Quebec | Canada | CAN | 112.68 | 90.47 | 121.22 | 29.48 | 6,926.94 | 876.48 | 4,901.59 | 1.88 | 68.94 | 6 | — | — | — | — | — | — | — | — | — | — | https://www150.statcan.gc.ca/n1/tbl/csv/35100177-eng.zip; https://www150.statcan.gc.ca/n1/tbl/csv/35100026-eng.zip | 08b7d0937fb446f5 |
| 2,025 | 1,998 | Ontario | Canada | CAN | 100.72 | 84.54 | 106.94 | 35.79 | 7,762.2 | 1,221.97 | 4,842.08 | 1.37 | 74.2 | 4 | — | — | — | — | — | — | — | — | — | — | https://www150.statcan.gc.ca/n1/tbl/csv/35100177-eng.zip; https://www150.statcan.gc.ca/n1/tbl/csv/35100026-eng.zip | a02b8ef968aa9f2a |
| 2,025 | 1,998 | Manitoba | Canada | CAN | 154.49 | 154.07 | 154.65 | 35.64 | 11,565.39 | 2,063.45 | 7,102.76 | 2.9 | 53.31 | 9 | — | — | — | — | — | — | — | — | — | — | https://www150.statcan.gc.ca/n1/tbl/csv/35100177-eng.zip; https://www150.statcan.gc.ca/n1/tbl/csv/35100026-eng.zip | 3b4a19fda3ed49bf |
| 2,025 | 1,998 | Saskatchewan | Canada | CAN | 176.2 | 141.76 | 189.44 | 42.09 | 14,468.71 | 2,211.39 | 7,862.95 | 3.24 | 50.57 | 10 | — | — | — | — | — | — | — | — | — | — | https://www150.statcan.gc.ca/n1/tbl/csv/35100177-eng.zip; https://www150.statcan.gc.ca/n1/tbl/csv/35100026-eng.zip | 581c5c67a1c0d817 |
| 2,025 | 1,998 | Alberta | Canada | CAN | 122.5 | 98.36 | 131.78 | 40.89 | 9,990.34 | 1,396.02 | 6,341.75 | 2.21 | 68.47 | 7 | — | — | — | — | — | — | — | — | — | — | https://www150.statcan.gc.ca/n1/tbl/csv/35100177-eng.zip; https://www150.statcan.gc.ca/n1/tbl/csv/35100026-eng.zip | 19e9167ad0cedb16 |
- Current
20260926T080529Z-76889ab3a0ff · sha256 76889ab3a0ff…
391 rows · first snapshot
Point any LLM at the metadata endpoint — the documentation above is machine-readable too (JSON-LD + Croissant).
curl "https://datazimuts.com/v1/datasets/canada_crime_safety_signals/ca_crime_safety_annual" | jq '{title, rows, columns_count, license}'import requests
ds = requests.get("https://datazimuts.com/v1/datasets/canada_crime_safety_signals/ca_crime_safety_annual").json()
print(ds["title"], ds["rows"], "rows")
# Sample rows for an LLM context window
for row in ds.get("sample_rows", [])[:5]:
print(row)API endpoint: https://datazimuts.com/v1/datasets/canada_crime_safety_signals/ca_crime_safety_annual
Tip: fetch /llms.txt for the full machine-readable catalog.
Where this data comes from and what was made from it. Other people's work shows as counts; only shared projects are named.
Cite this snapshot
Pinned to snapshot 20260926T080529Z-76889ab3a0ff and its content hash, so readers get exactly the data you used.
Statistics Canada — Canadian crime-safety intelligence. (2026). Canadian crime-safety intelligence (annual) [Data set, snapshot 20260926T080529Z-76889ab3a0ff, sha256 76889ab3a0ff]. Datazimuts. Retrieved 2026-09-26, from https://datazimuts.com/en/datasets/canada_crime_safety_signals/ca_crime_safety_annual?snapshot=20260926T080529Z-76889ab3a0ff
@misc{dz_canada_crime_safety_signals_ca_crime_saf_76889ab3,
title = {{Canadian crime-safety intelligence (annual)}},
author = {{Statistics Canada — Canadian crime-safety intelligence}},
year = {2026},
publisher = {Datazimuts},
howpublished = {\url{https://datazimuts.com/en/datasets/canada_crime_safety_signals/ca_crime_safety_annual?snapshot=20260926T080529Z-76889ab3a0ff}},
note = {Snapshot 20260926T080529Z-76889ab3a0ff, sha256 76889ab3a0ffbd649aa5459b778521b3406db6eab8bdbf128b74f99e86370c75; accessed 2026-09-26}
}Embed a table or a chart
Paste this into any page. The embed is pinned to the same snapshot, follows the reader's light or dark setting, and always shows the source, license and a link back.
<iframe src="https://datazimuts.com/embed/chart?dataset=canada_crime_safety_signals%2Fca_crime_safety_annual&lang=en&theme=auto&snapshot=20260926T080529Z-76889ab3a0ff&x=year&y=as_of&agg=avg" title="Canadian crime-safety intelligence (annual)" width="100%" height="380" style="border:0" loading="lazy"></iframe>
Ask about this dataset. Answers come only from its catalog record, measured profile and change history, and list the facts they used.