Your Real Odds of Dying From COVID-19 in the U.S.
Contents
Your Real Odds of Dying From COVID-19 in the U.S.#
A series of simple charts that attempt to put your risk of dying from COVID-19 in context, no matter what your age.
You may be surprised.
Tip
Feeling impatient? Jump straight to the charts. 📊📈📉
Last updated: 2022 Sep 21
Introduction#
In mid-2021, the vaccines for COVID-19 were still relatively new, and many of my friends were much more worried about the risk from the vaccines than the risk from COVID.
As people in their 30s and 40s (and even 50s and 60s), they insisted that COVID was mainly a threat to “old people”, while an “unknown” vaccine might be far more dangerous to their own young bodies, not to mention their innocent children.
They said over and over again that COVID was basically the flu, that the whole “pandemic” was a wild exaggeration, that the only people dying were the old and sick who’d have died soon anyway.
These are rather extravagant claims. Shouldn’t they be fairly easy to check?
Research Questions#
We have the statistics for COVID-19 deaths in the United States. We can pose simple questions, asking how COVID-19 deaths compare to:
Flu deaths in recent years
Other mass casualties in U.S. history
Other causes of death, broken down by age bracket
These are simple questions, with simple answers. Answers that can be best expressed in basic bar charts.
Motivation#
Yet, to my surprise, when I searched in mid-2021, I could not find this information presented anywhere, at least not all in one place.
This is a problem. We can only make sense of numbers, especially large numbers, by comparison.
People like my friends seemed to assess their COVID-19 risk by a single anchor: the extreme death toll for the extreme elderly. That was the biggest number in their minds, and to “calculate” their own risk, they counted down from there.
But these same friends would put a great deal of effort into avoiding products that might cause cancer, or unhealthy diets that might lead to heart attacks. Why? Isn’t it true that these risks would be much worse when they reached their 80s? Why worry about them now?
Clearly, many adults see heart disease and cancer in a very different context. The risk of dying at all at their age gets their attention.
In the charts that follow, I compare COVID-19 deaths in the U.S. to these and other causes of death. When you put COVID-19 deaths in this context, the risk feels quite different than when your operating assumption is, “I’m younger than 80, so I’ll probably be fine.”
Will These Charts Actually Change Anyone’s Mind?#
That said, let’s be honest: I don’t expect to change anyone’s mind with a simple series of charts.
For the vaccine skeptic, this data is untrustworthy at every level.
Are all these reported “COVID deaths” really due to COVID-19?
Even if they are, how can we be sure that a “new” vaccine technology will not lead to far more dire consequences, up to and including the end of civilization? These meta questions are larger than any “untrusted” datasets can answer.
Adapted From a Larger Project: “The Vaccine Show!”#
So my original project was much more ambitious: an interactive “game” (using Twine/Twee and SugarCube) about a made-up game show called, yes, The Vaccine Show!

Fig. 1 The Vaccine Show!#
With so many possible objections to the vaccine, an article or book seemed too linear. By contrast, this interactive format lets the reader explore their own objections.

With each choice, the reader can encounter more evidence tailored to their own concerns.
For instance, if you click the question of whether COVID was really an emergency, you soon come to this:

It’s a pretty neat format.
See also
For the full (though unfinished) game experience, see The Vaccine Show!
But one downside is that all this information is buried in the labrynthine choice paths of the game.
In this notebook, we’ll extract the key charts for easier consumption.
Important
Even if you fully accept mainstream science and have no qualms about vaccines, this data may still startle you.
Consider this: in the first year of the pandemic, was COVID-19 was in the top ten leading causes of death for Americans in their thirties? How about the top five?
Read on to find out.
Note
Although these charts are as accurate and useful as I could make them, see below for important caveats.
Setup#

