library(ggplot2)
library(plotly)
library(kableExtra)
library(dplyr)
library(forcats)
library(here)
library(leaflet)
library(sf)

load(file = here("data-outputs", "WA940.rda"))

# Select homicides
# Remove suicides and some final cases that don't belong
## 25804-5 are the Tad Norman case in Lake City. 
## Not victims of police violence.
## they were killed by Norman

homicides <- finaldata_940 %>% 
  filter(circumstances.fe != "Suicide" &
           feID != 28698 & #deputy crash while having stroke
           feID != 25804 & #next 2 killed by suspect, not police
           feID != 25805) %>%
  filter(city == "Seattle") %>%
  arrange(date)

finalSEA_940 <- finaldata_940 %>% 
  filter(city == "Seattle") %>%
  arrange(date)

all.cases <- dim(finalSEA_940)[1]
last.case <- dim(homicides)[1]

last.date <- max(homicides$date)
last.name <- ifelse(homicides$lname[last.case] == "Unknown", 
                    "(Name not released)",        
                  paste(homicides$fname[last.case],
                        homicides$lname[last.case]))
last.age <- homicides$age.fe[last.case]
last.agency <- homicides$agency[last.case]
last.cod <- homicides$cod.fe[last.case]
tot.by.yr <- table(homicides$year)
tot.this.yr <- tot.by.yr[[length(tot.by.yr)]]
num.suffix <- ifelse(tot.this.yr == 1, "st",
                     ifelse(tot.this.yr == 2, "nd",
                            ifelse(tot.this.yr == 3, "rd", "th")))

Introduction

After winning over 60% of the statewide vote, Initiative 940 was passed into WA state law on December 6, 2018. This report tracks the number of persons killed by police in the city of Seattle WA since that date.

MOST RECENT DATA UPDATE:

  • Number of persons killed by law enforcement in Seattle since I-940 was enacted into law: 12

  • Last reported case: Derek Hayden, 44 years old, on 2021-02-16 by Seattle Police Department

    Derek Hayden is the 2nd person killed by police in 2021. The cause of death is reported as Gunshot.


Where the data come from

