scroll · 2026-06-02 · ~6 min · live data

Pandemic 311

Six categories of Philadelphia 311 calls, stacked month by month from 2019-01 to 2024-12. The shape of the city's complaints didn't return to normal — it just settled at a new normal.

Before the pandemic, Philly's 311 categories had shapes you could draw from memory. Trash collection peaked in summer. Pothole reports peaked in spring. Abandoned-vehicle filings and street-light outages ticked along at low, steady rates. The chart on the right plots all six together, stacked from baseline up.

We're frozen on June 2019 — a representative pre-pandemic month. The bands look stable because they were stable.

Then March 2020. Philadelphia issued its first stay-at-home order on March 23rd. By the end of the month, parts of the 311 stack had collapsed.

Maintenance Residential or Commercial fell -57% between February and March 2020. With residents off the streets and city enforcement reduced, the categories that needed someone-else-to-notice simply stopped being filed.

Summer 2020 was the inverse story. As the city reopened in halting phases, the categories that spike when people *are* outside started catching up — and overtook themselves.

Rubbish/Recyclable Material Collection peaked at 9,643 reports in 2020-07 — 6.0× its January 2019 baseline. The reopening didn't return Philly to 2019; it produced a new, louder version of summer.

By late 2020 the trash backlog had its own storyline. Sanitation crews — short-staffed through summer, then drowning in residential waste from a city that had collectively moved indoors — couldn't keep pace. Missed-collection complaints stacked higher than at any point in the previous decade.

Trash and recycling pickup requests (officially Rubbish/Recyclable Material Collection in the 311 system) peaked at 9,643 reports in 2020-07. That band, the lighter one in the middle of the stack, is the visual signature of an infrastructure that buckled and never quite caught up.

Skip ahead to mid-2024. The bands have settled — but they haven't returned to where they started. Some categories run hotter than 2019; some run cooler. The proportions shifted and stuck.

That's the lasting fingerprint of the pandemic on a 311 system. Not a discrete event in the timeline, but a permanent change in the ratio of what residents call about. Each band in the stream tells its own version of that story.

  1. Maintenance Residential or Commercial
  2. Rubbish/Recyclable Material Collection
  3. Abandoned Vehicle
  4. Illegal Dumping
  5. Street Defect
  6. Street Light Outage
View underlying data

Monthly counts per category — same numbers the stacked stream renders. Scroll horizontally on small viewports.

MonthMaintenance Residential or CommercialRubbish/Recyclable Material CollectionAbandoned VehicleIllegal DumpingStreet DefectStreet Light Outage
2019-011,3571,6081,9861,8961,5701,422
2019-021,3281,5281,9161,6472,0331,188
2019-031,5141,7262,0371,9692,7551,061
2019-041,9602,5742,3912,4862,253990
2019-053,0834,2272,2902,5292,3641,047
2019-063,3664,2362,1722,6241,8371,246
2019-073,7663,5892,1392,8281,6921,728
2019-083,5954,3312,3323,1311,5321,484
2019-092,7262,7932,3262,8471,1141,200
2019-101,8632,8332,1512,5379661,209
2019-111,1902,1761,5761,9087061,147
2019-121,2083,3381,6441,7801,0231,134
2020-011,4442,7292,2852,4121,1871,372
2020-021,3642,0722,0112,1861,2731,289
2020-035822,4381,6201,988814947
2020-0405,7889191,818542720
2020-0506,5741,3302,425620916
2020-0606,4991,6992,5437301,556
2020-0709,6432,2322,4289521,503
2020-0804,3052,5512,2299191,351
2020-0901,7072,9592,6047301,018
2020-1001,3362,5272,006544834
2020-1101,7172,1931,7085781,051
2020-1202,7642,0661,7267171,081
2021-0102,7122,4212,1787271,215
2021-0205,0291,7181,0061,288745
2021-0302,1643,2712,2412,1191,193
2021-0402,2483,1232,3241,811834
2021-0502,5652,9442,2101,323850
2021-0605,7693,1872,2231,4581,193
2021-0702,7152,9512,6001,4721,796
2021-0802,5933,0402,6361,2342,532
2021-0902,4352,9672,3341,0893,185
2021-1002,2902,7872,1407593,113
2021-1102,3282,0351,7846483,037
2021-1202,0972,0831,6996242,213
2022-0101,7972,1011,4637622,639
2022-0201,8592,2271,6762,1492,407
2022-0302,1383,0052,1122,3712,618
2022-0401,9212,6281,7922,3241,635
2022-0502,2552,5992,0672,0451,602
2022-0602,6302,9622,4561,9521,777
2022-0702,7962,5362,6411,2891,956
2022-0803,0742,6812,7951,2892,007
2022-0902,4742,4352,2391,1591,539
2022-1002,1052,1221,8731,2101,092
2022-1101,9421,9191,4927781,240
2022-1202,0361,9981,4249821,213
2023-0101,8092,7711,8511,5401,198
2023-0201,6942,4641,4521,343964
2023-0301,9083,2381,8311,6091,157
2023-0401,8542,8781,6361,414965
2023-0502,0752,9232,0451,4371,071
2023-0602,4682,4661,9891,0911,018
2023-0703,1992,4882,5061,2911,397
2023-0803,8923,0912,4531,1051,250
2023-0902,8222,3621,9568901,019
2023-1002,1332,5561,844768918
2023-1101,8752,0971,5655231,002
2023-1201,8191,7971,472661902
2024-0103,2842,2801,5511,3181,142
2024-0201,7842,7191,5931,7471,021
2024-0301,8902,8291,7162,111841
2024-0402,8583,5401,8552,2961,305
2024-0502,3343,5851,9121,640871
2024-0602,4003,0292,1001,244906
2024-0702,9192,9492,3301,2081,094
2024-0802,5743,1782,4961,008897
2024-0901,9392,8412,023619606
2024-1001,9192,5781,874531935
2024-1101,6452,0321,415369842
2024-1202,4861,7931,307743789

Data Sources

Primary dataset: Philadelphia 311 service-and-information requests (public_cases_fc) via phl.carto.com. 72 months × 6 categories, prebaked at deploy (2026-06-02), with a runtime proxy refetch if the build snapshot came back empty.

Queries: topCategoriesByMonthSql(months, TRACKED_CATEGORIES) — a single Carto round-trip across 2019-01 → 2024-12 for the six tracked categories (Maintenance Residential or Commercial, Rubbish/Recyclable Material Collection, Abandoned Vehicle, Illegal Dumping, Street Defect, Street Light Outage). Defined in src/lib/data/datasets/philly-311.ts.

Methodology & caveats: Lockdown-collapse and peak figures in the prose come from the same monthly counts: lockdownDelta compares Feb 2020 → Mar 2020 per category; peakByCategory picks each category's max-count month within the window. Chart: LayerCake + d3-shape stacked stream, hand-themed against the data-zine palette. Band ordering is fixed by the TRACKED_CATEGORIES constant so the legend stays stable across the scroll; opacity is the only thing that changes per beat.