Part 2 of 6 in The Good Side of 311
There are four 311 Service Codes where the City massively outperforms, largely in areas managed by the Streets department.
In areas like shutting off open fire hydrants and fixing broken street lights, City workers often fix the problems in days, which is pretty impressive.
Philadelphia 311 publishes a 90-business-day window for street light outages — four months between report and fix. As a citizen, 90 business days is the kind of number that tells you to just live with the dark block. The median close time on that code, across 2,800 tickets in the last two and a half years, is 7.9 days.
I started pulling the data expecting a long list of failures, the way the prior series on 311 did. What I found instead is a different pattern: on four of the 30 service codes Philadelphians actually call 311 about — the four largest of the eight that clear a 2× bar — the median close time runs in days while the city’s published promise runs in weeks or months. The chart above is those four codes, measured against the bar most of the rest of the top 30 fails to clear.
The yardstick: how much faster than the city’s promise is the city actually closing the ticket?
Each 311 service code comes with a published service-level agreement — a number of days, often in business days, the city says it will take to close a typical ticket. The math I use is simple: I take the median actual close time on each code and divide by the published SLA. The result is a promise_ratio. A ratio of 1.0 means the typical ticket closes exactly when the city said it would. A ratio of 0.5 means the city is twice as fast as it promised. The chart above plots the inverse — “times faster than promised” — because that is the number a regular reader recognizes at a glance.
The four codes that clear the bar
Each of these is a workaday 311 service — the kind of ticket a Streets crew, a Water Department crew, or a Parks and Rec crew handles as part of a normal week. None of them is a special case.
- Street Light Outage — Streets Department, 90 business days promised, median close 7.9 days, 11.4× faster than promised. 2,800 closed tickets in the window. Met-rate 85.4%.
- Hydrant Request — Water Department, 30 business days promised, median close 3.1 days, 9.6× faster than promised. 1,183 tickets. Met-rate 92.3%.
- Street Trees — Parks and Recreation, 15 business days promised, median close 1.8 days, 8.2× faster than promised. 10,710 tickets. Met-rate 71.3%.
- Complaint (Streets) — Streets Department, 30 business days promised, median close 3.9 days, 7.7× faster than promised. 2,256 tickets. Met-rate 87.9%.
Together, the four cover 16,949 tickets — 4.7% of the closed tickets in the top-30 cohort and 3.5% of the closed-with-SLA universe as a whole.
What the four share
Read in order, the pattern is less about which agency runs the work and more about what kind of work it is.
Hydrant Request is the cleanest case. A hydrant is either flowing or it is not. The diagnosis is mechanical, the response is part of how the Water Department prevents the low-pressure fire that becomes a fatal fire, and the crews close the tickets the same week they get them. The 30-business-day SLA is an institutional shrug; the operation runs on its own clock.
Street Light Outage looks the same on the ground: a contracted lighting crew drives the route, swaps the bulb, closes the ticket. The 90-business-day published window is indefensible as a commitment to a citizen — it is a number someone put in a table in 2014 and never revisited. But the median close is 7.9 days, because the operation is fine and the published promise is what is out of date.
Street Trees is the largest by volume — 10,710 tickets, median close 1.8 days. Few city services run that fast on a routine ticket; pruning or removing a tree is not light work. Parks and Rec runs the program through a small number of contracted crews who work the same neighborhoods repeatedly, and they close out tickets the same week they get them. The 15-business-day SLA is generous, not aspirational.
Complaint (Streets) is the closest to a catch-all — anything a citizen files against the Streets Department that does not fit a more specific code lands here. Published window 30 business days; median close 3.9 days; met-rate 87.9%, the highest of the four. It is the fourth-fastest-closing code on the chart by median, and the fourth-widest gap between promise and performance.
The pattern across the four is straightforward. Each is a tight loop: a small number of crews who do the same kind of work every week, with a short distance between the citizen’s report and the fix. Each is also core to the agency’s mission — the kind of work the department was built to do. The published SLA is the weakest part of each, and the operation is the strongest.
What “four out of thirty” really means
A reader is going to look at four codes out of thirty and ask two things. The first is the volume question: do these four matter? They do. 16,949 tickets is a meaningful slice of the city’s annual 311 work — more than the abandoned-vehicle backlog in a slow year, more than the street-paving program in a slow year. These are routine 311 tickets, not exotic ones.
The second question is proportionality: eight out of thirty clear the bar at 2×, and the four I am highlighting are 13%. That is a meaningful but minority slice, and I think it is the right read. The top 30 also includes Shoveling (1-business-day promise, met 11.4% of the time), Abandoned Vehicle (120 business days, met 43.0%), and Smoke Detector (60 business days, met 36.1%). The four codes I am highlighting sit alongside those failures, and the contrast is the point. There are codes where the city is keeping its word with margin, and codes where it is not, and the gap between the two is what the rest of this series is going to be about.
The honest summary: eight codes out of thirty over-deliver by at least 2×, and the four in the chart are the four largest of those eight. That is more than I expected when I started. It is also less than the city’s own dashboard implies, because the dashboard counts met-rate alone — and on the four codes in the chart, met-rate is not the story. The story is that the city is closing tickets days faster than the published promise. The published promise is the artifact, not the operation.
Where the data comes from
All data is the OpenDataPhilly 311 Service Requests table public_cases_fc, pulled in 2026. The cohort is 514,360 closed-with-SLA service requests filed 2024-01-01 through mid-2026 with a non-null service_code, a non-null sla_days, a non-null sla_unit, and a closed timestamp. Information Request rows are excluded. The 30 codes analyzed here are the top 30 by ticket count in that cohort; they cover 378,490 tickets, or 73.6% of the closed-with-SLA universe. SLA-met rates use the city’s own unit arithmetic — business-day math for “Business Days” SLAs, calendar-day math otherwise — so a ticket counts as “met” if it closes within the published window under the same rules the city publishes.
On the choice of bar. I picked promise_ratio <= 0.5 as the “material over-deliverer” cutoff before running the analysis, not after. Half the published window is a real margin — it is the difference between “the city is keeping its word” and “the city is doing better than it promised.” I am not interested in codes where the median is 90% of the window; that is performance around the promise, not above it. Eight of the top 30 clear that bar; the four charted here are the largest of them by ticket count.
One thing this article is not measuring. The headline is the median close time. A code with a 1.8-day median and a 256-day p90 — Street Trees has exactly this shape — is over-delivering for the typical citizen and badly failing a small number of them. The long tail is real and matters; it is the subject of the article on Parks and Recreation later in this series.