The data in this report are updated at least once each week, pulling and merging from two online sources: Fatal Encounters (https://fatalencounters.org/), and the Washington Post (https://www.washingtonpost.com/graphics/investigations/police-shootings-database/).

  • Fatal Encounters includes all deaths during encounters with police;

  • Washington Post only includes fatal shootings by police.

  • Neither dataset includes deaths in custody after booking.

A comparison of the cases found in each dataset is found in the last section of this report.

This report is restricted to the cases that can be classified as homicides by police, it excludes cases identified in the Fatal Encounters dataset as suicides, and a handful of other cases (see the last section for details).


What is a homicide?

The deadly force incidents in this report are homicides. A homicide is simply defined as the killing of one person by another. In the context of this report it refers to any encounter with law enforcement officers that results in a fatality. Homicides normally result in a criminal investigation or inquest, but the word does not imply a crime has been committed.

  • The word homicide means only that the death was caused in some way by the officer.

  • It does not not mean the officer’s actions that led to the death were justified, or that they were unjustified.

There are many different types of homicides. In the U.S., these types and definitions vary across states, but there are some general similarities. The definitions below are taken from a useful online summary found here, based on California State laws.

Homicide
Homicide is the killing of one person by another. This is a broad term that includes both legal and illegal killings. For example, a soldier may kill another soldier in battle, but that is not a crime. The situation in which the killing happened determines whether it is a crime.

  • Murder is the illegal and intentional killing of another person. Under California Penal Code Section 187, for example, murder is defined as one person killing another person with malice aforethought. Malice is defined as the knowledge and intention or desire to do evil. Malice aforethought is found when one person kills another person with the intention to do so.

    In California, for example, a defendant may be charged with first-degree murder, second-degree murder, or capital murder.

    • First-degree murder is the most serious and includes capital murder – first-degree murder with “special circumstances” that make the crime even more egregious. These cases can be punishable by life in prison without the possibility of parole, or death.

    • Second-degree murder is murder without premeditation, but with intent that is typically rooted in pre-existing circumstances. The penalty for second-degree murder may be up to 15 years to life in prison in California.

    • Felony murder is a subset of first-degree murder and is charged when a person is killed during the commission of a felony, such as a robbery or rape.

  • Manslaughter is the illegal killing of another person without premeditation, and in some cases without the intent to kill. These cases are treated as less severe crimes than murder. Manslaughter can also be categorized as voluntary or involuntary.

    • Voluntary manslaughter occurs when a person kills another without premeditation, typically in the heat of passion. The provocation must be such that a reasonable person under the same circumstances would have acted the same way. Penalties for voluntary manslaughter include up to 11 years in prison in California.

    • Involuntary manslaughter is when a person is killed by actions that involve a wanton disregard for life by another. Involuntary manslaughter is committed without premeditation and without the true intent to kill, but the death of another person still occurs as a result. Penalties for involuntary manslaughter include up to four years in prison in California.

    • Vehicular manslaughter occurs when a person dies in a car accident due to another driver’s gross negligence or even simple negligence, in certain circumstances.


Interactive Map

You can drill down to the map pointers for each person killed by police. Hovering over the pointer brings up the name of the person killed and agency of the officer who killed them; Clicking the pointer will bring up a url to a news article on the case (if available).

# Read in SEA boundaries as a spatial data frame
# Data: https://data-seattlecitygis.opendata.arcgis.com/datasets/municipal-boundaries?geometry=-123.631%2C47.148%2C-120.162%2C47.797
muni <- st_read(here::here("data-raw", "SEA_Municipal_Boundaries",
                           "Municipal_Boundaries.shp"))
sea <- filter(muni, JURIS == "SE")

map1 <- leaflet(data = homicides, width = "100%") %>% 
  addTiles() %>%
  addPolygons(data=sea, fillOpacity = 0.1, weight = 1.2) %>%
  addMarkers( ~ longitude,
              ~ latitude,
              popup = ~ url_click,
              label = ~ as.character(paste(name, "by", agency)),
              clusterOptions = markerClusterOptions())
map1

Say their names

Name known

Of the 12 persons killed by police, 10 of the victim’s names are known at this time.

homicides %>%
  filter(name != "Unknown") %>%
  select(name, date, age=age.fe, county, agency, url_click) %>%
  arrange(desc(date)) %>%
  DT::datatable(rownames = F,
                caption = paste("The Names We Know:  as of", scrape.date),
                filter = 'top',
                escape = FALSE)

Name Unknown

The remaining 2 of the victim’s names are not known at this time.

homicides %>%
  filter(name == "Unknown") %>%
  select(name, date, age=age.fe, county, agency, url_click) %>%
  arrange(desc(date)) %>%
  DT::datatable(rownames = F,
                caption = paste("The Names We Don't Know:  as of", scrape.date),
                filter = 'top',
                escape = FALSE)

Dataset comparison

Fatal Encounters includes more cases than the Washington Post, because the Post dataset is restricted to fatal shootings.


Among the cases missing from the Washington Post data are Manny Ellis (in WA) and George Floyd (at the national level), because their deaths were caused by asphyxiation, not gunshots.


The Fatal Encounters data also includes some cases that we have excluded from the above report:

  1. cases described as “suicides” that occur during an encounter with police

  2. a handful of other cases clearly not homicides by police. Examples include a vehicle crash caused by a deputy who had a stroke (and later died), and two people killed by a suspect before police could apprehend him.

The total number of cases in the Fatal Encounters dataset for Seattle since I-940 took effect, including both homicides and the cases we’ve excluded as described above, is 16. These are classified as follows:

tab <- finalSEA_940 %>%
  group_by(circumstances.fe) %>%
  summarize(Number = n(),
            Percent = round(100*Number/nrow(finalSEA_940), 1)
  ) %>%
  arrange(desc(Number)) %>%
  bind_rows(data.frame(circumstances.fe ="Total", 
                       Number = sum(.$Number), 
                       Percent = sum(.$Percent))) 

tab %>%
  kable(caption = "All Fatal Encounters dataset cases, broken down by type",
        col.names = c("Type", "Number", "Percent")) %>%
  kable_styling(bootstrap_options = c("striped","hover")) %>%
  row_spec(dim(tab)[1], bold = T)  %>%
  add_footnote(label = "Percents may not sum to 100 due to rounding",
               notation = "symbol")
All Fatal Encounters dataset cases, broken down by type
Type Number Percent
Deadly force 7 43.8
Mix of Vehicle hot pursuits and accidents 3 18.8
Vehicle hot pursuits 3 18.8
Suicide 1 6.2
UnIntended 1 6.2
Vehicle accidents 1 6.2
Total 16 100.0
* Percents may not sum to 100 due to rounding

In total we excluded 4 of these cases in the report and analysis.

Note that there are often competing narratives about how a fatal encounter with an officer transpired. These narratives are embedded in the news reports that both Fatal Encounters and the Washington Post rely on when classifying cases into the categories above. We, too, rely on these categories for selecting cases that can be classified as homicides.


Homicide cases

Restricting the Fatal Encounters dataset to the homicide cases, it still has 50% more cases than found in the Post dataset.

tab <- homicides %>%
  mutate(in.wapo = ifelse(is.na(wapoID), 
                          "In FE only", 
                          "In both FE and WaPo")) %>%
  group_by(in.wapo) %>%
  summarize(Number = n(),
            Percent = round(100*Number/nrow(homicides), 1)
  ) %>%
  bind_rows(data.frame(in.wapo ="Total", 
                       Number = sum(.$Number), 
                       Percent = sum(.$Percent))) 

tab %>%
  kable(caption = "Cases found in each dataset",
        col.names = c("Case is:", "Number", "Percent")) %>%
  kable_styling(bootstrap_options = c("striped","hover")) %>%
  row_spec(row=dim(tab)[1], bold = T) %>%
  add_footnote(label = "Percents may not sum to 100 due to rounding",
               notation = "symbol")
Cases found in each dataset
Case is: Number Percent
In both FE and WaPo 6 50
In FE only 6 50
Total 12 100
* Percents may not sum to 100 due to rounding

Missing cases in Washington Post

By cause of death

tab <- homicides %>%
  filter(is.na(wapoID)) %>%
  group_by(cod.fe) %>%
  summarize(Number = n()
  ) %>%
  arrange(desc(Number)) %>%
  bind_rows(data.frame(cod.fe ="Total", 
                       Number = sum(.$Number))) 

tab %>%
  kable(caption = "Cause of death for cases missing from WaPo dataset",
        col.names = c("Cause:", "Number")) %>%
  kable_styling(bootstrap_options = c("striped","hover")) %>%
  row_spec(row=c(which(tab$cod.fe=="Gunshot"),
                 dim(tab)[1]), bold = T)
Cause of death for cases missing from WaPo dataset
Cause: Number
Vehicle 5
Drowned 1
Total 6