Methodology
Last updated 2026-05-15. This page documents how the risk scores on every ward page are computed. Read this before relying on anything you see here.
CrimeRadar covers Mumbai, Bangalore, Delhi, Chennai, Hyderabad, Kolkata, Pune, Gurugram, and Noida. Mumbai has the most complete data pipeline; other cities are being layered in iteratively as their police forces publish parseable data. The data quality flag on each city's page tells you where it sits.
68
distinct URLs in data files
14
unique upstream hosts
43
with ward-level data
Live data status
- Mumbaicalibrated
- City stats
- 1d old
- History
- 42 months · 1d old
- Absconders
- 24 names
- Bangalorecalibrated
- City stats
- 1d old
- History
- 5 months · 1d old
- Absconders
- —
- Delhicalibrated
- City stats
- 1d old
- History
- 5 months · 1d old
- Absconders
- 56 names
- Chennaicalibrated
- City stats
- 1d old
- History
- 5 months · 1d old
- Absconders
- —
- Hyderabadcalibrated
- City stats
- 0d old
- History
- 5 months · 1d old
- Absconders
- —
- Kolkatacalibrated
- City stats
- 0d old
- History
- 5 months · 1d old
- Absconders
- 10 names
- Punecalibrated
- City stats
- 0d old
- History
- 5 months · 1d old
- Absconders
- —
- Gurugramcalibrated
- City stats
- 1d old
- History
- 2 months · 1d old
- Absconders
- 84 names
- Noidacalibrated
- City stats
- 0d old
- History
- 3 months · 1d old
- Absconders
- —
- Ahmedabadcalibrated
- City stats
- 0d old
- History
- —
- Absconders
- —
- Coimbatorecalibrated
- City stats
- 0d old
- History
- —
- Absconders
- —
- Indorecalibrated
- City stats
- 0d old
- History
- —
- Absconders
- —
- Jaipurcalibrated
- City stats
- 0d old
- History
- —
- Absconders
- —
- Suratcalibrated
- City stats
- 0d old
- History
- —
- Absconders
- —
- Lucknowcalibrated
- City stats
- 0d old
- History
- —
- Absconders
- —
- Kochicalibrated
- City stats
- 0d old
- History
- —
- Absconders
- —
- Nagpurcalibrated
- City stats
- 0d old
- History
- —
- Absconders
- —
- Kanpurcalibrated
- City stats
- 0d old
- History
- —
- Absconders
- —
- Bhubaneswarcalibrated
- City stats
- 0d old
- History
- —
- Absconders
- —
- Patnacalibrated
- City stats
- 0d old
- History
- —
- Absconders
- —
- Bhopalcalibrated
- City stats
- 0d old
- History
- —
- Absconders
- —
- Ranchicalibrated
- City stats
- 0d old
- History
- —
- Absconders
- —
- Thiruvananthapuramcalibrated
- City stats
- 0d old
- History
- —
- Absconders
- —
- Dehraduncalibrated
- City stats
- 0d old
- History
- —
- Absconders
- —
- Gandhinagarcalibrated
- City stats
- 0d old
- History
- —
- Absconders
- —
- Panajicalibrated
- City stats
- 0d old
- History
- —
- Absconders
- —
- Raipurcalibrated
- City stats
- 0d old
- History
- —
- Absconders
- —
- Chandigarhcalibrated
- City stats
- 0d old
- History
- —
- Absconders
- —
- Shillongcalibrated
- City stats
- 0d old
- History
- —
- Absconders
- —
- Aizawlcalibrated
- City stats
- 0d old
- History
- —
- Absconders
- —
- Imphalcalibrated
- City stats
- 0d old
- History
- —
- Absconders
- —
- Itanagarcalibrated
- City stats
- 0d old
- History
- —
- Absconders
- —
- Kohimacalibrated
- City stats
- 0d old
- History
- —
- Absconders
- —
- Agartalacalibrated
- City stats
- 0d old
- History
- —
- Absconders
- —
- Shimlacalibrated
- City stats
- 0d old
- History
- —
- Absconders
- —
- Srinagarcalibrated
- City stats
- 0d old
- History
- —
- Absconders
- —
- Jammucalibrated
- City stats
- 0d old
- History
- —
- Absconders
- —
- Lehcalibrated
- City stats
- 0d old
- History
- —
- Absconders
- —
- Puducherrycalibrated
- City stats
- 0d old
- History
- —
- Absconders
- —
- Port Blaircalibrated
- City stats
- 0d old
- History
- —
- Absconders
- —
- Amaravati (Vijayawada)calibrated
- City stats
- 0d old
- History
- —
- Absconders
- —
- Guwahaticalibrated
- City stats
- 0d old
- History
- —
- Absconders
- —
- Gangtokcalibrated
- City stats
- 0d old
- History
- —
- Absconders
- —
| City | Quality | City stats | History | Absconders |
|---|---|---|---|---|
| Mumbai | calibrated | 1d old | 42 months · 1d old | 24 names |
| Bangalore | calibrated | 1d old | 5 months · 1d old | — |
| Delhi | calibrated | 1d old | 5 months · 1d old | 56 names |
| Chennai | calibrated | 1d old | 5 months · 1d old | — |
| Hyderabad | calibrated | 0d old | 5 months · 1d old | — |
| Kolkata | calibrated | 0d old | 5 months · 1d old | 10 names |
| Pune | calibrated | 0d old | 5 months · 1d old | — |
| Gurugram | calibrated | 1d old | 2 months · 1d old | 84 names |
| Noida | calibrated | 0d old | 3 months · 1d old | — |
| Ahmedabad | calibrated | 0d old | — | — |
| Coimbatore | calibrated | 0d old | — | — |
| Indore | calibrated | 0d old | — | — |
| Jaipur | calibrated | 0d old | — | — |
| Surat | calibrated | 0d old | — | — |
| Lucknow | calibrated | 0d old | — | — |
| Kochi | calibrated | 0d old | — | — |
| Nagpur | calibrated | 0d old | — | — |
| Kanpur | calibrated | 0d old | — | — |
| Bhubaneswar | calibrated | 0d old | — | — |
| Patna | calibrated | 0d old | — | — |
| Bhopal | calibrated | 0d old | — | — |
| Ranchi | calibrated | 0d old | — | — |
| Thiruvananthapuram | calibrated | 0d old | — | — |
| Dehradun | calibrated | 0d old | — | — |
| Gandhinagar | calibrated | 0d old | — | — |
| Panaji | calibrated | 0d old | — | — |
| Raipur | calibrated | 0d old | — | — |
| Chandigarh | calibrated | 0d old | — | — |
| Shillong | calibrated | 0d old | — | — |
| Aizawl | calibrated | 0d old | — | — |
| Imphal | calibrated | 0d old | — | — |
| Itanagar | calibrated | 0d old | — | — |
| Kohima | calibrated | 0d old | — | — |
| Agartala | calibrated | 0d old | — | — |
| Shimla | calibrated | 0d old | — | — |
| Srinagar | calibrated | 0d old | — | — |
| Jammu | calibrated | 0d old | — | — |
| Leh | calibrated | 0d old | — | — |
| Puducherry | calibrated | 0d old | — | — |
| Port Blair | calibrated | 0d old | — | — |
| Amaravati (Vijayawada) | calibrated | 0d old | — | — |
| Guwahati | calibrated | 0d old | — | — |
| Gangtok | calibrated | 0d old | — | — |
City stats refresh monthly (1st of each month); absconders refresh weekly (Mondays). Both run via GitHub Actions and commit any data deltas back to the repo, which redeploys the site within ~1 minute. Click a value to open the official source.
Data sources
- Geometry: ward boundaries (BMC 24, BBMP 243, MCD 290, GCC 201, GHMC 145, KMC 141) from the public
datameet/Municipal_Spatial_Datarepository. - Mumbai — city-level crime counts (live): we ingest the most-recent Mumbai Police monthly crime statistics PDF and extract year-to-date registered case counts. Refreshed daily.
- Bangalore — single-month city counts (live): extracted from the latest KSP monthly review (district-wise table, Bengaluru city column).
- Chennai — annual city counts (live): Tamil Nadu Police 2023 CSVs via OpenCity.
- Per-ward apportioning (calibrated): real city totals are apportioned to wards via a hand-built relative-weight matrix. Real scale × editorial relative weights → per-ward counts. Quality flag is calibrated.
- Cities without live stats (Delhi, Hyderabad, Kolkata): per-ward values come from a 4-tier model (distance from city centroid) plus deterministic noise. Quality flag is seeded.
- Named absconders: only persons on official police CrPC §82 lists — Mumbai (mumbaipolice.gov.in/absconder_list, 24 entries), Delhi (delhipolice.ncog.gov.in proclaimed offenders, 56), Kolkata (WB CID Most Wanted, ~10). No accused, no FIR-named, no news-named. See naming policy.
Risk score formula
For each ward w we compute a raw score weighting crimes against women highest, then violent crimes, then property crimes — all normalised per 1,000 residents:
raw(w) = 3.0 · women_crimes(w)/pop_per_1k
+ 2.0 · violent(w)/pop_per_1k
+ 0.5 · property(w)/pop_per_1k
p5, p95 = 5th and 95th percentile of raw across that city's wards
risk(w) = round(100 · (clamp(raw(w), p5, p95) − p5) / (p95 − p5))Where women_crimes = sexual offences + harassment + kidnapping; violent = robbery + assault + sexual offences + kidnapping; property = theft + burglary.
Night-time multipliers
Night mode reruns the formula with each incident multiplied by its category's night-time multiplier. These come from NCRB national time-slot tables and published research — not city-specific.
| Category | Night multiplier |
|---|---|
| Sexual offences | 2.4× |
| Assault | 1.8× |
| Robbery | 1.7× |
| Sexual harassment | 1.6× |
| Kidnapping | 1.4× |
| Burglary | 1.3× |
| Theft / Chain-snatching | 1.1× |
| Other | 1.0× |
Limitations
- Reporting bias. Higher-score wards may reflect higher reporting, not higher actual crime.
- Aggregation bias. Wards span several km²; the score averages very different sub-areas.
- Time-of-day is national, not local. Night-time multipliers come from NCRB national tables.
- Per-ward data is editorial outside Mumbai. calibrated = absolute scale is real; seeded = even the scale is editorial.
- Not a replacement for judgment.Trust your instincts and don't rely on any map to keep you safe.
Spotted an error? Email eemanwithai@gmail.com.