topic · 8 stories · 1 dataset

Fire & Emergency

Every PFD dispatch, every EMS call, every shooting victim, and every overdose death leaves a record. This track traces the geography of emergency response in Philadelphia: which zip codes generate the most fire calls, how false alarms dwarf actual fires, where the medic-unit load actually lands vs. where you'd expect, the eight-year arc of shootings by district, and where the overdose crisis concentrated in 2024. The data comes from PFD incident logs, the city's police shooting feed, and published opioid statistics.

Stories

scrollytelling 2026-05-10

Where Philly burns

47% of PFD calls are false alarms. Only 14% are actual fires. And one zip — Kensington — accounts for nearly a fifth of every fire in the city. A scroll through what the Philadelphia Fire Department actually responds to since 2024.

scrollytelling 2026-05-10

Stations and zips: who PFD answers to

Sixty-three stations, seven battalions, a million dispatches — and a small handful of zips that swallow most of the call load. A scroll-driven walk through the busiest places and the busiest stations, with the map's data morphing between every beat.

scrollytelling 2026-05-10

Medic-unit load

PFD's medic units carry roughly four EMS calls for every fire the department answers — and the geography of that load doesn't track the geography of where the medics live. Where raw volume and per-unit workload diverge.

scrollytelling 2026-05-10

Where shots land

Eight years of shooting victims, plotted block by block, then rolled up by police district. The pre-pandemic baseline, the 2021 peak, the partial recovery — and the three districts that absorb most of every year, regardless of trend.

scrollytelling 2026-05-10

The Narcan Map

Two readings of Philadelphia's overdose crisis: where the deaths landed in 2024, and where the Opioid Response Unit's Narcan kits went. The city's published trend tells you direction; only the raw counts tell you scale.

article 2026-05-10

The non-fire fire calls

Only 14% of PFD dispatches are actual fires. A taxonomy of the other 86% — false alarms, good intent, service calls, hazmat, weather. The operational reality behind the department's name.

article 2026-05-10

EMS vs. fire, by neighborhood

Citywide PFD answers four EMS calls for every fire. Each of Philadelphia's nine broad regions tells its own version of that ratio — Center City leans medical, the river wards carry both.

article 2026-05-10

The day shape of Philly crime

Six categories of PPD incidents, twenty-four hours each. Thefts spike at rush hour; aggravated assaults skew toward bar close; residential burglary tilts to daytime when residents are out. The fingerprint of each crime by hour.

Datasets

Data we'd like to find

Stories in this track keep running into the same missing fields and feeds. If you know where to find any of these, get in touch — each is a story waiting for the right column.

PFD apparatus dispatched

PFD · Open

The fire-incident layer publishes which incident type and where, but not which engine, ladder, medic, or specialty rig responded.

Would unlock "busiest engine," "busiest ladder," and per-rig run-volume comparisons across stations.

Where to look

  • OpenDataPhilly — Search for an "incident apparatus" or "unit dispatch" feed alongside the existing stat360_fire_incidents layer.
  • PFD FOIL request — Right-to-Know Act request for unit-level dispatch logs.
  • NFIRS extracts — The federal NFIRS database carries per-unit fields; PFD submits to it.

PFD first-due station per incident

PFD · Open

Incidents lack a column naming the station that responded; we approximate via a centroid-to-nearest-station spatial join.

Replacing the proxy with the published assignment would give exact per-station run counts and let us show overrun patterns when first-due is unavailable.

Where to look

  • PFD response-zone shapefile — A station response-area polygon set, if published, would let us assign by geometry rather than nearest-point.
  • PFD FOIL request — Same vehicle as above; ask for response-zone or unit-assignment data.

EMS-only dispatch feed

EMS · Investigating

PFD’s `stat360_fire_incidents` mixes fire and EMS via an `incident_type_category` field; an EMS-only layer with finer call-type detail (e.g. "Medical Emergency", "MVA", "Cardiac") doesn’t appear in the published catalog.

Would let the medic-unit-load story drill into call-type mix per zip and per medic unit instead of treating "Rescue & EMS" as a single category.

Where to look

  • PFD EMS division — The bureau publishes annual reports with breakdowns; ask whether the underlying feed is on ArcGIS.
  • OpenDataPhilly — Periodically check for new EMS-tagged feeds.

Per-incident PPD demographics + outcome

PPD · Open

The Carto `shootings` table publishes victim race/sex/age and a fatal flag, but not arrest status, charged offense, or case clearance. `incidents_part1_part2` carries category and district but no demographic or outcome detail.

Would let the police stories follow incidents downstream of the dispatch — clearance rates by district, charging patterns by offense type, the gap between "called in" and "resolved."

Where to look

  • PPD Annual Crime Report
  • PPD FOIL request — Per-incident clearance / charging data is held by the PPD Records Bureau.

Narcan administrations (per-incident or aggregated)

OPIOID · Open

Overdose deaths are published; the volume of Narcan administrations (not kits distributed) per incident or per zip is not in the current pipeline.

Would let the Narcan story show "saves" alongside losses — the response side of the same crisis.

Where to look

Response time distributions by incident type

PFD · Open

Neither the fire nor the (not yet wired) EMS feed publishes per-incident response time — only annual averages in PFD’s public reports.

Would unlock "where does PFD arrive fast vs. slow" and let us compare against published NFPA targets per call type.

Where to look

  • PFD annual report PDFs — Aggregate only; would need extraction.
  • PFD FOIL request — Per-incident dispatch / on-scene timestamps.