Reading has taken a back seat in the modern age of smartphones and doomscrolling. The demand for convenience and easily digestible digital content has led to a steady decline in consistent reading habits, especially reading for pleasure.
Prior researhc supports these concerns. The paper, “Trends in U.S. Adolescents’ Media Use, 1976 –2016: The Rise of Digital Media, the Decline of TV, and the (Near) Demise of Print” by Jean M. Twenge, Gabrielle N. Martin, and Brian H. Spitzberg, analyzes how American adolescents use their time and the media they consume. Its findings show an increasing trend in digital media use (e.g., gaming, social media, internet) and a decreasing trend in paper media use (e.g., books, magazines).
Similarly, the paper, “Literary Reading on Paper and Screens: Associations Between Reading Habits and Preferences and Experiencing Meaningfulness” by Frank Hakemulder and Anne Mangen, explored how increased screen time has changed how most people read. Three experiments were conducted where participants read a short story and self-reported their experiences. The paper claims those who read short texts on screen had less emotional and insightful experiences when reading. Deep reading had decreased, and participants had a lower “cognitive and attentional” stamina.
Together, this research highlights why encouraging sustained reading is increasingly important for long-term learning and cognitive health. With this research in mind, we explored the Checkouts of Seattle Public Library in the past 20 years.
Aiming to answer the question, “How have reading habits at the Seattle Public Library changed over the past two decades, particularly in genre popularity, material type usage, and overall checkout frequency?”
By examining these trends, we hope to better understand how technological and cultural shifts are shaping modern reading habits. This research is especially useful for educators, librarians, policymakers, and families who are working to promote literacy in a rapidly changing digital environment.
We used the Seattle Public Library Checkouts by Title dataset, which is publicly available through the City of Seattle’s Open Data Portal. The dataset is generated from the library’s internal circulation system and records every item checked out from the library across multiple years. The dataset is generated directly from the library’s internal system and includes about 49,035,215 of checkouts records from 2005-2025.
Our Analysis focuses on: * CheckoutYear * Checkouts * Subjects (Genre) * Material Type/Usage Class
In our study, the dependent variable is the number of checkouts, since it represents reading activity. The independent variables include genre, year, and material type, which we use to examine how reading habits change over time and across categories. Although the dataset does not include patron demographic information and contains some missing values, it still provides a strong foundation for analyzing long-term reading trends and genre preferences in the Seattle community.
We analyzed the data using RStudio, primarily with the tidyverse package. All visualizations were created in ggplot2, using line charts for trends over time and faceted plots to compare categories. Data wrangling and preparation were completed using R with packages such as tidyverse, dplyr and ggplot2.
In addition to visual analysis, we calculated descriptive statistics such as the mean, median, minimum, maximum, and quartiles of checkout counts to summarize overall reading behavior. These methods allow us to clearly describe how reading activity and genre preferences have evolved over time and directly address our research question on changes in reading habits at the Seattle Public Library.
To examine how reading behavior has changed over time and across material types, we analyzed checkout trends from 2005 to 2025 using the Seattle Public Library Checkouts by Title dataset. We grouped all records into five categories: Physical Books, Ebooks, Audiobooks, Other, and All Materials. The following visualizations show how material usage has shifted over time and how total checkouts differ by category.
library(data.table)
library(ggplot2)
library(tidyverse)
library(scales)
The dataset was loaded from a local CSV file and key variables were converted to the appropriate data types. We also created a new classification variable to group materials into broader categories.
setwd("C:/Users/ruthi/OneDrive/Documents/3. School/2. B DATA 200 - Data Studies/Reading and Screen Time")
reading_dt <- fread("2025_Checkouts_by_Title.csv")
# Fix types
reading_dt[, Checkouts := as.numeric(Checkouts)]
reading_dt[, CheckoutYear := as.integer(CheckoutYear)]
reading_dt[, BookCategory :=
fifelse(MaterialType %in% c("BOOK", "REGPRINT", "LARGEPRINT"), "Physical Book",
fifelse(MaterialType %in% c("EBOOK", "BOOK, ER", "ER, PRINT", "ER, REGPRINT"), "Ebook",
fifelse(MaterialType == "AUDIOBOOK", "Audiobook", "Other")))]
To observe long-term changes in format usage, we calculated total yearly checkouts by material category and added an overall “All Materials” total for comparison.
# Calculate total checkouts per year for each material category
material_type_year <- reading_dt[
, .(TotalCheckouts = sum(Checkouts, na.rm = TRUE)),
by = .(CheckoutYear, BookCategory)
]
# Calculate total checkouts per year across all material types
total_year <- material_type_year[
, .(TotalCheckouts = sum(TotalCheckouts)),
by = CheckoutYear
][
, BookCategory := "All Materials" # Label these as overall totals
]
# Combine individual categories with overall yearly totals
material_type_year <- rbind(material_type_year, total_year)
# Convert to tibble for easier plotting with ggplot
material_type_year <- as_tibble(material_type_year)
# Preview the final summarized dataset
material_type_year
## # A tibble: 5 × 3
## CheckoutYear BookCategory TotalCheckouts
## <int> <chr> <dbl>
## 1 2025 Physical Book 1030933
## 2 2025 Audiobook 1061693
## 3 2025 Ebook 1162741
## 4 2025 Other 249845
## 5 2025 All Materials 3505212
We visualized these yearly totals using a multi-line chart to compare changes across material types.
# =====================================================
# PLOT "Checkout Categories over time (2005-2025) Multi Line Chart"
# =====================================================
ggplot(material_type_year,
aes(x = CheckoutYear, y = TotalCheckouts, color = BookCategory)) +
geom_line(size = 1) +
geom_point(size = 2) +
labs(
title = "Checkout Categories over time (2005-2025)",
x = "Year",
y = "Total Checkouts",
color = "Checkout Category"
) +
scale_y_continuous(labels = scales::comma) +
scale_color_manual(values = c(
"Physical Book" = "#ff1a8c",
"Ebook" = "#b300ff",
"Audiobook" = "#ff4dd2",
"Other" = "#8000ff",
"All Materials" = "#ff66ff"
)) +
theme(panel.background = element_rect(fill = "white", color = NA)) +
theme_minimal(base_size = 13)
Interpretation:
The line chart shows that physical books consistently account for the
largest share of checkouts across all years. However, growth in physical
book checkouts has slowed in recent years. In contrast, ebooks and
audiobooks show steady increases over time, with audiobooks rising
sharply after the mid-2010s. The “All Materials” line trends upward
overall, indicating that total library usage has grown, but the format
of reading has shifted toward digital and audio media. This suggests a
change in how people read rather than a decline in reading
altogether.
To compare overall usage across material types, we summed total checkouts for each category across all years.
# =====================================================
category_summary <- reading_dt[
, .(TotalCheckouts = sum(Checkouts, na.rm = TRUE)),
by = BookCategory
]
category_summary
## BookCategory TotalCheckouts
## <char> <num>
## 1: Physical Book 1030933
## 2: Audiobook 1061693
## 3: Ebook 1162741
## 4: Other 249845
# Add "All Materials"
total_all <- reading_dt[
, .(TotalCheckouts = sum(Checkouts, na.rm = TRUE))
][, BookCategory := "All Materials"]
category_summary <- rbind(category_summary, total_all)
category_summary
## BookCategory TotalCheckouts
## <char> <num>
## 1: Physical Book 1030933
## 2: Audiobook 1061693
## 3: Ebook 1162741
## 4: Other 249845
## 5: All Materials 3505212
# ============================
# Digital vs Physical grouping cleanup
# ============================
# Create simplified categories: Physical vs Digital
reading_dt[, BookCategory2 :=
fcase(
BookCategory %in% c("Ebook", "E-book", "EBook"), "Digital",
BookCategory %in% c("Audiobook", "Audio", "Audio Book"), "Digital",
default = BookCategory
)
]
# Calculate total checkouts using the simplified category grouping
category_summary <- reading_dt[
, .(TotalCheckouts = sum(Checkouts, na.rm = TRUE)),
by = BookCategory2
]
# Add overall total to the simplified category table
total_all <- reading_dt[
, .(TotalCheckouts = sum(Checkouts, na.rm = TRUE))
][, BookCategory2 := "All Materials"]
category_summary <- rbind(category_summary, total_all)
category_summary
## BookCategory2 TotalCheckouts
## <char> <num>
## 1: Physical Book 1030933
## 2: Digital 2224434
## 3: Other 249845
## 4: All Materials 3505212
These totals were visualized using a bar chart.
# ============================
# PLOT "Checkouts by Material Category Bar Chart"
# ============================
ggplot(category_summary,
aes(x = reorder(BookCategory2, TotalCheckouts),
y = TotalCheckouts,
fill = BookCategory2)) +
geom_col() +
scale_y_continuous(labels = scales::comma) +
scale_fill_manual(values = c(
"Physical Book" = "#e60073",
"Digital" = "#b300ff",
"Other" = "#ff66cc",
"All Materials" = "#4b2e83"
)) +
labs(
title = "Checkouts by Material Category",
x = "Material Category",
y = "Total Checkouts",
fill = "Category"
) +
theme_minimal(base_size = 16) +
theme(
plot.title = element_text(face = "bold"),
axis.text.x = element_text(angle = 20)
)
Interpretation:
The bar chart shows that physical books account for the highest total
number of checkouts by a wide margin, confirming that print materials
remain the most widely used format. Digital materials also make up a
substantial share of total circulation, showing their growing importance
in modern reading habits. The “Other” category contributes a relatively
small portion of total usage. Overall, this visualization reinforces the
finding that reading has not disappeared, but the format of reading has
diversified.
Our findings suggest that overall declines and shifts in library checkouts reflect broader changes in how people engage with information and entertainment in the digital age. While reading remains present, the rise of digital formats alongside the growth of screen-based entertainment points to changing habits shaped by convenience, constant connectivity, and shortened attention spans. This supports prior research showing that increased screen time is linked to reduced sustained focus and a decline in deep, immersive reading. As digital media becomes more dominant, traditional reading for pleasure may compete with faster, more stimulating content, potentially weakening cognitive endurance and long-form comprehension. These trends highlight the need for libraries to continue supporting both physical and digital formats while also promoting intentional reading practices that encourage focus and engagement.
From a policy and education perspective, these findings are especially relevant for librarians, educators, and families who aim to foster strong literacy habits in an increasingly screen-saturated world. Public libraries like the Seattle Public Library play a critical role in bridging access between digital and physical reading materials while serving as community spaces that promote lifelong learning. However, this study is limited by its reliance on checkout data, which does not guarantee that materials were fully read or reflect how deeply readers engaged with them. Additionally, the dataset does not include demographic information, preventing direct analysis of how screen time and reading habits differ by age or social group. Future research combining circulation data with survey or behavioral screen-use data would help clarify the causal relationship between digital media use and changing reading behaviors.