library(ggplot2)
library(scales)
library(dplyr, warn.conflicts = FALSE)
library(readr, warn.conflicts = FALSE)
library(stringr)
library(gt)
library(gtExtras)
library(svglite)
# library(RColorBrewer)
# Updated cumulative COVID deaths
covid_deaths_updated <- "1,048,935"
covid_deaths_updated_num <- 1048935
date_updated <- "through 2022 Sep"
# REPORT DATA
# Death count for Demographic Charts
# COVID Deaths in the U.S. for First 12 months of the pandemic, through 2021 Feb.
covid_deaths_first_year <- "527,587"
covid_deaths_first_year_num <- 527587
date_first_year_covid <- "First Year, through 2021 Feb"
# CONFIGURATION
# Make plots wider
options(repr.plot.width=15, repr.plot.height=10)
color_bar <- "red"
color_bar_gradient2 <- "orange"
color_bar_nomatch <- "gray"
color_covid_row <- "pink"
# covid_match_str <- "⮞⮞ COVID-19 ⮜⮜"
covid_match_str <- "COVID-19"
Helper Functions#
theme_vaccine <- function() {
theme_gray(
base_size = 20,
) %+replace%
theme(
plot.title = element_text(
size = 24,
margin = margin(10,0,10,0),
hjust = 0.5,
face = "bold"),
plot.subtitle = element_text(
margin = margin(00,0,10,0),
lineheight = 34,
hjust = 0.5
),
plot.caption = element_text(
size = 14,
hjust = 0.5,
margin = margin(10,0,5,0),
color = "#777777"),
axis.text.x=element_text(
angle=45,
hjust = 1,
vjust = 1,
margin = margin(t=5, b=25)
),
legend.title = element_text(size = 14),
legend.text = element_text(size = 14),
legend.key.size = unit(1, "cm")
)
}
hide_grid_x <- function() {
theme(
panel.grid.major.x = element_blank(),
panel.grid.minor.x = element_blank(),
)
}
hide_grid_y <- function() {
theme(
panel.grid.major.y = element_blank(),
panel.grid.minor.y = element_blank(),
)
}
bar_format <- function(
gradient = TRUE,
gradient_low = "yellow",
gradient_high = "red",
coord_flip = TRUE,
scale_y_continuous = TRUE,
stat = "identity",
hide_axis_x = FALSE,
hide_legend = FALSE
) {
list(
geom_bar(stat=stat),
# theme_vaccine must precede later theme() items.
theme_vaccine(),
if (gradient) {
scale_fill_gradient(
labels = comma,
low = gradient_low,
high = gradient_high
)
},
if (coord_flip) {
coord_flip()
},
# coord_flip also determines hide_grid_x, hide_grid_y
if (coord_flip) {
hide_grid_y()
} else {
hide_grid_x()
},
if (scale_y_continuous) {
scale_y_continuous(labels = comma)
},
if (hide_axis_x) {
theme(
axis.ticks.x=element_blank(),
axis.text.x=element_blank()
)
},
if (hide_legend) {
theme(legend.position = "none")
}
)
}
show_date_updated <- function(use_date_updated=FALSE) {
if (use_date_updated) {
use_date = date_updated
} else {
use_date = date_first_year_covid
}
paste("(", use_date, ")", sep="")
}
caption_default <- function(
source,
plural=FALSE
) {
if (plural) {
caption_prepend="Sources:"
} else {
caption_prepend="Source:"
}
caption_append="(vaccineshow.billalive.com)"
paste(caption_prepend, source, caption_append)
}
prep_table <- function(data,
title,
col_arrange='',
subtitle='',
col_number='') {
data %>%
gt() %>%
gt_theme_538() %>%
opt_row_striping() %>%
{
if (subtitle != '') {
tab_header(., title = title, subtitle = subtitle)
} else {
tab_header(., title = title)
}
} %>%
{
if (col_number != '') {
fmt_number(., columns = all_of(col_number), decimals = 0)
} else { . }
}
}
get_covid_row <- function(data, col,
arg_covid_match_str=covid_match_str) {
which(str_detect(data[[col]], arg_covid_match_str))
}
get_covid_bar_color <- function(table, col,
arg_covid_match_str=covid_match_str,
arg_color_bar=color_bar,
arg_color_bar_nomatch=color_bar_nomatch) {
ifelse(
str_detect(gt_index(table, col), arg_covid_match_str),
color_bar, color_bar_nomatch
)
}
show_table <- function(table) {
gt:::as.tags.gt_tbl(table)
}
title_ages_vs_leading_cause <- function(ages) {
paste("Ages ", ages, ": Causes of Death",
sep="")
}
show_table_covid_vs_other <- function(data, col_label) {
# Note that gt_plt_bar() requires column name to NOT
# be surrounded by quotes.
show_table(prep_table(data, title,
subtitle=subtitle, col_number="Deaths") %>%
gt_highlight_rows(rows = get_covid_row(data, col_label),
fill = color_covid_row) %>%
gt_plt_bar(column = Deaths,
keep_column = TRUE,
color = get_covid_bar_color(., col_label)))
}
Cumulative Deaths vs. First Year of Deaths#
Important
Each chart in this report focuses on one of two different COVID-19 death totals. It’s important to understand which total you’re looking at in each chart.
These two totals are:
The cumulative death toll from COVID-19 as of my most recent update (2022 September).
The deaths from only the first year of COVID-19, through 2021 February.
When comparing COVID-19 to mass casualty events (such as the Civil War or 9/11), I have used the cumulative total for all COVID-19 deaths in the U.S thus far.
But ongoing causes of death, like the flu or cancer, are normally analyzed by year. So, for charts that compare COVID-19 deaths to ongoing causes of death, I’ve used the deaths from only the first year of the pandemic in the U.S., through 2021 February.
This might seem too simplistic, but there are other reasons for this choice, which I explain below. In particular, vaccines weren’t yet widely available. My primary goal is to persuade people to get the vaccines, so this first year of data shows what the death rates looked like when no one could get vaccinated.
Although the comparison isn’t perfect, by comparing the first year of COVID-19 deaths to our most recent “ordinary” year of deaths (2019), we can get a much better context for understanding the risks of dying from COVID-19 at younger ages.
All Death Totals in this Report are for the U.S. Only#
Note
All death totals in this report, from any cause, are from the United States. For why, see below.
If You’re Vaccinated, These Aren’t Your Odds#
Important
This report focuses on the first year of the pandemic, before vaccines were available. If you’ve kept up with your vaccines, your risks are now much, much lower.
COVID-19 vs. the Flu#
Let’s start with the flu.
In the early days, COVID-19 was often compared to the flu.
I myself was surprised to discover that in a bad year, the flu might kill 50,000 or even 60,000 people in the U.S.
The flu? Really?
Flu Deaths by Year#
title = "Flu Deaths by Year in the U.S."
subtitle = "2010-11 to 2019-20 seasons"
data <- read_csv("data/flu-deaths-us.csv", show_col_types = FALSE)
ggplot(data, aes(x=FluSeason, y=Deaths, fill=Deaths)) + geom_bar(stat="identity") +
labs(
title = title,
subtitle = subtitle,
caption = caption_default("CDC"),
x="Flu Season",
y="Deaths"
) +
bar_format(coord_flip=FALSE)

