Methodology
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
Spatial grid system
Vancouver is divided into approximately 500m x 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 density — incident count per km², normalized across neighborhoods (weight: 40%)
Crisis signals — 311 reports (encampments, needles, graffiti) per km² (weight: 20%)
Overdose burden — death count relative to population estimates (weight: 20%)
Service coverage — harm reduction, shelters, treatment sites present (weight: 20%, inverted — more services improve score)
Scores are normalized within Vancouver only and are not comparable to other cities. Index weights may be adjusted as new data layers are added.
Data sources
Data quality validation
Automated quality checks run weekly after data ingestion:
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.
Last updated: February 2026. All source code is open source. Corrections and data source suggestions welcome via GitHub.