NYC 311 Response-Time Analysis
How fast New York actually responds — measured across 3.46M real service requests.
Problem
Cities report a single citywide 311 'response time' that averages away the truth: one high-volume agency that closes requests in minutes can make a system with multi-week backlogs look fast, and nobody sees where the delays actually live.
Solution
An analysis of every 311 request filed in 2024 — 3.46M rows of live NYC Open Data — that splits response time by agency, normalizes complaint volume per resident, and measures rather than assumes the effect of weather on demand. Built as a governed, tested pipeline, not a throwaway notebook.
Architecture
The NYC Open Data API pull lands in DuckDB and is transformed through a dbt medallion project (staging → intermediate → marts) with data contracts, tests, source freshness, and a right-censoring rule so recent still-open requests don't bias close-time medians. Two more sources — Census borough population and daily weather — are reconciled in, with the join pain documented honestly. Dagster orchestrates; a Streamlit dashboard and a written insights memo carry the findings.