Those flu deaths look pretty bad. They are pretty bad.
Flu Deaths vs. COVID Deaths (First Year)#
But now compare them to the first 12 months of COVID-19 deaths.
data <- read_csv("data/flu-deaths-vs-covid-usa.csv", show_col_types = FALSE)
title = paste("Flu Deaths by Year vs. COVID-19 Deaths",
show_date_updated())
subtitle = paste("U.S. Deaths Only. COVID-19 Deaths ", show_date_updated(), ": ", covid_deaths_first_year, sep="")
ggplot(data, aes(x=FluSeason, y=Deaths, fill=Deaths)) +
labs(
title = title,
subtitle = subtitle,
caption = caption_default("CDC"),
x="Flu Season / COVID-19 (First Year)",
y="Deaths"
) +
bar_format(coord_flip=FALSE)

Here are the numbers:
show_table(prep_table(data, title,
col_number="Deaths") %>%
gt_plt_bar(
column = Deaths,
keep_column = TRUE,
color = get_covid_bar_color(., "FluSeason")
) %>%
cols_label(FluSeason = html("Flu Season")))
Flu Deaths by Year vs. COVID-19 Deaths (First Year, through 2021 Feb) | ||
Flu Season | Deaths | Deaths |
---|---|---|
2010-11 | 37,000 | |
2011-12 | 12,000 | |
2012-13 | 43,000 | |
2013-14 | 38,000 | |
2014-15 | 51,000 | |
2015-16 | 23,000 | |
2016-17 | 38,000 | |
2017-18 | 61,000 | |
2018-19 | 34,000 | |
2019-20 | 22,000 | |
COVID-19 (First Year) | 527,587 |
This is what I mean by a simple chart.
For me, that skyscraper of death dwarfs all argument. No, COVID-19 is not “like the flu.”
Sources#
COVID-19 U.S. Deaths vs. Other U.S. Mass Casualties#
That was the death toll after the first year of COVID-19. But what about the cumulative death toll?
By now, we all know that after less than two and a half years, COVID-19 has killed over a million Americans.
How does this compare to past national tragedies in U.S. history?
For the sheer death toll, nothing comes close.
data <- read_csv("data/covid-vs-other-disasters-usa.csv",
show_col_types = FALSE)
title = paste("Total COVID-19 U.S. Deaths",
show_date_updated(use_date_updated=TRUE),
"vs. Other U.S. Mass Casualties")
subtitle = "(Wars show U.S. military deaths, including from war-related disease)"
ggplot(data, aes(x=reorder(Event, Deaths), y=Deaths, fill=Deaths)) +
labs(
title = title,
# subtitle = show_date_updated(),
caption = caption_default("CDC, Congressional Research Service, CNN, doi:10.1353/cwh.2011.0061.", plural=TRUE),
x="",
y="U.S. Deaths"
) +
bar_format()

