Analysis of Brooklyn 311 Complaints During COVID-19

Final Projects, Visualization


For this project, I was interested in further exploring what 311 complaints in Brooklyn looked like during COVID-19, as I had done in my previous Tableau and Carto labs. During the course of this summer 2020 semester, New York City has gone from Phase 1 through Phase 4 of reopening. This project analyzes 311 complaints in Brooklyn through the end of Phase 3, on July 19. 

Using several visualizations, my goal was to explore the following questions: 

  1. How did 311 complaint types correspond to each phase of reopening? 
  2. How do this year’s complaints (both in volume and type) compare to the same time period in 2019?
  3. Are there any significant patterns or trends to zoom in on and analyze?


The process starts with exporting datasets from NYC Open Data, which makes all 311 service requests from 2010 – present available. This is a very large dataset, so I filtered it based on the borough (Brooklyn) and date range (March 1 – July 19, 2020) before exporting it as a CSV file. I then did a second export with the same borough and date range filters for 2019.

Filtered 311 dataset on NYC Open Data

While exporting these datasets, I noticed that there is now a caveat on this page that was not there a few weeks ago:

NOTE: This data does not present a full picture of 311 calls or service requests, in part because of operational and system complexities associated with remote call taking necessitated by the unprecedented volume 311 is handling during the Covid-19 crisis. The City is working to address this issue

I’m not sure what this means for the accuracy of the 2020 data. However, it seems that I can safely conclude that, since (spoiler alert) my findings show that there was an increase in complaint volume this year, there are likely even more complaints that have not been recorded.

I used Tableau to create several visualizations based on these 311 datasets. I start by connecting the 2 CSV files containing my datasets to Tableau. Next, I appended the 2019 dataset to the 2020 dataset by using Tableau’s union function. If I were to do this again, I would have appended the datasets outside of Tableau. I encountered some bugs with this and I think it would have been cleaner to do data prep before importing to Tableau. (Note: I ran into some technical issues with Tableau Public during this process and ended up upgrading to Tableau Desktop because it has additional features.)



View interactive visualization on Tableau Public

This dashboard is intended to (1) introduce the timeline and trends of 311 complaints and (2) show a comparison between 2020 and 2019. I created two line charts that illustrate the number of 311 complaints by type per week. I aligned them on the dashboard so that a visual comparison between similar dates is easy to do. Initial charts containing all complaints were too busy and hard to read, so I decided to sort and filter the chart to show the top 10 311 complaint types. I highlighted the complaint types that appeared significant using color and labeling. When I showed the first iteration of this to my UX participants (Arianna and David), they gave me feedback that it was hard to understand what the labels were referring to. As a result, I changed the labels to match the mark color of the line they correspond to. When viewing the previous version, the UX participants also said that the various colors and heavier line weights made it a bit difficult to read and understand what stands out. I agreed and as a result of that feedback, I reduced the line weight, greyed out less significant complaints, and increased the color opacity so that I could better highlight significant complaints. I think the final result in the above image looks much cleaner.

Finally, I annotated the 2020 chart with some of the significant dates related to COVID-19, including the timing of the phased reopening and the peak in reported cases on April 15 (via NYT).


You can see in the first dashboard that the most significant trend in the 2020 311 complaints was a major increase in illegal fireworks. I have read and heard many anecdotal accounts of a perception in increased fireworks this year, but I wanted to see what the actual data says. I decided to do some visualizations to zoom in on the 311 complaints about fireworks in Brooklyn, comparing this year to 2019.

View interactive visualization on Tableau Public

I first created a simple bar chart to show the total count of fireworks complaints this year as compared to 2019. Next, I created an area chart to show a comparison of the number of complaints by week. Finally, I created two point distribution maps, using the addresses the complaints were made from. I initially created maps of complaints by zip code, which used point size to illustrate the number of complaints. I didn’t think this approach demonstrated visual density or made a good visual comparison between the years, so I changed the maps to point distributed by address. Because 2020 had such a high number of complaints, I reduced the point size and opacity to make the overlap in the clusters more visible. Initially, the points on the 2019 map were so sparse that I increased the size to make them more visible. However, when one of my UX participants asked me why the points on the 2019 map were bigger than the 2020 map, I realized that there needed to be a 1:1 sizing. I resized them to be the same size as the 2020 points and increased the opacity of the color to make them more visible. These maps are interactive when viewing the dashboard in Tableau Public, so you can see details such as date and address of complaint.



The first dashboard containing the week-by-week line charts illuminates several things about the 311 complaints:

  1. There was an overall higher volume of 311 complaints in Brooklyn in 2020 as compared to 2019.
  2. There were a few complaint types that peaked around the same time in both years (heat and hot water complaints in March, noise complaints – residential loud music/party in late May).
  3. There were patterns of increased complaints that corresponded to significant dates and phases of reopening:
    1. Around April 15, the peak of reported COVID-19 cases, there were a notable amount of social distancing complaints (categorized as non-emergency police matters). This could be attributed to (1) this being a new complaint subcategory that was added around that time and (2) a high level of anxiety among city residents at the peak of the crisis.
    2. On June 9 Phase 1 began and so did a spike in complaints about fireworks and street noise – loud music/party. Perhaps some Brooklynites were emerging from their homes after months of sheltering in place and feeling celebratory, while others were feeling quite annoyed with the increased activity. 
    3. The fireworks complaints continued to increase through Phase 2 from June 22 through July 5. The complaints began to decrease at the start of Phase 3, but it’s of note that the timing of this decrease also corresponds to being after the July 4th weekend.


The second dashboard of visualizations using 311 fireworks complaints data shows pretty clearly how dramatically the complaints have increased this year: 6134% (and that’s just the borough of Brooklyn). In 2020, the fireworks complaints began much earlier than in 2019. There were some similarities: both years had their highest number of complaints close to July 4 and the highest concentration of complaints from the 11226 zip code (Flatbush).


I discussed this a bit as part of the process sections of this report, but the UX research process clarified for me how important color choice and hierarchy is for highlighting what you want people to see. For the most part, the fireworks dashboard was very easy for the participants to understand quickly. I think that comparing two distinct complaint types using two colors (red for 2020 and teal for 2019) makes it a lot more straightforward than comparing several using several colors, as I did in the line charts. The feedback from the participants allowed me to make the line charts cleaner and easier to read.


If I were to make revisions to this project, I would probably add a few more ‘zoom in’ analyses (like I did for the fireworks complaints) of other significant 311 complaint types during COVID-19. Also, I had technical issues publishing my visualizations to Tableau Public that caused timing out and many failed attempts to publish. Any change or minor tweak I wanted to make would mean a drawn out period of time trying to publish a new version. If I were to revise, I might tighten things up a bit more. For instance, I would add an annotation of the 6134% increase in fireworks complaints to the bar chart. Finally, if I were to take this project forward, I would expand it by doing the same analysis of 311 complaints during COVID-19 on NYC as a whole, as well as a borough by borough comparison.