311 & service requests

New York's 311 service requests in Python: complaint types, response times, noise, heat and hot water, maps per resident, and the duplicates and impossible dates in the records.

Monthly bars of New York heat and hot water complaints to 311 in 2025, tall in winter and almost nothing in summer. the heating season, counted in phone callsJFMAMJJASONDNYC 311 heat and hot water complaints, 2025: 67,229 in January, 2,929 in August

New York's 311 line receives every non-emergency request residents make to the city — a blocked driveway, a party next door, no heat in January — and the city publishes each one as open data: 3,655,042 requests in 2025, each with its complaint type, agency, location, channel and the dates it was opened and closed. It is the richest record of what residents ask of a city, and a record of requests, not of problems, which shapes everything it can show.

The guides here load and count the requests, explain the fields, measure response times, map complaints per resident by neighbourhood and in H3 hexagons, follow noise through the day and heat complaints through the weather. Three pages deal with the traps: requests closed before they were created, requests with no location, and duplicate requests that inflate the counts.

🧭 Start with the concepts

The ideas the how-to guides below assume you already have.

⚙️ Then do the task

Step-by-step walkthroughs with code you can copy and adapt.

🔧 When it breaks

The errors this topic produces, with the cause explained rather than just the command.

Related topics

Subjects that keep coming up alongside this one, most overlap first.

Keep browsing

311 & service requests sits in Analysis. Every topic on the site is listed on the topics index.