show_table_covid_vs_other(data, "Event")
Total COVID-19 U.S. Deaths (through 2022 Sep) vs. Other U.S. Mass Casualties | ||
(Wars show U.S. military deaths, including from war-related disease) | ||
Event | Deaths | Deaths |
---|---|---|
COVID-19 | 1,048,935 | |
Civil War (est.) | 752,000 | |
1918 Flu Pandemic | 675,000 | |
World War II | 405,399 | |
World War I | 116,516 | |
1957-58 Flu Pandemic | 116,000 | |
1968 Flu Pandemic | 100,000 | |
Vietnam War | 58,220 | |
Revolutionary War | 4,435 | |
9/11 attack | 2,977 |
Sources#
Military deaths: Congressional Research Service, Updated July 29, 2020
Civil War estimate of 752,000 deaths:
“A Census-Based Count of the Civil War Dead “, Civil War History, Kent State University Press
Another historian argues that this number does not include deaths of enslaved people.
Total U.S. Deaths, All Causes#
The most plausible objection to these horrifying statistics is that many or most of these deaths weren’t really due to COVID-19. Maybe everyone who was sick and going to die anyway also happened to catch COVID-19 on the way out, thus inflating the tally.
As a hypothesis, this presumes a massive medical incompetence on a scale hitherto unseen in modern times. But it is technically possible… until you consider that the total death count, from all causes, rose just as we’d have expected in 2020.
data <- read_csv("data/total-usa-deaths.csv", show_col_types = FALSE)
title = "Total U.S. Deaths, 2017-2020"
ggplot(data, aes(x=reorder(Year, Deaths), y=Deaths, fill=Deaths)) +
labs(
title = title,
caption = caption_default("CDC"),
x="Year",
y="Total U.S. Deaths"
) +
bar_format(gradient_low=color_bar_gradient2, coord_flip=FALSE)

show_table(prep_table(data, title, col_number="Deaths") %>%
gt_plt_bar(
column = Deaths,
keep_column = TRUE,
color = ifelse(
str_detect(gt_index(., "Year"), "2020"),
color_bar, color_bar_gradient2)
))
Total U.S. Deaths, 2017-2020 | ||
Deaths | Year | Deaths |
---|---|---|
2,813,503 | 2017 | |
2,839,205 | 2018 | |
2,854,838 | 2019 | |
3,357,814 | 2020 |
Important
In 2020, 502,976 more Americans died overall than in 2019.
It’s one thing to imagine hundreds of thousands of deaths being misdiagnosed. But is it really conceivable that in 21st century America, half a million extra deaths could be faked?
Note that this total does not even include all 12 months of the first year of the pandemic, which means it excludes the devastating first two months of 2021.
Sources#
COVID-19 Deaths vs. Other Deaths in 2020#
This chart from the CDC separates the “ordinary” deaths in 2020 from the COVID-19 deaths.

Fig. 2 CDC, Provisional Mortality Data — United States, 2020#
Do Only Old People Die of COVID-19?#
Given this high death toll, is it really true that the overwhelming majority of the casualties have been the most elderly?
Even if it were, the question has always struck me as awkward at best.

Fig. 3 Source: The Vaccine Show!#
But this whole way of framing the question might be a mistake.
COVID-19 Deaths in the U.S.: All Ages#
All during the pandemic, one chart we have seen is something like this:
deaths_by_age = read_csv("data/deaths_by_age_group.csv",
show_col_types = FALSE)
title = "COVID-19 Deaths in the U.S., All Ages"
subtitle = show_date_updated()
deaths_by_age %>%
ggplot(aes(x=reorder(Ages, sort(as.numeric(Age_Sort))), y=Deaths, fill=Deaths)) +
labs(
title = title,
subtitle = subtitle,
caption = caption_default("CDC"),
x="Age Group",
y="Deaths"
) +
bar_format()

