Brooklyn 311 Complaints During COVID-19

Charts & Graphs, Lab Reports, Visualization


NYC311 is a resource for the public to submit service requests and complaints about issues such as street repairs, noise complaints, unsafe building conditions, etc. These complaints are submitted by phone or web and then routed to the appropriate city agency by the service. For this project, I was interested in exploring what 311 complaints looked like in Brooklyn during the COVID-19 pandemic. I used a dataset from NYC Open Data to explore this and create some visualizations.

Total number of complaints submitted to 311 in Brooklyn by type from March – June 2020. Created with Tableau.


As a starting point, I took a look at a few visualizations of 311 data on the web. This one is a sort of demo of another visualization platform called OmniSci. It’s more of a ‘here’s what our product can do’ illustration, but it did inspire me to generate a heatmap of the data I was analyzing.

The other set of 311 visualizations I reviewed is from a student project at the University of Berkeley iSchool. It uses some more advanced tools (Hadoop, Python, Hive ai) than I used to create mine. It does raise an issue that I encountered earlier in the project, was that the unfiltered 311 dataset is huge, being several gigabytes. Their solution was to use an API to import the data and keep it live and up to date. My solution was to filter my dataset using a few criteria.


I used NYC Open Data to search, filter, and export the dataset into a CSV file. I then uploaded the CSV to OpenRefine to clean up the data, but ultimately didn’t make any changes. Finally, I added the dataset to Tableau Public to analyze and create the visualizations.

Image of filtered dataset on NYC Open Data


There was quite a bit of trial and error during the process of creating these visualizations in Tableau Public. As I mentioned earlier, I initially intended to download the full NYC311 dataset, containing all complaints in all 5 boroughs from 2010-present. This did not end up working because the dataset was several gigabytes and my computer was having issues downloading a file that size. I then decided to filter the data to get a smaller dataset. I filtered by the borough of Brooklyn and between the dates of March 1, 2020 – June 22, 2020. This gave me a dataset of all 311 complaints in Brooklyn during the period of the COVID-19 pandemic. I then worked with that to create several visualizations in Tableau Public.

In Tableau, I started with a bar graph to look at totals of each complaint type to see which category got the most complaints. This was interesting, but I wanted to go deeper to see how the complaints changed (increased or decreased) over time. I then created a line chart that shows a week-by-week rate of complaints in each category. I pulled out separate line charts of a few complaint categories showing drastic change over time (e.g. illegal fireworks, recently) and then combined all line charts into a dashboard. Finally, I created a heatmap to show a zoomed-out view of daily 311 complaints and added that to a dashboard with a map of complaints by zip code.


Image of Tableau dashboard: Brooklyn 311 Complaints during COVID-19 by Complaint Type.
Image of Tableau dashboard: Brooklyn 311 Complaints during COVID-19 by Complaint Type. Link to interactive Tableau dashboard here.
Image of Tableau dashboard: Brooklyn 311 Complaints during COVID-19 Daily Complaint Heatmap.
Image of Tableau dashboard: Brooklyn 311 Complaints during COVID-19 Daily Complaint Heatmap. Link to interactive Tableau dashboard here


One takeaway you might have from looking at these visualizations is that the noise and similar nuisance complaints increase right around the same time as the city went into Phase 1 of reopening. In the line chart you can see that in April there were a large number of social distancing related complaints, but those drop off pretty dramatically in May. Does this mean that, by June, social distancing is no longer at the front of New Yorker’s minds?

If I were to continue further with this project, I might look at the complaint numbers by city agency. In looking at the data, I could see that many of these complaints ended up being directed to the NYPD. It might be interesting to analyze the percentage of non-criminal matters assigned to the NYPD by the city and do a further analysis of how that could be restructured in efforts to reduce over-policing and overall police-citizen contact.