Part 2 of 9 in After You Call: A Deep Dive on Philly 311

Three-Fifths of Philadelphia's 311 Gap Is About Which Complaints People File

Most of 311's income gap in wait times is about which complaints poorer zips file. The service part sits in one place: L&I maintenance complaints.

I called 311 about abandoned cars from Strawberry Mansion, where I lived for two years. The first one took 13 months to resolve. The second one is still there three years later, with three flat tires, a smashed trunk, and a partially shattered back windshield.

That is my experience of one corner of this system. Here is the same system taken apart by agency and by complaint type.

Start with the honest split. In the data I use here (requests from January 2024, information requests dropped, closed cases only, waits capped at 365 days), a request from a lower-income zip code takes 7.87 days to close. The same request from a higher-income zip code takes 4.62 days. The gap is 3.25 days.

The obvious reading is that the city just works slower in poor neighborhoods. So I did something to test that. I took every complaint a lower-income zip code filed and reweighted the higher-income tier to have the same mix of complaints, then recomputed its median wait. It moves from 4.62 days to 5.89 days.

Which means the 3.25-day gap is 1.98 days of composition (poorer zips file different complaints, and the ones they file are the ones the city is slowest at) and 1.27 days of delivery (the same complaint takes longer to close in a poorer zip). That is 61% composition and 39% delivery. Uncapped, it comes out about the same: 5.31 days total, 3.13 composition, 2.17 delivery.

My first article on 311 wait times by income put the citywide gap at 2.5 days (7.2 days in lower-income zips, 4.7 in higher-income ones). Same 43 zip codes, same income rule, same 365-day cap, and the gap here is 3.25 days. The difference is mostly not method. 311 is a live table: rebuilding the June window out of a later cache counts the tickets that were still open on June 8 and have since closed, and those tickets are not a random sample. They had a median wait of 159 days, and poorer zips hold 3.3% of them against 1.8% in richer ones.

3.25 days
Longer wait in poorer zip codes
61%
Of that gap is which complaints people file
+29.5 days
L&I maintenance complaint gap

Most of the gap is which complaints poorer zips file, not how fast the city closes them

That 1.98-day composition piece does not come from one category. It is what the L&I and CLIP gaps below are made of, and it changes what the citywide number means.

Composition is a strange thing to report, because it is not the city failing. The work order itself is different. A zip code with more condemned buildings, more illegal dumping, more abandoned vehicles generates a longer queue of cases that nobody can close quickly, no matter who closes them. That is a condition of the neighborhood, not of the crew that has to go look at it.

311 Service Request Volume by Agency — Philadelphia, 2024–2026
Streets DepartmentLicense & InspectionsPolice DepartmentCommunity Life Improvement ProgramParks & Recreationall otherWater Department (PWD)

Streets handles 59.6% of the requests in the table below. Police, L&I and CLIP together handle 34.0%.

The gap is not spread across agencies

6 agencies clear 1,000 requests in both income tiers, and their median waits are below. These are uncapped numbers, so a case that sat open for two years still counts as a two-year wait. The Water Department clears the threshold too, and its gap is −0.30 days: it closes a little faster in poorer zips. Public Health filed only information requests in this window, which are not part of this analysis, so it does not appear at all. The last row aggregates Fire Department and Office of Homeless Services, neither of which clears 1,000 in both tiers, and it is reference-only: it averages across services that have nothing in common, and its higher tier holds only 1,903 requests.

Median 311 Wait Days by Agency and Income Tier
AgencyRequestsLower medianHigher medianGap (days)Top service gapp90 gap
License & Inspections72,97167.434.0+33.4Maintenance Complaint (+29.5)+53.3
Community Life Improvement Program37,68419.95.1+14.8Maintenance Complaint (+2.6)+52.1
Streets Department273,7274.84.0+0.8Alley Light Outage (+13.0)−5.0
Water Department (PWD)7,0382.02.3−0.3Hydrant Request (+1.1)−2.2
Parks & Recreation12,2525.15.8−0.7Parks and Rec Safety and Maintenance (+4.0)+115.1
Police Department45,559225.8328.8−103.0Abandoned Vehicle (−104.7)−73.8
All other (reference only)9,916111.30.9+110.4——

n = 459,147 closed requests across seven rows (2024–2026), uncapped. The p90 column mixes the two effects the way the median does, so it is not a measure of how fast the same complaint closes.

Capped at 365 days, so the numbers sit next to the 3.25-day citywide number, each agency’s median gap splits into two pieces: the part where the city closes the same complaint more slowly in poorer zips, and the part where poorer zips send a different mix of complaints.

