PakAlerts shows street crime and road alerts for Pakistani cities on one map: where snatchings and robberies are reported, which roads are closed, and which areas get risky at which hours. People in every city already know which streets go bad after dark; we put that knowledge, and the reports behind it, in one place so you can plan when and how you travel.
Every area of about 700 m gets a risk level from 0 to 10 for each hour. Higher means riskier, like the UV index: 0 means nothing is known about the area, 10 is the highest risk we show.
| Level | Means | On the map |
|---|---|---|
| 0–3 | Low little or nothing reported for this hour | No colour |
| 4–5 | Elevated take normal care | Amber |
| 6–7 | High avoid if you can, or go with others | Orange-red |
| 8–10 | Very high the riskiest places and hours | Deep red |
No colour is not a promise of safety. It means low risk or that nothing has been reported yet. The map never calls a place "safe".
Next to every city and town's name is one number from 0 to 10: its city risk level. It comes from its areas. We take each area's risk level averaged over the whole day, then average the riskiest quarter of them, never fewer than five areas, so one bad corner can't make a small town a 9. News that names only the town ("a robbery in Hasan Abdal", with no street) counts toward the town's number as well, but never colours one area, since we don't know where in the town it was. It moves as new reports come in, and a small ↑ or ↓ shows when it changed by a level or more since last week.
Its colour is grey at 0 and green only at 1, then turns through yellow and orange to dark red at 10, a little darker with each level. That green is only for the city number; the map itself never colours an area green. A low city level is not a promise of safety. It can simply mean few reports from that place so far, which is often true for smaller towns. A grey dash (–) means there aren't enough reports yet to give a number.
Serious crimes weigh more than minor ones (armed robbery and street shootings 1.0, kidnapping and sexual violence 0.8, snatching 0.7, theft 0.5, harassment 0.4). Sexual violence is counted in an area's level and shown only as a number, never as a pin, a story or a quote, so no one can be identified. An incident at 1am counts fully for 1am, partly for midnight and 2am, and a little for 11pm and 3am. Fridays count slightly more (×1.1). Every area's panel on the map shows "Why this level": how many incidents of each kind, from which sources, around which hours, and how recent.
for each source (verified, team, community): evidence = Σ crime weight × source weight × ½^(age ÷ half-life) × hour closeness chance = 1 − e^(−evidence ÷ 3) (community: at most 0.6) baseline = hotspot risk × hour pattern × weekday (0 if not a known hotspot) risk level = 10 × (1 − (1 − baseline)(1 − verified)(1 − team)(1 − community)), rounded
Combining the parts like probabilities means more evidence can only raise the level, and it can never pass 10. Example: three verified armed robberies at 1am a month ago, one snatching recorded by our team ten days ago, and two community theft reports today, all in an area that isn't a known hotspot, give risk 7 of 10 (High) at 1am, and less at other hours.
Cities are split into hexagons about 700 m across (H3 resolution 8). This is deliberately coarse, so the map can't be used to single out a street or a house.
Devices build an anonymous track record: New → Contributor (2+ reports confirmed by others) → Trusted (5+ confirmed, few flags). A Trusted device's crime report counts on its own, and its road alerts appear as confirmed straight away. "This looks wrong" flags count against the device that posted the alert. Clearing your browser data resets your device and its standing.
Jams, closures, dharnas, floods, accidents and events appear as pins, and they never change the risk level: they're about traffic, not crime.
Each area shows a confidence of Low, Medium or High, depending on how many independent kinds of evidence agree: published sources, verified incidents, our team's entries and corroborated community reports. Incidents come from police, CPLC and news reports, and from people's own reports; each one shows where it came from.
Nothing about victims or reporters is stored: no name, no phone number and no account. Trip shares are deleted after 6 hours. We count visits with Google Analytics (no ads, addresses shortened); it never runs on trip links or email settings. Map data © OpenStreetMap contributors, map style by Protomaps. Routing uses the public OSRM demo server.
Questions, corrections or press: email pakalertsdotcom@gmail.com. We read every message.