Methodology · Version 1.1

What the map can—and cannot—tell you.

StreetLens is an exploration layer over records published by public agencies. We preserve source context, normalize only what is needed for comparison, and make uncertainty visible.

01

Records, not a real-time crime count

Every pin begins with a row published by an official source or a manually curated entry with an exact source URL. Agencies update records at different intervals, and recent events can be delayed or revised.

StreetLens uses “reported records” and “records in the selected dataset” because a map count is not a definitive total of everything that occurred in a city.

02

A shared normalized schema

Chicago, Philadelphia, and Baltimore publish different fields. StreetLens maps them into shared concepts such as incident date, category, fatality, victim-record count, block, neighborhood, generalized coordinates, source agency, and retrieval date.

Fields absent from an official record remain absent. We do not fill missing coordinates with a city center, infer a neighborhood from a person’s identity, or manufacture a classification.

03

Grouping and deduplication

Some datasets contain one row per victim. Chicago rows are grouped by CPD case number; Philadelphia rows are grouped by police DC number; Baltimore records are grouped by BPD CC number. The resulting pin retains a victim-record count without exposing victim demographics.

A grouped pin is a display decision, not a claim that every related row has identical legal or investigative meaning.

04

Approximate location and privacy

StreetLens uses the block-level or generalized location published by the agency. Public coordinates are shifted slightly and consistently for display so the visualization preserves neighborhood-level accuracy without emphasizing a precise private residence.

Victim names, age, race, sex, ethnicity, personal contact information, and apartment or unit numbers are not automatically shown.

05

Verified mini Casefiles

Selected incidents may receive a manually curated mini Casefile after the official incident identifier is matched to supporting sources. Names, roles, summaries, and media are never inferred from a nearby pin or added by automated face or image matching.

Every published person or image entry requires a source, review status, and media-use basis. Booking photos are labeled separately from victim portraits, allegations are not presented as findings of guilt, and non-graphic scene media is hidden behind an explicit reveal when sensitivity warrants it.

06

Categories and allegation language

“Homicide,” “fatal,” and “nonfatal shooting” reflect the source dataset’s current classification. An incident record does not establish who caused the event or whether any person is guilty.

Manually curated entries must link to a source. Charges and accusations are described as allegations unless a verified source establishes a later outcome.

07

Corrections and source failures

When an official source is temporarily unavailable, StreetLens preserves the last successful D1 cache and labels it with its retrieval date. It never substitutes fabricated records. If no cache exists, the map shows a clear unavailable state.

See a possible error? Submit a correction request with the StreetLens page and a supporting primary source.