After You Call: A Deep Dive on Philly 311 · Part 3 of 9
The bigger 311 story isn't the gap. It's the wait.
Lower-income Philadelphia neighborhoods wait 19 days longer for 311. Three-quarters of the gap is the work itself — abandoned cars, blight.
The Y-axis is capped at 180 days to keep routine services legible. Source: OpenDataPhilly 311 Service Requests.
The three leftmost services — Smoke Detector, Abandoned Vehicle, Traffic Calming — each close in four to five months in both income tiers. Everyone is waiting that long. The 10-day gap on a missed-rubbish pickup is real and worth fixing; against the five-month waits on the left, it is a rounding error.
I went in expecting to find more evidence of disparate impact by income, building on the parent article that found the 2.5-day difference, and I did: in seven of the ten categories on the chart above, the lower-income zips wait longer. But I found something more important. People in this city are routinely waiting months for simple things like towing cars.
A few weeks ago I wrote that Philadelphia 311 requests from lower-income zip codes wait longer to close than the same kinds of requests from higher-income zip codes. The pattern was clear. The mechanism was not. I promised, in that article, to come back and test whether the gap was about the city responding more slowly to the same things, or about the kinds of things each neighborhood was asking for in the first place. This article is that test.
The economics literature calls this the Kitagawa-Oaxaca-Blinder decomposition: it splits the gap between two groups into a “rates” piece, the part that would persist even if both groups asked for the same things, and a “composition” piece, the part that comes purely from asking for different things. I ran it on the 311 data.
The gap has two explanations, and each calls for a different fix
The first is delivery discrimination: an abandoned-vehicle complaint in a lower-income zip takes longer to resolve than the identical request in a higher-income one, because crews respond faster to calls from wealthier blocks. The second is demand composition: lower-income neighborhoods disproportionately generate request types that are inherently slow to resolve (abandoned vehicles, blight remediation, illegal-dumping cleanups), and higher-income neighborhoods disproportionately generate request types that are inherently fast (parking complaints, missed curbside recycling pickups). Same response standard, harder workload.
If delivery discrimination dominates, the city has a service-delivery problem, and the right response is some combination of crew reallocation, response-time auditing, and equity mandates. If demand composition dominates, the city is answering the same requests at about the same speed, and the problem is upstream: the abandoned properties, illegal dumping sites, and deteriorating infrastructure that generate the harder work orders in the first place. Those require a different intervention: capital investment, demolition, and remediation.
What the lower-income zips are actually asking for
The two tiers do not file the same requests. Here is the mix for each tier, service by service.
Each row is one service category: orange (left) is the lower-income tier's share, blue (right) the higher-income tier's, sorted by gap so the services where lower-income zips over-index the most sit at the top. The other 29 categories account for 31% of lower-tier and 48% of higher-tier requests. Source: OpenDataPhilly 311 Service Requests.
The lower-income zips file Maintenance Complaints at almost three times the rate of the higher-income zips (17.2% of all requests vs 6.1%). They file Abandoned Vehicle reports at three times the rate (7.0% vs 2.3%). They file Smoke Detector complaints at more than five times the rate (1.7% vs 0.3%). The volume differences are not subtle.
Reverse the comparison and the higher-income zips are not filing more of the slow services; they are filing fewer. The categories that dominate the higher-income mix are the routine ones: rubbish and recycling, illegal dumping, graffiti removal. These categories also happen to be the ones with the shortest mean waits.
Three-quarters of the gap is the mix, not the response time
The observed gap in this restricted analysis is 19.2 days. It decomposes to:
The composition effect (the part of the gap that comes from lower-income zips asking for harder things) is more than three times larger than the rate effect (the part that comes from the city being slower on identical things). Both effects point the same direction, and both are real, but the demand-mix difference is the dominant force.
Two service categories drive the entire decomposition. Maintenance Complaint and Abandoned Vehicle together account for the bulk of the gap. Maintenance Complaint alone contributes about 9.9 days of the total effect: 8.0 days from composition and 1.8 days from within-service rates. Abandoned Vehicle contributes about 7.6 days: 6.9 from composition and 0.7 from rates. Both are slow, both are heavily skewed toward lower-income zips, and both reflect the physical condition of the built environment.
Top 5 services by contribution to the mean KOB decomposition of the 2024+ 311 wait-time gap, lower-income vs higher-income zips (n=230,080 requests, 39 services). Blue is the composition effect (different mix of requests); amber is the within-service rate effect. Bars are in days. The five services shown add up to 22.5 days, more than the whole decomposition; the other 34 subtract about 3.2 days. Source: OpenDataPhilly 311 Service Requests.
The 24% is where the city might be doing something wrong
Inside the 24%, the biggest gaps are Smoke Detector complaints (37.7 days), Right of Way Unit (34.5 days) and Stop Sign Repair (29.5 days). These are large absolute numbers and none of them is a big service: each accounts for under 2% of the requests in either tier, so a 30-day gap moves the weighted total by a fraction of a day. The high-volume services carry smaller gaps: Maintenance Complaint runs 10.7 days longer in lower-income zips, on 17.2% of their requests; Abandoned Vehicle runs 10.1 days longer, on 7.0%.
Some of the within-service rate gaps point the other way. A street defect in a lower-income zip closes in 53.6 days on average; the same report in a higher-income zip closes in 64.6 days. That is an 11-day gap, but in the higher-income direction. The mean is dominated by the long tail of bad cases — the multi-year repairs, the abandoned work orders, the cases that get stuck in the system — and on those cases, the higher-income zips do worse. The pattern reverses on street-light outages, on street paving and on sanitation violations too. It is not safe to read the rate effect as “the city is slower to poor neighborhoods on the same work.” It is messier than that.
Decomposing the gap is one way to look at it. Another is to ask whether the work is actually harder in a poorer neighborhood for the same kind of service. There are abandoned cars in U-shaped streets in North Philly that are hard for a tow truck to get into. Those kinds of streets are less frequent in Society Hill and non-existent in Center City. An abandoned vehicle whose owner cannot be located, or whose title is in probate, takes just as long to clear wherever it is. The “rate” gap on the slow services may not be a delivery-discrimination gap at all. It may be a residual difficulty gap, after controlling for the category.
If the 24% is mostly a difficulty gap rather than a discrimination gap, then the fix is not to move crews around. The city would need to invest in the tools and staffing that make hard work less hard, or, more bluntly, accept that some of these requests will take a long time no matter who is responding. A smoke-detector complaint in a building with no working smoke detectors in any unit is not the same kind of work as one in a building where the detector just needs a new battery. The 311 system cannot tell the difference, and the mean reflects that.
Notes, Sources, and Methodology
All data is the OpenDataPhilly 311 Service Requests table public_cases_fc, pulled 2026-06-08 and restricted to filings from 2024-01-01 forward, excluding Information Requests and any ticket whose elapsed days fell outside 0-365. The cohort is 230,080 closed requests from 20 zip codes — the 10 lowest and 10 highest of the 43 Philadelphia ZCTAs with an ACS 2022 five-year median household income (B19013), so a tier is a position in the income distribution, not a dollar cutoff; the 23 in between are held out. The underlying table has been refreshed since this pull, so a fresh pull will not reproduce these figures exactly.
Methodology. The Kitagawa-Oaxaca-Blinder decomposition splits the gap in mean wait time into a composition effect (the two tiers asking for different things, weighted by the higher tier's mean) and a rate effect (the city closing the same things at different speeds, weighted by the lower tier's share); the two sum to the observed gap up to a 0.06-day residual (Blinder 1973, "Wage Discrimination: Reduced Form and Structural Estimates"; Oaxaca 1973, "Male-Female Wage Differentials in Urban Labor Markets"). Service categories with fewer than 30 requests in either tier are dropped, leaving 39 of the 49 categories in the cohort.
Limitations. The 10 dropped categories hold 255 requests between them, and their exclusion does not change the 76/24 split.
https://nickjain.com/blog/311-service-mix-decomposition