Methodology

Last updated May 2026

This site displays derived statistical data for research and public interest purposes only. We do not store or display personal information, last names, addresses, or precise coordinates. All data is aggregated to prevent individual identification.

How data is processed

1
Collection
Raw data is downloaded from public APIs and open data portals. No personal identifiers are collected or stored at any stage.
2
Spatial aggregation
Individual incidents are assigned to 500m × 500m grid cells using PostGIS. Exact coordinates are never stored or displayed. All map visualizations show grid-level or neighborhood-level aggregates.
3
Temporal aggregation
Events are grouped into weekly or monthly time buckets. No exact timestamps are exposed. Date ranges are used for trend analysis.
4
Metric computation
Pre-computed metrics (counts, rates, severity indices) are calculated per grid cell and time period. These derived statistics are what the API serves.
5
Privacy validation
Automated checks strip forbidden fields (names, addresses, case numbers) and reject responses containing banned phrases. Minimum count thresholds prevent identification through small-number inference.
6
Data quality audit
Benford's Law chi-squared tests and temporal gap detection run weekly to flag anomalous data. Results are logged but do not block publication.

Spatial grid system

Vancouver is divided into approximately 500m × 500m grid cells. Each cell covers roughly 6 city blocks. Crime counts, service locations, and other metrics are computed per cell. This prevents pinpointing exact incident locations while still showing meaningful geographic patterns.

Heatmap visualizations interpolate between grid cell values to show density gradients. Individual points on the map represent grid cell centroids, not exact locations.

Neighborhood Safety Index

The composite safety index (0–100) combines multiple data layers into a single per-neighborhood score. Higher scores indicate lower density of negative indicators relative to available services.

Crime densityincident count per km², normalized across neighborhoods — 40%
Crisis signals311 reports per km² — 20%
Overdose burdendeath count relative to population — 20%
Service coverageharm reduction, shelters, treatment sites — 20% (inverted)

Scores are normalized within Vancouver only and are not comparable to other cities.

Data sources

368,000+ · 2003–present
Individual crime incidents with category, date, and approximate location. Source of all mapped crime points and heatmaps.
Last refreshed:Weekly (live)
Weighted severity index comparing Vancouver CMA, BC, and Canada. Table 35-10-0026. Higher values indicate more serious crime composition.
Last refreshed:February 2026
28,000+ · 1998–2023
Police-reported crime by violation type for Vancouver CMA. Includes actual incidents, clearance rates, and charges. Table 35-10-0177.
Last refreshed:February 2026
StatCan Hate Crime Data
50+ · 2014–2024
Police-reported hate crimes by motivation type. Vancouver CMA, BC, and Canada levels. Tables 35-10-0191 and 35-10-0132.
Last refreshed:February 2026
StatCan Peer-City Crime Severity Index
135+ · 2003–2024
CSI for Toronto, Calgary, Montreal, Edmonton, and Ottawa-Gatineau CMAs for peer comparison on /indicators. Table 35-10-0026.
Last refreshed:Not yet ingested — run npm run ingest:statcan-peer-cities-csi
Quarterly · 2016–present
Substance-related harms and deaths by province. BC totals distributed to Vancouver neighborhoods using health authority proportions.
Last refreshed:February 2026
150,000+ · 2009–present
311 service requests including encampments, needles, graffiti. Drives the crisis signals layer on the map.
Last refreshed:February 2026
Crime-adjacent business licences — liquor stores and cannabis retailers with spatial coordinates.
Last refreshed:March 2026
ICBC Vehicle Crashes
Pending · 2018–present
ICBC crash data by severity (fatal / injury / property damage). Requires manual CSV download from ICBC Open Data portal.
Last refreshed:March 2026 (script ready — CSV download required)
BC Courts
90+ · 2018–2024
Case timeliness and workload metrics for Provincial and Supreme courts.
Last refreshed:February 2026
BC Housing & Non-Market Housing
200+ · Current
Supportive housing locations, shelter beds, and non-market housing inventory.
Last refreshed:February 2026
Service Provider Locations
100+ · Current
Harm reduction sites, OAT clinics, supervised consumption sites, shelters, food programs, and mental health services.
Last refreshed:February 2026

Data quality validation

Benford's Law — Chi-squared test on first-digit distributions of crime counts. Significant deviation (p < 0.05) flags potential data fabrication or truncation.

Temporal gap detection — Identifies months with missing data or suspiciously low counts (<20% of rolling average). Gaps are logged, not filled.

Cross-source comparison — VPD incident counts are compared against StatCan annual totals to detect significant discrepancies.

Known limitations

  • Crime data reflects reported incidents only. Unreported crime is not captured.
  • 311 signals depend on resident reporting behavior, which varies by neighborhood.
  • Overdose data from PHAC is quarterly and province-wide; neighborhood distribution uses fixed proportions derived from health authority reports, not exact counts.
  • StatCan data is CMA-level (Census Metropolitan Area), which extends beyond city boundaries.
  • Court metrics cover BC-wide courts, not Vancouver-specific outcomes.
  • Service location data may be incomplete. Facilities open and close between updates.
  • The 500m grid can mask micro-patterns within a cell and create edge effects at cell boundaries.