Unsolved Crimes

Exploring America's Unsolved Murders

The Purpose

Every year, at least 5,000 killers get away with murder. The rate at which police clear homicides through arrest has declined over the years until, today, about a third go unsolved. As a result, more than 229,000 Americans have perished in unsolved homicides committed since 1980 — more than the combined death toll of all U.S. military actions since World War II. The official national statistics on murder are actually estimates and projections based upon incomplete reports by police departments that voluntarily choose (or refuse) to participate in federal crime reporting programs. This project will spotlight those communities that fail to report important information to the FBI’s Uniform Crime Report and Supplementary Homicide Report — two important databases that can be used to help account for unsolved homicides.

The Origins

This website gives the public easy-to-use access to a dataset maintained by the Federal Bureau of Investigation: the Uniform Crime Report from 1965 to the present. This site uses the FBI database as found on the Murder Accountability Project website. The Murder Accountability Project, using the Freedom of Information Act, obtained data on more than 27,000 homicides that were not reported to the Justice Department, making this the most complete data on U.S. homicides available anywhere. The Murder Accountability Project is an outgrowth of a 2010 national reporting project conducted by the newspapers and television stations owned by the E.W. Scripps Co. The computer algorithm that can spot serial killings within FBI computer files was developed as part of that project.

The Data

Data used in the creation of this site was assembled in SPSS format and will run with the open source program PSPP available at no cost from Gnu Software. These files are also available in Comma Separated Values format (CSV) which will load into any statistical software. You can download the CSV file by clicking here.

Our team used the above linked CSV data. We cleaned the data with Python in Jupyter Notebook. If you are interested in seeing our Jupyter Notebook code, click one of the following links. One Notebook will show the teams data cleaning techniques, and the other will show the code used to generate the static charts in later sections.

JN Data Cleaning Technique

JN Static Chart Creation

Visit the Murder Accountability Project for more information. about the dataset or their compilations.



Crimes By State






Additional Crime Charts



Click on the chart thumbnails below to expand and see additional data. The charts below reflect national data as well as data specific to North Carolina.



Project Requirements

For this second project, your task will be to "tell a story" through data visualizations. Unlike the first project, where you focused on using the "Analytics Paradigm" to explore relationships in "report form", this project should be more focused on providing users an interactive means to explore data themselves. Just as with the first project, you will be asked to conduct a 10 minute presentation that lays out your theme, coding approach, data munging techniques, and final visualization. You may choose a project of any theme, but we encourage you to think broadly. The universe is wide and expansive. Don't limit yourself to what you know. You will have roughly two weeks to complete this project. You will present your final work on Saturday (March 03, 2018). You will have ample time in class to work with your group (but expect to put in some long nights in the days ahead).

Specific Requirements

The project hs several specific requirements. We have outlined them below.

  1. Your visualization must include a Python Flask powered RESTful API, HTML/CSS, JavaScript, and at least one database (MySQL, MongoDB, SQLite, etc.)
  2. Your project should fall into one of the below four tracks:
    • A custom "creative" D3.js project (i.e. non-standard graph or chart)
    • A combination of Web Scraping and Leaflet or Plotly
    • A dashboard page with multiple charts all updating from the same data
    • A "thick" server that performs multiple manipulations on data in a database prior to visualization (must be approved)
  3. Your project should include at least one JS library that we did not cover.
  4. Your project must be powered by a dataset with at least 100 records.
  5. Your project must include some level of user-driven interaction (e.g. menus, dropdowns, textboxes, etc.)
  6. Your final visualization should ideally include at least three views


The Team


Kettyl Amoakon

Benjamin Fisher

Randi Howell

Zach King

Deanna Ryder


Connect With Us

JN Data Cleaning Technique | JN Static Chart Creation