Where each agency's median gap comes from (capped at 365 days)
AgencyMedian gapSame complaint, slowerDifferent mix of complaints
License & Inspections+26.33+10.59+15.74
Police Department+24.28+23.73+0.55
Community Life Improvement Program+14.61+1.13+13.48
Streets Department+0.84−1.02+1.86
Water Department (PWD)−0.29−0.06−0.23
Parks & Recreation−0.34+0.27−0.62
Same complaint, slowerDifferent mix of complaints

These bars do not add up to the 3.25-day citywide gap and are not meant to: a citywide median is dominated by whichever agency holds the most volume. Police’s bar flips negative when the 365-day cap is removed, which is the subject of its own section below.

L&I’s gap is the one that survives every treatment I tried

L&I’s largest complaint category is Maintenance Complaint, and on that category a lower-income zip waits longer for the same work, a gap of +29.47 days. Capped at 365 days the gap is +22.34. An August 30 pull of the same table gives +26.16 uncapped and +17.83 capped.

L&I: every complaint category, poorer vs richer zips
ServiceLower medianHigher medianGap (days)Lower n
Maintenance Complaint98.6069.13+29.4717,078
Construction Complaints7.276.96+0.303,901
License Complaint85.24106.89−21.652,904
Dangerous Building Complaint7.509.79−2.291,976
Fire Safety Complaint88.9683.54+5.42767
LI Escalation1.861.84+0.02555

L&I by complaint category, uncapped. Services with at least 100 cases in both tiers. Source: OpenDataPhilly 311 Service Requests 2024–2026.

The rest of L&I’s menu has no gap like that. Construction, Dangerous Building and Fire Safety all come out near parity. License Complaints actually run the other way, −21.65 days, and richer zips wait longer. It is one category out of six, and it is the whole L&I story.

A Maintenance Complaint is the bucket for reports of unsafe or noncompliant conditions at a property that are not immediately life-threatening: broken stairs, missing handrails, peeling paint, structural concerns that are not an emergency. It is the case type where an inspector has the most room to decide how urgent the situation is, because the property owner is responsible for the fix and the city’s job is closer to monitoring than to acting.

The L&I maintenance complaints filed from 19121, Strawberry Mansion, close with a median of 105 days (1,304 requests). The same complaint filed in the four downtown zips closes in 30 to 70 days depending on the zip — 19102, 19103, 19106, 19107, on 93 to 257 requests each. Missing handrail, broken stairs, peeling paint. Same city, same office, same bucket, 35 to 75 days apart.

And Strawberry Mansion is not the worst of it. 19140 Hunting Park takes 126 days on the same complaint (2,176 requests), and 19151 Wynnefield takes 121 (946). I lead with Strawberry Mansion because it is the block I lived on, and I would rather it stand for the city than against it. The pattern is not really about that block anyway. Take the ten poorest zips and the ten richest, and look at each zip’s own median for this one complaint: every one of the ten poorest is slower than the median of the ten richest, and 8 of the ten richest are faster than every one of the ten poorest.

CLIP’s gap is about what poorer zips send it, not how fast it works

The Community Life Improvement Program (CLIP) is a small unit most Philadelphians have never heard of. Its job is to combat blight: graffiti removal, illegal dumping cleanup, and maintenance complaints against residential and commercial properties. It is essentially L&I’s quality-of-life twin, sitting under the Office of Clean and Green Initiatives.

On its own services, CLIP is almost perfectly equal. Graffiti Removal: 4.87 days in lower-income zips, 4.80 in higher-income ones, a gap of +0.07 days, the same capped or uncapped. Maintenance Complaint: 41.72 against 39.08, a gap of +2.64. Opioid Response Unit: −0.13.

And yet CLIP’s agency-level gap is +14.78 days, 92% of it composition. Poorer CLIP zips send 62.8% of their CLIP tickets as Maintenance Complaints, which close in about 42 days. Richer CLIP zips send 77.9% of theirs as Graffiti Removal, which close in about 5. Different work, different clock. CLIP is not slower at the same job.

Graffiti removal is the closest thing to perfect equity in this dataset.

The Police number depends on where you truncate it, and neither version is a finding

Abandoned Vehicle is 99.6% of lower-tier Police tickets and 99.2% of higher-tier ones. It is the whole Police file.

Uncapped, richer zips wait longer: 331.41 days against 226.74, a gap of −104.67 days. The Police Department’s own median gap is −103.00. Cap the wait at 365 days and it flips: 115.02 against 138.92, a gap of +23.90, and the agency gap becomes +24.28.

