Part 1 of 1 in The Good Side of 311
813,081 questions since January 2024, 60 staffed hours a week. The contact center at the heart of Philadelphia 311.
813,081 of 1.4M Philadelphia 311 records are phone calls into a single contact center, open 60 hours a week. 94.5% of calls close in under a minute.
2026 is a partial year (data through Aug 28). Across all three years, the contact center averages 97.5 calls per staffed hour — roughly one every 37 seconds across its 60-hour weekly window. Source: OpenDataPhilly 311 Service Requests, 2024–2026.
It is 7:43 AM on a Tuesday in Philadelphia. In nineteen minutes, the city’s 311 contact center will open its phones for the day, and the next twelve hours will look much like the previous 887 Tuesdays: a near-empty line at 8 AM, a noon peak, a 4 PM dip, and a long taper to silence by 8 PM. By the time the lines close tonight, the center will have logged somewhere around 1,100 Information Requests — calls, web submissions, mobile-app pings, after-hours voicemails, each stamped with a time and a status note. It will have answered roughly 94.5% of them in under a minute. It will have done the same thing tomorrow, and the day after, and the day after that.
This article is about that operation. Across the 32-month window the city has published, the contact center has logged 813,081 Information Requests — 57.4% of every record Philadelphia 311 has touched since January 2024. By volume, the contact center is the larger of the two 311s. This is what it looks like.
The 60-hour window
Philadelphia 311’s contact center is open 60 hours a week — 8 AM to 8 PM, Monday through Friday. Saturday and Sunday the phone lines are dark; the digital channels (web portal, mobile app, email) accept submissions around the clock, but the city does not separate them from phone calls in the dataset, so the 60-hour window is the operation’s pulse. The other 42.6% are work orders: potholes, dumping, streetlights, missed trash, abandoned vehicles. The contact center is the bigger of the two 311s by volume — anyone who has called about a work order and been told it would take a while to resolve is, statistically, in the smaller half of what 311 does.
Per year, the center answers somewhere between 285,000 and 326,000 questions. What I notice is the per-capita rate: 0.55 calls per Philadelphian over the full window, or about 0.22 per resident per year — averaged across every person in the city, including children, non-callers, and people who did not know to dial 311. That is the average. Some of us never call. Some of us call monthly.
What constrains the operation is the staffing. Over the 32 months in the dataset, the contact center had 8,340 staffed hours to work with — 3,144 in 2024, 3,132 in 2025. The phone rings, on average, 97.5 times per staffed hour: one call every 37 seconds. That is the operating tempo.
Weekday hours (Mon–Fri)
Day of week
The 8 AM bucket is the first staffed hour (58,526 records). Peak shifts to noon (95,121 records), drops back down through the afternoon, and tapers to near zero by 8 PM. Source: OpenDataPhilly 311 Service Requests, 2024–2026.
What the calls look like
The contact center’s default unit of work is the answered question. 94.5% of calls close in under one minute. The median closure time is zero — the agent answers, the record is marked closed, the call ends. The histogram below is the distribution; the green bar is the headline.
Closure time = closed_datetime - requested_datetime. The green bucket is the headline. The long tail (1–7 days, 2.3%) is records that were marked closed days after the call, often after the caller or the agent forgot to close them out. Source: OpenDataPhilly 311 Information Requests, 2024–2026.
That shape is what I would expect from a question-and-answer operation: an agent picks up, the caller asks, the agent answers, the call ends. There is no field crew to dispatch, no permit to schedule, no eviction to file. The contact center is not a service-delivery system. It is an information utility, and it does what information utilities do: exchange information, then hang up.
A reasonable person can disagree about whether a free city information utility should exist at all. I have a position on that, but it is not the point of this article. The point is what the contact center actually does. A caller in the morning might be checking on a rental license. A caller in the afternoon might be looking for the 4th of July parade route. A caller at lunch might want to know where to vote. A caller in the evening might have just had their house broken into, called 311 instead of 911, and want to know what happens next. The contact center handles all of those — and 813,000 other versions of them — through the same 60-hour window, on the same cadence, logged into the same column of the same table. The city’s case for the contact center is not that it does any one of those things especially well. The case is that it does all of them, every business day, without anyone scheduling the call or screening the question.
What the data can and can’t tell us. The contact center’s record is unusually honest about when calls happen and how fast they close — the numbers above come straight from requested_datetime and closed_datetime. The system is much less forthcoming about what the calls were about. The dataset has a subject field for a short description; in the 2024+ data, every row is null. The agent-supplied status_notes field is filled in 791,398 times, but 790,384 of those are the literal string “Question Answered”. Of the 813,081 Information Requests, 97% have no zip code logged. Three of the most operationally useful dimensions of a contact-center record — topic, channel, and caller geography — are not collected. The data this article is built on tells you how the operation runs. It does not, with any reliability, tell you what the calls were for.
The shock absorber
Three days in the 32-month window break from the trend hard enough to register as statistical spikes — days where the volume exceeded the trailing 30-day rolling mean by more than two standard deviations. Across the full dataset, the rolling 30-day mean daily Information Request count sits around 1,000. Here are the three:
| Date | Records | vs. 30-day mean | Event |
|---|---|---|---|
| 2024-11-04 | 3,251 | +62 | Day before US General Election (Nov 5) [source] |
| 2026-02-25 | 2,590 | +103 | Two days after Blizzard of 2026 (residual plowing/parking questions) [source] |
| 2026-02-24 | 2,374 | +50 | Day after Blizzard of 2026 (Feb 22-23 storm, 13.7+ inches) [source] |
Each of those three spikes hit during the same staffed window. November 4, 2024 — the day before the presidential election — logged 3,251 calls, almost three times the rolling mean. February 24 and 25, 2026, the day and the day after the Blizzard of 2026, logged 2,374 and 2,590 calls. On each of those days, the city’s information load more than doubled. The contact center’s answer was the same as on a quiet Tuesday: log the calls, answer them, and close them.
And here is the part I most wanted to know before writing this series. The 602,847 service tickets handled by Streets, L&I, Parks, Police, CLIP, and the rest did not slow down during those spikes. The Pearson correlation between daily Information Request volume and same-day median service-ticket close time, on 930 days with at least 30 closed service tickets, is 0.041 — essentially zero, not distinguishable from noise. The slope is 0.0009 days of median wait per extra Information Request. In plain English: the two halves of 311 run on different rails. When the contact center absorbs a blizzard, the field crews do not feel it.
That is the operation. 94.5% of calls closed in under a minute; three spikes absorbed without measurable drag on the work-order side.
Whether the city should be running an information utility of this size is a fair question, and I have a position on it — but the point of this series is the good side. This series looks into the good side of Philly311, an information system that hundreds of thousands of residents likely rely on. I have called them many times myself and used the app too to submit tickets. The subsequent articles double click on a bunch of different departments and what they do right, so it stops feeling abstract. We will dive into how CLIP handles graffiti problems in an average of 4.9 days — which is insanely impressive IMHO!
Notes, Sources, and Methodology
All 311 data is from OpenDataPhilly’s 311 Service Requests table, the city’s own log of every 311 interaction since the start of 2024. The dataset I worked from covers 1,415,955 records filed between January 1, 2024 and August 30, 2026. Of those, 813,081 (57.4%) are Information Requests — the contact-center cohort this article analyzes. The remainder are service tickets: potholes, dumping, streetlights, missed trash, abandoned vehicles, and the rest of the 311 work-order universe. The Philadelphia population figure (1,484,580) comes from the U.S. Census Bureau’s American Community Survey 2024 5-year estimates, summed across the 46 ZIP Code Tabulation Areas the city covers.
Methodology. Timestamps in the city’s data are stored in UTC; for the hour-of-day analysis, each record’s timestamp is converted to Eastern Time, which automatically respects daylight saving time. The data spans both EST (winter) and EDT (summer) from January 2024 through August 2026. The contact center’s published phone hours are 8 AM to 8 PM on weekdays — 12 staffed hours per day, 60 hours per week. The total staffed-hours figure in the article counts every weekday in the window, including federal holidays; this is a slight over-count of true staffed hours, and the per-hour call rate is correspondingly a slight underestimate. The peak-hour figure (12:00 PM ET, 95,121 calls across all weekdays in the window) is the single busiest hour bucket; the mean figure (one call every 37 seconds) is averaged across the entire 60-hour weekly window. The 2.78% of records timestamped outside the published phone window is a floor on the true digital-channel share, not a ceiling: web, mobile-app, and email submissions made during staffed hours are not separately flagged in the dataset.
Limitations. Three caveats. First, the per-capita figure (0.55 calls per Philadelphian over the full 32-month window, or about 0.22 per year) includes children and non-callers in the denominator; the per-adult-user rate is materially higher. Second, the staffed-hours calculation does not subtract federal holidays, so the true staffed-hours figure is a slight over-count of what the city actually staffs; the call-rate figure is correspondingly a slight underestimate. Third, the spike catalog flags only days whose call volume exceeded the trailing 30-day rolling mean by more than two standard deviations; across the full window, three days clear that threshold — the day before the November 2024 general election, the day after the Blizzard of 2026, and two days after the same storm. Earlier publications of the same analysis flagged additional spike days that no longer clear the threshold now that the rolling statistics have stabilized on a longer window.