crime.pulse
Last updated
§ About the data · methodology · v1

What's in, what's out, and why.

This dashboard is built on the Toronto Police Service Community Safety Indicators series, with Statistics Canada population denominators. Below is the methodology it stands on. Read it before comparing anything on this site.

§ 01 · ADR-001 / data-sources.md

Sources.

All incident data is sourced from the Toronto Police Service Community Safety Indicators. The dashboard reads pre-aggregated JSON produced by the build pipeline, which is why cross-filter UI stays fast even on mobile. Data covers reports through 2026-06-30, imported 2026-07-27.

Incidents
Toronto Police Service · Community Safety Indicators
Population (city)
Statistics Canada table 17-10-0155-01 · City of Toronto census subdivision, July 1 estimates, released 2026-01-14
Population (nbhd)
City of Toronto Neighbourhood Profiles · 2021 Census 25% sample, reference date May 11, 2021
National context
Statistics Canada table 35-10-0026-01 · Crime Severity Index, released 2026-07-22
Metro context
Statistics Canada table 35-10-0177-01 · Census Metropolitan Area crime rates, released 2026-07-22
Boundaries
City of Toronto · 158 official neighbourhoods · 2021 boundary set
Hate crimes
Toronto Police Service · Hate Crimes open data, plus annual statistical-report totals. See the Hate Crimes page.

Statistics Canada material is used under the Statistics Canada Open Licence. These datasets are not covered by the software licence, and this site is not a Statistics Canada product.

City-wide population. City-wide rates divide Toronto Police Service incident counts by these July 1 estimates. Adapted from Statistics Canada, Table 17-10-0155-01, Population estimates, July 1, by census subdivision, 2021 boundaries, July 1, 2016 to 2025 (released 2026-01-14). This does not constitute an endorsement by Statistics Canada of this product.

Neighbourhood population. Neighbourhood rates use the 2021 Census 25% sample counts in the City of Toronto Neighbourhood Profiles. Those counts were obtained from the City under the Open Government Licence – Toronto. Adapted from Statistics Canada, Census of Population, 2021, May 11, 2021. This does not constitute an endorsement by Statistics Canada of this product.

Crime Severity Index. The Toronto in national context card displays this index. Adapted from Statistics Canada, Table 35-10-0026-01, Crime severity index and weighted clearance rates, Canada, provinces, territories and Census Metropolitan Areas, 2015 to 2025 (released 2026-07-22). This does not constitute an endorsement by Statistics Canada of this product.

Metro crime rates. The Toronto metro in context card displays Census Metropolitan Area rates. The Money Laundering page separately displays 2016–2025 fraud and proceeds-of-crime counts for Toronto CMA and Canada; its CSV download retains 2010–2025. Adapted from Statistics Canada, Table 35-10-0177-01, Incident-based crime statistics, by detailed violations, Canada, provinces, territories, Census Metropolitan Areas and Canadian Forces Military Police, 2016 to 2025 (released 2026-07-22). This does not constitute an endorsement by Statistics Canada of this product.

Toronto municipal fraud and proceeds of crime. The Money Laundering page displays 2016–2025 counts for the Toronto municipal police service. Its CSV download retains 2010–2025. Adapted from Statistics Canada, Table 35-10-0180-01, Incident-based crime statistics, by detailed violations, police services in Ontario, 2010 to 2025 (released 2026-07-22). This does not constitute an endorsement by Statistics Canada of this product.

§ 02 · ADR-009

The default unit is raw incident counts.

Every chart on this site defaults to raw incident counts — the unfiltered record of what was reported — with rate per 10,000 residents one toggle away. Toggling units changes the meaning of every number on screen at once.

!
Counts visually penalize high-population neighbourhoods: a denser neighbourhood with the same per-capita rate as a quieter one looks more dangerous on the page, even though it isn't. When comparing neighbourhoods, switch to rates.
i
Per-capita rates flatten the population effect but introduce their own caveat: a low-population neighbourhood with a single incident can look artificially high. Read absolute counts alongside the rate.
!
Two denominator caveats. Per-neighbourhood rates use the 2021 Census 25% sample population (the long-form sample count, slightly below the full Census count, so rates read roughly 1% high). And that 2021 denominator is reused for every year, including 2022–2025: Toronto's population has grown since 2021, so recent rates in fast-growing neighbourhoods read high. City-wide rates do not share this caveat; they use StatCan's annual estimates.
§ 03 · ADR-003

