Introduction

By the end of 2018, the estimated percentage of US households reported to having at least one pet was around 70%. Among the companion animals, dogs and cats appear have been the most popular pets historically. In 2018, there approximately 184 Million dogs and cats are living as household companion animals in the United States. Each year, the number of cats and dogs entering animal shelters are around 7 Million.

As a professional animal enthusiast, my goal is to gather information from pet ownership and shelter statistics, and identify trends in animal outcomes in order to understand factors with significant impacts on pet adoption. During the process, I hope to highlight strengths, weaknesses, and progress made by animal lovers everywhere, to continue efforts in raising awareness and advocating for animals without a home.


The Data Sets

About

  1. Animal Humane Society

The first data set records the outcome and intake statistics from the Humane society from 2015-2020. This data set was used to investigate shelter intake groups by reason for surrender, as well as euthanasia by reason for surrender.

The second data set is the monthly total intake and outcome statistics. January - July). I wanted to focus on the numbers with this data set to explore the impact of COVID-19 on the shelters specifically.

  1. Austin Animal Shelter

The data sets is provided by a Kaggle hosted competition for the machine learning community to use for data science practice and social good. The original data source is the Austin Animal Center, taken from the merican society for the prevention of cruelty to animals

Methods

The data sets from the humane society were scraped as pdf files using Tabula. They are available for download from their live saving statistics website. Since both data sets were extracted as whole pdf formats, I filtered through parts of the data sets relevant, and covert column types accordingly.

The Austin animal shelter data was downloaded and imported directly from Kaggle’s website for the “Shelter Animal Outcomes” competition.

Besides parsing to appropriate column types, I also converted most numbers into percentages. When comparing differences between variables such as dog vs. cat or each year, numbers alone could be misleading without the total count.

Image sources:

cover page

group of dogs

Outcomes and trends group

Dog outcome panoramic

The cat



As of 2021

#ahs 2021
ggplot(monthly, aes(dates, total, group = intakes, 
                    color = intakes)) +
  geom_line(size = 1) +
  geom_point(size = 4) +
  labs(subtitle = "2021 Intake & Outcome Summary") 

In the beginning of 2020, many have been working and studying from home during the lock down. Animal shelters experienced higher than ever adoption rates. As in-person work and school resumes, concerns were raised about pets adopted during the pandemic are getting surrendered and returned to the shelter when the owners no longer work from home full time. From the humane society’s report from January to this summer, both intakes and outcomes increased dramatically within one month and have been increasing more steadily in the spring.


Where do they come from

Table

kable(surrender_stat, 
      col.names = c(" ", "2015", "2016", "2017", "2018", "2019", "2020"), digits = 2) %>%
      kable_styling("striped") 
2015 2016 2017 2018 2019 2020
surrender 47.30% 46.44% 44.32% 44.20% 44.15% 44.46%
transfer 34.4% 35.4% 36.5% 38.7% 37.9% 35.0%
stray 17.7% 15.9% 17.1% 14.5% 16.2% 19.8%
cruelty 0.7% 2.2% 2.1% 2.5% 1.7% 0.8%
#humane society f2015-2020

Plot

surr_plot <- surrender_stat %>% pivot_longer(c("2015", "2016", "2017", "2018", "2019", "2020"), names_to = "year", values_to = "cases") %>%
  mutate(cases = parse_number(cases),
         year = parse_number(year))

ggplot(surr_plot, aes(year, cases, fill = reason)) +
  geom_col(position = position_dodge2(width = 1), width = 0.7) +
  facet_wrap(~reason, scales = "free_y") +
  theme_minimal() +
  theme(legend.position = "none") 

The owner surrender rate has a slight decline from 2015-2020. The increase in stray animal intakes could be the indication that more animals are being abandoned by their owners; However, I interpret it as the shelters’ effort in rescuing more animals over the years. Cruelty cases spiked from 2016-2018, but decreased by almost 2% by 2020.


Euthanasia

The highlight for this table is that the proportion of animals with treatable conditions being euthanized decreased greatly over the years. Most euthanized animals are from untreatable illnesses

Plot

ggplot(euthanasia, aes(factor(year), cases, fill =
         Euthanasia, group = Euthanasia)) +
  geom_col(position = "dodge", width = 0.6) +
  geom_point() +
 geom_line() +
  facet_wrap(~Euthanasia, scales = "free_y", ncol= 1) +
  labs(x = NULL, y = NULL) +
  scale_fill_brewer(palette = "Oranges") +
  theme_minimal() +
  theme(legend.position = "none",
      plot.background = element_rect(colour = "black", size = 1)) 

