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

Lower-Income Philly: Closed 311 Tickets Got 28% Real Action

In lower-income Philly zips, 28% of closed 311 tickets ended with real action; in higher-income zips, 50%. The 22-point gap is what 'closed' means.

When 311 closes a ticket, what fraction of “closed” actually means “closed”?

Share of closed 311 tickets whose closure note records real action (verbs like resolved, completed, repaired, cleaned, removed, abated). The 21.8-pp gap between lower- and higher-income zips is the article. n = 67,337 closed tickets after excluding 1,803 too-ambiguous closures. Source: OpenDataPhilly public_cases_fc.

Picture a 311 user in Strawberry Mansion who calls about a chronic complaint on her block. Two months later, the ticket shows “closed,” with a note that the city “provided information” — and no record that any work was done.

“Closed” is the same word in every neighborhood. The work behind it is not. In Philadelphia’s lower-income zip codes, 28% of closed tickets end with the city actually dispatching a crew. In the higher-income zip codes, it’s 50%.

I worked through all 69,140 closures from 2024 onward to find out what the word actually means, and what the gap is made of.

The Headline: How Tickets Close by Zip

The table below breaks each tier’s closed tickets across the seven categories. Each row sums to 100% (1,803 ambiguous closures excluded, footnoted).

ResolutionLower-income zipsMiddle-income zipsHigher-income zipsLower − Higher
Action taken27.9%30.4%49.7%−21.8
Information only / no action60.5%56.1%34.2%+26.4
Out of jurisdiction / referred10.2%12.2%14.3%−4.0
Unable to locate0.7%0.7%1.8%−1.0
Aged out / no response0.3%0.2%0.1%+0.3
Cancelled0.2%0.2%0.0%+0.1
Duplicate0.1%0.2%0.1%+0.1

n = 67,337 closed tickets with non-null status_notes, 2024-01-01 through 2026-06-08, after excluding Information Requests and 1,803 ambiguous closures. Source: OpenDataPhilly public_cases_fc.

The two big columns are mirror images. In higher-income zips, the dominant closure is “Action taken” (49.7%) — the city actually did the work. In lower-income zips, the dominant closure is “Information only / no action” (60.5%) — the city called back, marked “Service Not Needed,” or scheduled an appointment. The action-taken gap is 21.8 percentage points.

When you do fancy statistical analysis on this table - you learn this relationship between tickets being "really closed" and wealth is almost certainly not a coincidence.

What “Closed” Actually Means

The 311 system uses a small fixed vocabulary of dropdown strings to record what the city did. I categorized all 69,140 closures with an LLM using the full ticket context — service, agency, address, time-to-close, closure note. Seven categories fell out. Three cover most of the data:

  • Action taken — the city actually dispatched a crew and resolved the problem. Verbs like resolved, completed, repaired, cleaned, removed, fixed, filled, abated. This is what “closed” is supposed to mean. 21,761 tickets.
  • Information only / no action — the city called back, told the resident something, scheduled an appointment, or marked the request “Service Not Needed.” No physical work was done. 36,752 tickets.
  • Out of jurisdiction / referred — the city concluded the problem was somebody else’s. 7,886 tickets.

The Slow Category Is Also the No-Action Category

I also looked at how long each category takes to close. The fastest are “Out of jurisdiction / referred” — median 0.54 days — where the city recorded the referral and moved on. “Action taken” tickets median 5.0 days.

I did not expect the no-action closures to be the slowest. They are, by a factor of fifteen: 78 days for “Information only / no action” versus 5 days for “Action taken.” A ticket closed with “Service Not Needed” or “Information Provided” sits open for more than two and a half months. The city isn’t meeting any SLA. It is meeting the procedural requirement: the ticket is closed.

The slowest closure type disproportionately applies to lower-income zips. The fastest legitimate one disproportionately applies to higher-income zips. A 311 user in Strawberry Mansion whose ticket ends in “Service Not Needed” waits more than fifteen times as long as one in Chestnut Hill whose ticket ends in “Issue Resolved” — and ends up with a different outcome.

How a Service Looks Up Close

The 22-point citywide gap is broad enough to hide how it’s distributed across services. Here are the five top services by ticket volume, with the lower-vs-higher action-taken rate for each.

ServiceAction taken (lower)Action taken (higher)Gap (pp)n
Abandoned Vehicle0.1%0.4%−0.323,553
Graffiti Removal90.3%76.4%+13.919,779
Street Trees3.8%6.2%−2.48,214
Homeless Encampment Request0.0%0.0%−0.03,734
Rubbish/Recyclable Material Collection0.4%0.5%−0.12,327