Why a choropleth, not a dot/cluster map.

The source publishes approximate lat/lng per incident and explicitly forbids exact-address presentation. A dot map would imply a precision the data does not have, and risks tying records to specific buildings, blocks, or people. We instead aggregate to neighbourhood level: 158 cells, each shaded by the active category in the active unit — raw counts by default, rate per 10K residents one toggle away (ADR-009).

!
Neighbourhood shading only. The dashboard does not draw addresses or coordinates. The source archive keeps the approximate lat/lng the Toronto Police Service already publishes. If you need the point file, the TPS open data portal publishes it directly with the same caveats.
§ 04 · ADR-001

Scope and exclusions.

This dashboard is intentionally narrow. Knowing what it doesn't cover is part of reading it correctly.

×
No sexual assault. Excluded by the TPS source from this indicator series. Not a design choice on our part.
◇
Toronto pages stay Toronto. The overview, neighbourhood, compare, and hate-crimes surfaces cover the City of Toronto. The other cities on the home map have their own views and local boundaries. Use the city selector above the view menu to change location. Peel, York, Durham, and Halton stay out of the incident views. The Overview's Toronto metro in context card uses Statistics Canada's Toronto CMA for metro-level rate comparison only.
!
2026 is YTD (through 2026-06-30). Both numerator (incidents) and denominator (population) are incomplete. Excluded from all 10-year comparable visuals. A YTD toggle is available but is always paired with a disclaimer.
i
Five categories. Assault, Auto Theft, Break & Enter, Robbery, Theft Over $5,000. The five comparable indicators TPS publishes for this series.
◇
Neighbourhood coverage. 6,094 reports (1.6% of the imported corpus) have no usable 158-neighbourhood assignment. They remain in Toronto-wide counts and rates, but cannot appear in neighbourhood charts, maps, or feeds.
§ 05 · Refresh cadence

This is a trend dashboard, not a live ticker.

The TPS source refreshes quarterly. There is no "Recent incidents" widget, no relative date strings ("3 days ago"), and no live feed. The chronological feed uses absolute dates only. The site itself is updated periodically, with no fixed schedule. Every freshness number on the page (topbar pill, this card, the footer) reflects the data itself: the latest report date the imported data covers, and when it was imported, not when the site was last rebuilt.

§ 06 · Ethics

What this dashboard doesn't do.

  • No language calling a neighbourhood "safe" or "dangerous." Show the data, don't label the place.
  • Counts are the default (ADR-009), but rates per 10K stay one toggle away everywhere — switch to rates when comparing neighbourhoods of different sizes, because raw counts visually penalise high-population areas.
  • The map stays at neighbourhood resolution. The source archive keeps the approximate lat/lng TPS publishes, and the dashboard does not plot those points.
  • No relative-date framing ("yesterday"). This is a trend tool, not a crime ticker.
  • Colour is never the only cue. Every category has a distinct glyph and a label.
  • WCAG AA contrast minimum, including chart strokes and choropleth fills.
§ 07 · Colophon

Colophon.

Type: Space Grotesk & JetBrains Mono. Charts hand-rolled in SVG against an oklch palette. Map: Leaflet with a locally hosted Toronto basemap from Protomaps and OpenStreetMap, plus 2021 Census neighbourhood polygons. The geographic snapshot is cached separately from crime figures. Built with Astro; reads pre-aggregated JSON.

Toronto Crime Pulse · v1.0.0-rc · No cookies. No ads. No paywall. Open methodology.

About this data

How to read these figures

What does “crime” mean for Toronto?
Crime by neighbourhood means the indicators Toronto Police Service publishes for Toronto (2016–2025). They are reported incident or offence counts, not arrests, charges, or a safety score. The same heading in another city is not the same offence.
Where do the numbers come from?
Police figures come from Toronto Police Service. Area boundaries come from City of Toronto · neighbourhood boundaries. Rates, when a denominator exists, use Statistics Canada · Census and population estimates and are shown per 10,000 residents. A missing year, indicator, or boundary stays missing.
How often is this updated?
The site is updated periodically, with no fixed public schedule and no live feed. Comparable charts use full years. A year-to-date control, when the page has one, labels the partial year separately.
What does this not show?
Drug offences and overdose deaths are separate series, not part of these neighbourhoods. There is no single cross-city crime index. Counting rules and source links are on the Toronto about page.

Full methodology →