Each hex shows two things at once: 311 streetlight-out complaints in it, and violent crime complaints NYPD recorded in it. Cells where both are high — where the city should actively investigate the need for better lighting — appear in yellow.
Crime layer. NYPD complaints by report date (RPT_DT). Categories: felony assault, misdemeanor assault, robbery, murder/non-negligent manslaughter — the street-level violence street lighting most plausibly affects. Rape and sex crimes are excluded (they happen overwhelmingly indoors and the lighting/crime literature does not show a meaningful relationship for them). Incidents flagged by NYPD as occurring INSIDE (apartments, bars, stores, etc.) are also excluded; records where the indoor/outdoor field is blank are kept.
Default is night only (8 PM – 6 AM by NYPD's CMPLNT_FR_TM field). Use the toggle above to add daytime crime back in.
Outages layer. 311 streetlight complaints — eight outage codes (light out, multiple lights out, dim, missing lamp, fixture damaged/missing, etc).
Geography. H3 hexagons at resolution — about a block apiece. Cells whose centroid falls in open water are excluded.
"Story" cells (high on both): hexes.
Not coded the same way. NYPD intentionally moves each complaint's lat/lng to the midpoint of the nearest cross-street for privacy — so crime points are snapped to intersections, not actual incident locations. 311 streetlight complaints are geocoded to the reported street address. The two layers have different spatial precision; at this hex size, a crime can land in the next hex over from where it actually happened.
311 reporting bias. Complaint volume tracks who calls 311 as much as actual outage incidence; under-reporting in some neighborhoods is real.
No population denominator. Counts aren't normalized for population, foot traffic, or area — so dense commercial blocks (Midtown, Times Square) can read high simply from how many people pass through, not from how unsafe they are for residents.