n = 57,607 closed tickets across the five top-volume services.

Graffiti Removal is the surprise — the sign of the gap is the opposite of the citywide pattern. Lower-income zips get 90.3% action-taken; higher-income zips get 76.4%. My read: graffiti is a category the Streets Department has invested in. Its Community Life Improvement Program (CLIP) has a dedicated removal unit, serving the heaviest-graffiti neighborhoods — which are the lower-income ones. The procedural gap shows up except where the city has explicitly resourced the work.

Abandoned Vehicle and Rubbish / Recyclable Material Collection are both essentially paperwork. Abandoned vehicles route through the Police Department and L&I; rubbish collection is a Streets Department service. 99.7% and 99.1% of those tickets in lower-income zips (98.9% and 97.4% in higher) close as “Information only” — the city tells the resident something (often a code-enforcement timeline) and moves on. The 311 system wasn’t built to dispatch crews on either.

Homeless Encampment Request is the cleanest case of “not our job.” The Office of Homeless Services does the outreach; 311 routes the request, and 100% of those tickets close as “Out of jurisdiction / referred” in both tiers. The system is being used to ask the city for something it has explicitly said it does not do. Street Trees shows a similar pattern — Parks and Recreation handles city-property trees, PennDOT handles state-road trees, the property owner handles the rest. 37.6% of lower-tier and 43.1% of higher-tier tickets get referred.

What Could Explain the 22-Point Gap

A few methodological notes before the bigger point. I’m reading the city’s own dropdown vocabulary, so any errors in its coding are inherited. The 62% of closed tickets with no status_notes at all are out. The chi-square is decisive on the differences I do see.

The mix of services each tier calls 311 for differs — and most of the 22-point gap is that mix, not how the city handles calls within a service. The per-service table shows within-service action-taken rates mostly the same or flipped (graffiti, 90% vs 76%; abandoned vehicle and rubbish nearly all paperwork in both). An earlier article in this series found the same for wait times — 71% mix, 29% within-service rate.

That’s not a defense of the system. It’s a sharper indictment. The reason the 22-point gap exists is that the city’s portfolio routes lower-income requests to services the city has said it does not do: Homeless Encampment (100% referred in both tiers), Abandoned Vehicle (99.7% information-only in lower-income), Rubbish Collection (99.1% information-only). The closures are the same in both tiers. The portfolio is the problem.

What I found, putting the decomposition aside: in the poorest zip codes, only 28% of closed tickets ended with the city actually doing the work. In the wealthiest, half did. Both got the same status. The closures look very different.

"Closed" is Not Equally Closed for All

The 311 system reports publicly its "closed" rate as a success metric. And sure, a blended ~50% closed rate is not great at face value, but at least closed means it's done right? Instead, and quite sadly, my research revealed that not only does closed actually mean seven completely different things, the quality of how "closed" something is varies with how rich you are. Maybe only the rich deserve closure?


Notes, Sources, and Methodology

The 311 system uses 19 distinct closure strings to record what the city did. From the most common down: “Information Provided” (31,057), “Issue Resolved” (20,171), “Referred to another organization” (7,885), “Service Not Needed” (5,318), “Other” (1,761), “Completed” (1,249), “Unable to find issue at location” (573), “Repair Completed” (284), “Spoke with customer” (218), “Unable to reach customer / no response” (146). Data from OpenDataPhilly’s public_cases_fc 311 Service Requests table, 2024-01-01 through 2026-06-08. I restricted the analysis to closed tickets with a non-null status_notes and excluded service_name=’Information Request’, leaving 69,140 tickets across the 46 mapped Philadelphia zip codes. I categorized all 69,140 tickets with an LLM using a constrained nine-label prompt and the full ticket context. An independent regex pass, which sees only the closure note, agreed with the LLM on 97.3% of closures (Cohen’s κ = 0.955).

The headline table excludes 1,772 “Unable to determine” and 31 “Unfounded” closures (1,803 total, 2.6% of the cohort). The closure note for these tickets does not tell me whether work was done or whether the underlying issue existed, so they are not part of the action-vs-paperwork question. The remaining 67,337 tickets are re-normalized per tier; the action-taken rate goes from 27.3 / 29.7 / 47.4 (unfiltered) to 27.9 / 30.4 / 49.7 (filtered), widening the lower-vs-higher gap from 20.2 to 21.8 percentage points.

The chi-square test on the 3 × 7 tier × category contingency table returned χ² = 2,361 (dof = 12, p < 1e-10), significant after Bonferroni correction for 7 categories. Income tiers follow the same ACS 2022 5-year zip-code cutoffs as the parent article (lower < $35K median household income, higher ≥ $65K).