Important
Note that for this chart, and (almost) all charts dealing with age brackets, we are focusing only on COVID-19 deaths from the first year of the pandemic.
If we included all deaths up to know, these numbers would be much higher. But there’s a lag time before these breakdowns by age are available (see below).
The bars of this chart tell a simple, compelling story: if you’re 85 or over, COVID-19 is very dangerous, and then the younger you get, the less dangerous it is.
Is this true? Yes.
But just how dangerous is “less” dangerous?
For one thing, if there’s an “cliff” age where COVID-19 gets a lot more dangerous, I wouldn’t peg it at 85. I’d say more like… 50.
Change the Focus: Ages 50 to 85+#
Let’s focus only on the ages of 50 to 85+. In this chart, the difference between “middle-aged” and “old” seems considerably less stark.
Yes, the 85+ crowd is more than twice as likely to die from COVID-19. But we can also flip this: once you cross 50, you enter a cohort that’s only half as safe from COVID-19 as people three decades older.
deaths_by_age %>%
filter(str_detect(Ages, "^(50|65|75|85)" )) %>%
ggplot(aes(x=Ages, y=Deaths, fill=Deaths)) +
labs(
title = "COVID-19 Deaths in the U.S., Ages 50-85+",
subtitle = subtitle,
caption = caption_default("CDC"),
x="Age Group",
y="Deaths"
) +
bar_format(gradient_low="orange")

Imagine You Just Turned 50…#
Meanwhile, suppose our newly anxious 50-year-old casts a backward glance at the previous cohorts.
If we focus only on ages 30 to 64, turning 50 looks positively lethal.
deaths_by_age %>%
filter(str_detect(Ages, "^(30|40|50)" )) %>%
ggplot(aes(x=Ages, y=Deaths, fill=Deaths)) +
labs(
title = "COVID-19 Deaths in the U.S., Ages 30-64",
subtitle = subtitle,
caption = caption_default("CDC"),
x="Age Group",
y="Deaths"
) +
bar_format(gradient_low="orange")

Imagine if this were the chart we’d been seeing this whole time.
Or take it further. Imagine an alternate universe where people over 65 were suddenly safe from COVID-19. Even if the numerical death counts in all other age groups had stayed exactly the same, wouldn’t they have seemed so much more significant?
Of course, fortysomethings shouldn’t congratulate themselves too much. We can change the frame again.
… Or You Just Turned 40…#
Turning 40 is never easy. But if we now imagine a pandemic that had spared everyone over 50… it’s even worse.
deaths_by_age %>%
filter(str_detect(Ages, "^(18|30|40)" )) %>%
ggplot(aes(x=Ages, y=Deaths, fill=Deaths)) +
labs(
title = "COVID-19 Deaths in the U.S., Ages 18-49",
subtitle = subtitle,
caption = caption_default("CDC"),
x="Age Group",
y="Deaths"
) +
bar_format(scale_y_continuous=FALSE) +
scale_y_continuous(label=comma, breaks=seq(0,20000,by=2500))

… Or You Just Turned 30…#
Change the frame once more, and turning 30 seems just as bad.
deaths_by_age %>%
# Extract the first number from Ages so you can do a numeric sort.
mutate(Ages_Sort = str_extract(Ages, "^[0-9]+")) %>%
filter(str_detect(Ages, "^(0|5-|12|18|30)" )) %>%
ggplot(aes(x=reorder(Ages, sort(as.numeric(Ages_Sort))), y=Deaths, fill=Deaths)) +
labs(
title = "COVID-19 Deaths in the U.S., Ages 0-39",
subtitle = subtitle,
caption = caption_default("CDC"),
x="Age Group",
y="Deaths"
) +
bar_format(scale_y_continuous=FALSE) +
scale_y_continuous(label=comma, breaks=seq(0,20000,by=2500))

… Or You Just Turned 18.#
But even 30 has nothing on turning 18. What a jump…
deaths_by_age %>%
# Extract the first number from Ages so you can do a numeric sort.
mutate(Ages_Sort = str_extract(Ages, "^[0-9]+")) %>%
filter(str_detect(Ages, "^(0|5-|12|18)" )) %>%
ggplot(aes(x=reorder(Ages, sort(as.numeric(Ages_Sort))), y=Deaths, fill=Deaths)) +
labs(
title = "COVID-19 Deaths in the U.S., Ages 0-29",
subtitle = subtitle,
caption = caption_default("CDC"),
x="Age Group",
y="Deaths"
) +
bar_format(scale_y_continuous=FALSE) +
scale_y_continuous(label=comma, breaks=seq(0,20000,by=500))

