Back to map

How this works

Karachi Watch colors the city on a 0–10 safety scale that changes with the hour of day and the day of the week. It is a glance-tool — not a crime tracker.

Where the numbers come from

The base risk for each area is seeded from public reporting on Karachi street crime — Dawn's coverage of CPLC-identified hotspots for phone snatching, Citizens-Police Liaison Committee statistics, and news reporting on high-incidence districts (Gulshan-e- Iqbal, Korangi, Malir, Landhi, Orangi, Saddar, Shah Faisal, North Karachi, Sohrab Goth, among others).

On top of that base risk, we apply a time-of-day multiplier that depends on what kind of area it is:

  • Commercial streets are safer during shopping hours, riskier after shops close.
  • Residential lanes are safer during the day, more exposed late at night.
  • Transit hubs and arterials skew riskiest in the early morning and late evening.

What this is not

  • Not a live feed of incidents. We never show individual snatching or robbery pins.
  • Not a substitute for local knowledge. If it feels wrong, trust yourself.
  • Not police data. The seed is public reporting, conservatively estimated.
  • Zones are coarse (~900m hexagons) on purpose — a bad actor can't use this to pick a specific street.

Scoring rules (exact)

Model v0.3.0 · last refreshed 2 days ago (2026-07-20). Every 0–10 score is computed with a single formula:

risk  = min(1, baseRisk × timeMultiplier[areaType][hour] × weekdayMultiplier[weekday])
score = max(0, 10 − risk × 10)

Base risk per zone type

  • commercial: Shops, markets — safer while busy, riskier after closing.
  • residential: Housing lanes — safer during the day, quieter (riskier) late at night.
  • arterial: Main roads — riskier when traffic thins (early morning, late evening).
  • transit: Bus stops, chowrangis — riskiest at empty hours.
  • mixed: Blend of the above — averaged multiplier.

Hour multipliers (0 = midnight → 23 = 11pm)

Type01234567891011121314151617181920212223
commercial1.301.351.401.401.351.200.900.700.600.550.500.500.550.550.550.550.600.650.750.901.051.151.251.30
residential1.351.401.451.451.401.200.950.750.700.700.700.700.700.700.700.700.750.800.901.001.101.201.301.35
arterial1.351.401.451.451.401.200.850.700.650.600.600.600.600.600.600.600.650.750.851.001.151.251.301.35
transit1.401.451.501.501.401.150.850.750.700.650.600.600.600.600.650.700.800.901.001.101.201.301.351.40
mixed1.351.401.451.451.401.200.900.750.700.650.600.600.650.650.650.650.700.800.901.001.151.251.301.35

Weekday multipliers

Sun
×1.00
Mon
×1.00
Tue
×1.00
Wed
×1.00
Thu
×1.05
Fri
×1.10
Sat
×1.05

Confidence per zone

Each zone shows a confidence pill: Low (1 source), Medium (2), High (3+). Tapping a hex lists exactly which articles back its classification.

Weights are hand-tuned from public reporting, not learned from labelled incident data. We publish them in full so anyone can audit or challenge them.

Sources

Every zone on the map is tagged with the reporting behind it — tap any coloured area to see the specific articles and CPLC statistics that back its classification. The full list is here so you can verify it yourself.

Sources listed inform the base risk of each zone. We do not republish incident-level data. If we've misclassified an area or missed a well-documented hotspot, please open an issue.

Community reports (live layer)

On top of the seed, anonymous reports filed from inside Karachi nudge a zone's score. The seed layer always dominates — a handful of reports can never turn a green zone dark red on their own.

  • A zone only appears as "reported" once 2+ different devices have filed within the last 30 days. Single-device rows never move the map.
  • Each report is GPS-verified at submit time — you have to be within ~900m of the zone. Rate-limited to 3/hour and 10/day per device.
  • Weight decays over 30 days and is scaled by kind (armed robbery > snatching > theft > harassment). Night-time reports (22:00–05:00) get a small amplifier.
  • The total community boost is capped at +0.25 (~2.5 points on the 0–10 scale). Tap any hex to see seed vs. community broken out.
  • The map polls for new reports every ~90 seconds and refreshes when you return to the tab.

We never show individual reports, notes, photos, or exact times to other users — only aggregated counts per zone.

About the maker

Noman Ghani

I built this because Karachi deserves better than "everyone just knows" folk knowledge about which streets go bad at which hours. If you have data, a correction, a partnership idea, or a bug — please reach out.

iamnomisg@gmail.com
Map tiles © OpenStreetMap contributors, © CARTO. Data seeded from public reporting; no personal or victim information is stored or displayed.