School Safety in NYC

Lab Reports, Maps, Visualization


Environment safety is the first concern of parents. No one wants to take a risk to their children study in an environment that has high criminal and violation records. In New York City, students go to school based on their home location. Many parents are willing to relocate to a safer district where the schools also have a good reputation. To learn about the safe environment of the schools in NYC, I decide to visualize the data into a map to check which schools are far away from the high crimes and which schools are near the center of the high crimes.


All the data I used were from NYC OpenData:

2010 – 2016 School Safety Report – Location of the schools

NYPD Complaint Map (Year to Date) – This dataset includes all valid felony, misdemeanor, and violation crimes reported to the New York City Police Department in 2019

NYPD Shooting Incident Data (Year To Date) – List of every shooting incident that occurred in NYC during 2019

I used Carto which is a software as a service cloud computing platform that provides GIS, web mapping, and spatial data science tools on a web browser. Users can upload the dataset and Carto will visualize it into a business outcome.

The map has three layers due to the three datasets I used. The school location was displayed as dots to make sure users can easily identify the numbers of schools at specific locations. A heat map was used to display shooting incidents to highlight the high crimes by color changes. Due to the high amount of complaints, I decided to use Hexbins to display by density. The map was a mess at the first begging since three layers were overlapped. The structure of the layers was changed based on the numbers of the dataset. Now the NYC Complaint is on the bottom, school location is the second layer and the shooting accidents is on the top. Meanwhile, I limited the map with no more than 3 based colors to avoid confusion. The point size of the school location and shooting accident are also decreased.

I also added the filter for users to have a deeper look on the map. The first filter is the complaint description, users are able to see the ranking of different complains, a search bar is also available to help them search the complaint type the users are interested in. The second filter is to display the gun shooting rank and users can filter the specific boroughs. If users click the school dot, the school name will also display.


The shooting mostly took place in the Bronx, Harlem in Manhattan, and between Atlantic and East Flatbush in Brooklyn, while the NYC Complaint has a similar performance. Based on the result, parents should avoid sending their children to a school located in those areas if it is not necessary. On the NYC complaints, between mid and lower manhattan also has high numbers of complaints and very low shooting rate. The result is possible to be affected by the population and tourism in Manhattan.

To get more details about schools in NYC, I found data about Students at Each Middle School Received Offers and Students Formerly Homeless, by School District.

Homeless students are concentrated in Bronx, Harlem, and between Atlantic and East Flatbush in Brooklyn. The students who live outside of those districts have more offers than the students who live inside the districts. It shows the safety of an environment and student performance can be related.


I wanted to have more datasets about school information, like the graduation rate and college offer. They directly show you the possibility of the children can go to college and whether the students are serious about their studies in school. So I can prove the environment safety and school performance are related. However, I was having a very hard to visualize the graduation rate by boroughs. I couldn’t figure out how to show the percentage of graduates in each borough. They were displayed as dots which was very confusing.

I had a very fun time playing with Carto. It is very helpful that it automatically analysis the dataset for me instead of me organize everything. It is important to find the dataset with longitude and latitude, but I also learned that you can use other values to display which I used for the graduation rate and I failed. As a UX designer, all the labs I’ve done are very helpful. They help me to display my insights more directly and convenience in the future.