Of course, your actual risk doesn’t automatically zoom to your cohort maximum on your birthday. The point is that every new frame radically changes our sense of contrast, our sense of the relative risk depending on one’s age.
But What Do These Numbers Mean?#
Have you noticed a problem with all these comparisons?
The scale is always set by the highest number, the big red bar at the top.
It takes an effort to check the X axis and estimate the actual numbers involved.
Let’s look again at the deaths for all ages, but this time with the numbers easier to read.
title = "COVID-19 Deaths in the U.S., All Ages"
subtitle = show_date_updated()
show_table(prep_table(deaths_by_age %>% arrange(c(desc(Deaths))), title, subtitle=subtitle, col_number="Deaths") %>%
tab_source_note(
source_note = md("Source: CDC, [COVID Data Tracker](https://covid.cdc.gov/covid-data-tracker/#demographics)")
) %>%
gt_plt_bar(column = Deaths, keep_column = TRUE, color = color_bar))
COVID-19 Deaths in the U.S., All Ages | |||
(First Year, through 2021 Feb) | |||
Age_Sort | Ages | Deaths | Deaths |
---|---|---|---|
85 | 85+ Years | 160,704 | |
75 | 75-84 Years | 143,143 | |
65 | 65-74 Years | 113,977 | |
50 | 50-64 Years | 82,424 | |
40 | 40-49 Years | 16,783 | |
30 | 30-39 Years | 7,006 | |
18 | 18-29 Years | 3,050 | |
16 | 0-17 Years | 500 | |
Source: CDC, COVID Data Tracker |
Does this help?
If you have an instant reference point for numbers like “82,424” or “16,783”, perhaps these numbers are more meaningful than simple bars. If not, it’s hard not to slide back into comparing all the bars to the biggest.
COVID Has Killed More Americans Ages 50-64 Than Live in These Cities#
You might have seen comparisons of the total COVID-19 death toll to the populations of various cities.
I find this helpful… but not if my mind instantly adds, “and most of those were the elderly”.
What if we make this comparison only to the death toll for a particular age group?
data <- read_csv("data/covid-deaths-vs-cities-50-64-first-year.csv", show_col_types = FALSE)
title = "In its first year, COVID-19 Killed More Americans Aged 50 to 64 Than the Populations of These Cities"
subtitle = paste("COVID-19 Deaths", show_date_updated(), "vs. City Populations from 2020")
show_table(prep_table(data %>% arrange(c(desc(Population))),
title, subtitle=subtitle, col_number="Population") %>%
gt_highlight_rows(rows = 1, fill = color_covid_row) %>%
gt_plt_bar(
column = Population,
keep_column = TRUE,
color = ifelse(str_detect(gt_index(., City), covid_match_str),
color_bar, "gray")
))
In its first year, COVID-19 Killed More Americans Aged 50 to 64 Than the Populations of These Cities | ||
COVID-19 Deaths (First Year, through 2021 Feb) vs. City Populations from 2020 | ||
City | Population | Population |
---|---|---|
COVID-19 Deaths (Ages 50-64) | 82,424 | |
Flint, MI | 81,252 | |
Parma, OH | 81,146 | |
Somerville, MA | 81,045 | |
Hammond, IN | 77,879 | |
Scranton, PA | 76,328 | |
St. Joseph, MO | 72,473 | |
Camden, NJ | 71,791 | |
Wilmington, DE | 70,898 | |
Canton, OH | 70,872 | |
Gary, IN | 69,093 | |
Utica, NY | 65,283 | |
Youngstown, OH | 60,068 |
Again, this is only deaths for Americans between 50 and 64. And only for the first 12 months of the pandemic.
Does this still seem like a disease that’s only killing “old people”?
What about the current status? As of 2022 September, the updated death toll for ages 50 to 64, out of 903,826
COVID-19 deaths with demographic information, is now 162,045
.
covid_deaths_with_demographic_info = "903,826"
data <- read_csv("data/covid-deaths-vs-cities-50-64-current.csv", show_col_types = FALSE)
title = "By Now, COVID-19 Has Killed More Americans Aged 50 to 64 Than the Populations of These Cities"
subtitle = paste("COVID-19 Deaths (out of ", covid_deaths_with_demographic_info , ") vs. City Populations from 2020")
show_table(prep_table(data %>% arrange(c(desc(Population))),
title, subtitle=subtitle, col_number="Population") %>%
gt_highlight_rows(rows = 1, fill = color_covid_row) %>%
gt_plt_bar(
column = Population,
keep_column = TRUE,
color = ifelse(str_detect(gt_index(., City), covid_match_str),
color_bar, "gray")
))