The reason is differential censoring. 44.4% of closed Police tickets in the higher-income tier are more than 365 days old, against 31.4% in the lower-income tier. The cap throws away proportionally more of the rich tier’s slow cases, so its median falls further than the lower tier’s.

The Police abandoned-vehicle queue has no interpretable income gap in either direction. What I can say is that the volume in lower-income zips is about four times the volume in higher-income ones, and that whether the city closes those cars faster in one zip than another is a question this data does not answer.

The two biggest 311 operations in the city, Streets and Parks, are close to equal

The Streets Department handles trash collection, streetlight outages, potholes, snow. Its median wait is 4.8 days in lower-income zips and 4.0 in higher-income ones. That is a gap of +0.8 days.

Parks & Recreation has a median wait of 5.1 days in lower-income zips and 5.8 in higher-income ones. The gap is −0.7 days.

Some services inside Streets run the other way. Street Light Outage: 8.1 days in lower-income zips against 20.7 in higher-income ones, a gap of −12.7 days. Richer zips wait longer for a street light.

These are the two largest, most routinized 311 operations in the city, and they are close to equal — the comparison standard for the other four agencies in the table.

The city misses its own promises more often in poorer zips, and L&I misses them most

Most 311 cases carry a service notice with a number of days the city committed to. This is a different cut of the same data, and the picture is not the same as the median gap.

SLA Met-Rate by Agency and Income Tier
AgencyMet lowerMet higherGap (pp)Higher-tier cases with a promise
Fire Department35.0%55.2%−20.11281
License & Inspections33.7%43.5%−9.809,884
Streets Department60.2%65.9%−5.6559,310
Parks & Recreation66.0%69.8%−3.772,125
Office of Homeless Services94.9%93.9%+1.001,620
Community Life Improvement Program92.3%90.9%+1.3311,396
Water Department (PWD)90.4%86.5%+3.931,422
Police Department42.0%37.0%+4.953,734

Met = closed within the promised number of business or calendar days, as stated in the service notice. Source: OpenDataPhilly 311 Service Requests 2024–2026.

L&I is the one that carries weight. It misses its own promise 9.8 percentage points more often in lower-income zips — close to one case in ten where the city told a lower-income resident “we will be there in X days” and did not show up, and the promise was the same in both zips.

Fire’s gap is −20.11 points, meaning it hits its promise more often in the richer zips, but it rests on 281 higher-income requests with a promise on file. I would not read anything into it.

Streets and Parks miss their promises more often in lower-income zips, by 5.65 and 3.77 points. Police, Water and CLIP flip the sign: the city hits its promise slightly more often in lower-income zips for each of them. For Water that is 90.4% met against 86.5%. On CLIP’s numbers, a 92% met rate sits next to a 42-day median wait on Maintenance Complaints, its biggest lower-tier complaint, which tells you the promised windows there are long rather than that the work is easy.

The city is not overloaded, and for most of the city the gap is not about speed

The “the city is overburdened” defense does not survive this breakdown. The Streets Department handles more than three times L&I’s volume on trash, lights, potholes and snow and runs an essentially equal operation across income tiers. Parks runs an equal operation on a fraction of the volume. Whatever is producing the L&I maintenance-complaint gap, it is not the size of the workload.

The thing I did not expect is the other half. For most of this city, the gap is not the city being slower on the same work. It is poorer neighborhoods filing the complaints the city is slowest at, and that needs a different fix than moving crews around.

The one part I can pin on a specific office is L&I’s maintenance complaints. What I cannot tell you is where those extra 29 days go. A median is one number per zip, and I have not checked whether the delay is spread across every block of a poor zip or concentrated on a handful of them.


Notes, Sources, and Methodology

All data is from the OpenDataPhilly 311 Service Requests table public_cases_fc, requests filed between 2024-01-01 and 2026-06-08, with Information Requests and rows without a usable close date dropped; income is U.S. Census Bureau ACS 2022 five-year estimates, table B19013.

Methodology. Income tiers are quartiles of ACS 2022 five-year median household income across the 43 zip codes that have a value: the bottom ten are the lower tier, the top ten the higher tier, and the 23 in between the middle, with no dollar cutoffs. Every comparison here covers the 460,337 requests in those 43 zip codes, and everything is a median because these distributions have a long tail of never-closed cases.

Limitations. The 311 table is live, and this snapshot was rebuilt from a later pull, so tickets that were still open on June 8 and have since closed are counted, and a fresh pull will not reproduce these medians exactly.