Table

euth_table <- as_tibble(ahs) %>%
  slice(33:35) %>%
  rename("Euthanasia"  =  'Animal Intake and Outcomes') %>%
  pivot_longer(c('2015','2016','2017','2018','2019','2020'), 
               names_to = "year", values_to = "cases" ) %>%
  mutate(cases = parse_number(cases),
          cases = ifelse(is.na(cases), 0, cases),
         year = parse_number(year)) %>%
  group_by(year) %>%
  mutate( total = sum(cases),
         cases = percent( cases/total, accuracy = 0.01)) %>%
  select(-4) %>%
  pivot_wider(names_from = year, values_from = cases) 

kable(euth_table) %>% kable_styling("striped")
Euthanasia 2015 2016 2017 2018 2019 2020
Unhealthy/Untreatable 66.25% 88.45% 94.21% 96.47% 95.21% 94.34%
Treatable Manageable 32.01% 9.48% 4.83% 2.30% 4.32% 4.11%
Treatable Rehabilitatable 1.73% 2.08% 0.97% 1.24% 0.48% 1.55%

Spaying/neutering

Dogs neutered/spayed

Cat neutered/spayed

Each year, most animals are spayed and neutered. In some foster systems, animals are required to be spayed/neutered before adoption to prevent from more animals entering the shelters or euthanized.


Name & Adoption

cat with names

Dog with Names

Does color matter?

#colors

cat_color <- cats %>%
  filter(OutcomeType == "Adoption") %>%
  count(Color, sort = TRUE) %>%
  slice(1:10) %>%
  rename(Cats = Color) %>% select(-2)

dog_color <- dogs %>%
  filter(OutcomeType == "Adoption") %>%
  count(Color, sort = TRUE) %>%
  slice(1:10) %>%
  rename( Dogs = Color) %>% select(-2)

popular_colors <- bind_cols(dog_color, cat_color)

kable(popular_colors) %>% kable_styling("striped")
Dogs Cats
Black/White Brown Tabby
Brown/White Black
Tan/White Black/White
Tricolor Brown Tabby/White
Black Orange Tabby
White Tortie
Black/Tan Calico
Tan Orange Tabby/White
White/Brown Blue Tabby
Brown Blue

Age

Puppies and Kittens are highly adoptable, especially kittens. Besides the cuteness, some owners might take into account the health problems in older pets. In adult cats, many might have a harder time getting adopted or have a higher chance of being returned due to compatiblity issues such as households with children, other animals, or simply another cat. The age in this graph is counted in months.

ggplot(age_outcome, 
       aes( x = months,
            y = ifelse(AnimalType == "Cat", n, -n),
            fill = AnimalType )) +
  geom_bar(stat = "identity") +
  coord_flip() +
  scale_y_continuous(limits = c(-2500, 3500),
                     breaks = seq(-2500,3000,1500),
                     labels = abs) +
  labs(title = "Adoption distribution by Age",
       y = "Numbers Adopted", x = "Age in months") +
  theme (plot.title = element_text(size=10)) +
  theme_bw()


Summary Notes

It is important to note that these data sets and my methods aren’t without weaknesses and bias. Accurate shelter and rescuing data are hard to obtain since there is no central reporting system. Overall numbers on pet owner statistics were collected from surveys, so we can only consider them as estimates. The majority of these data set are already calculated and categorized as summaries.

For example, it is common for shelter animals to be returned if they are having a hard time settling in with the family. I cannot trace the relationship between the adopted that were later returned. The most important factor missing from these data is the “surrender by owner” statistics. I think it would be worth while to understand why they are being surrendered. Some of these might include financial, behavioral, or health problems, which can only be reported at the owner’s discretion as well.

There are more questions to be asked and analyzed for animal adoptions. Advocating for animals is an ongoing effort, and my work doesn’t end with this project either. These data reports may only be used mainly by shelters or rescuing groups. I believe they would be powerful tools in educating pet owners or soon-to-be owners. I will list some resources I found below.

Too often pets are being adopt or purchased when the owners aren’t prepared and ready. Taking an animal into our lives is a big commitment that should be taken seriously. We shouldn’t get a pet just because they’re cute (even though they certainly are). They might be chaotic drooling little monsters that demand food and attention 24/7, the friendship and companion with a animal is so so beautiful.

He might only be here for a part of your life, but for him, you are his whole life.