State COVID death-rate spread was ~10x, with pre-vaccine variance (~40%) slightly outweighing post-vaccine variance (~33%) and a rank-swap term (~27%)
CDC NCHS weekly provisional COVID-19 deaths, state grain, 2020-01-04 to 2023-09-16; cutoff = April 19, 2021 (all US adults vaccine-eligible)
Summary
Across all 50 states + DC, cumulative COVID-19 death rates through September 2023 ranged more than 10-fold: Mississippi's rate (410 per 100,000) was 10.4 times Vermont's (39 per 100,000). Decomposing the variance of that spread into a pre-vaccine era (through April 19, 2021, when all US adults became vaccine-eligible) and a post-vaccine era shows the two periods contributed roughly comparable amounts: about 40% of the total variance came from the pre-vaccine era, ~33% from the post-vaccine era, and ~27% from a covariance/rank-swap term (states that were relatively bad in one era but not consistently so in the other). The correlation between a state's pre- and post-vaccine rate is weak and only marginally significant (r=0.37, p=0.007) — most states were not simply 'bad throughout'; many swapped rank. This decomposition is sensitive to exactly where the pre/post line is drawn: an earlier cutoff (Jan 1, 2021, the first day any vaccine dose was given) shifts the split to ~23% pre / 56% post / 22% covariance, because it reclassifies the deadly winter 2020-21 surge — which happened before vaccines had any real population-level effect — into the 'post' bucket. April 19, 2021 is the more defensible cutoff since it marks actual broad vaccine access, and it is also the cutoff used in the peer-reviewed literature on this question (see below).
A secondary, separately-labeled finding: political lean was not a significant predictor of a state's pre-vaccine death rate (r=-0.14, p=0.33) but became a strong predictor of the post-vaccine rate (r=-0.53, p<0.0001) — consistent with a 2022 medRxiv study that found the red-state/blue-state COVID mortality gap widened sharply after vaccines rolled out. That political story is a real pattern in this data, but it answers a different question ('did political lean predict outcomes') than the one asked ('how much of the spread came from before vs. after vaccines'), which is answered directly above by the variance decomposition.
Scope note: this question concerns a specific, closed historical episode — the US COVID-19 pandemic's 2020-2023 mortality wave and its vaccine rollout, both of which have fully concluded. We checked whether a more recent COVID-19 mortality surge or a newer, materially different vaccination-rollout episode exists as of today (2026-09-12) that would bear on this question and found none: the CDC NCHS weekly provisional series itself runs only through 2023-09-16 (its declared/observed coverage ends there), and no 2024-2026 COVID-19 mortality wave of comparable scale or a second nationwide vaccine-rollout event has occurred that would change this analysis. This is a retrospective analysis of a completed episode, not an ongoing or recurring event needing a newer instance.
Method
Data and exclusions: CDC/NCHS weekly provisional COVID-19 death counts by state (health.cdc_mortality, source_type='weekly', cause_name='COVID-19'), 194 weekly observations per state from 2020-01-04 through 2023-09-16. Two rows in the raw table were deliberately excluded from every sum in this analysis: the 'United States' national-total row (a rollup that would double-count every state if left in) and 'Puerto Rico' (a territory, not one of the 50 states + DC the question is about). Excluding Puerto Rico specifically removes its 2020 population of ~3.29 million and its COVID death counts from the comparison entirely — it is not folded into any other state's total, and no other territory (Guam, USVI, etc.) is present in this source table to begin with, so this is the only population excluded. 'New York City' rows were combined with 'New York' state rows (added together, not dropped) to avoid the state total being understated by double-splitting NCHS's own city/state reporting convention. The final analysis set is exactly 50 states + DC (n=51). Small-cell-suppressed weeks (NULL, CDC's own privacy threshold, typically <10 deaths) were excluded from sums rather than treated as zero, per the table's own documentation — this slightly understates rare-event weeks in low-population states (Vermont, Wyoming, Alaska, DC and other small-population jurisdictions carry the most suppressed weeks, up to ~127 of 194 weeks for Hawaii) but does not fabricate zeros; it is a source-side privacy redaction, not a modeling choice, and there is no alternative unsuppressed data source to substitute.
Rate construction: deaths were summed within each state for the pre-vaccine window (week-ending ≤ 2021-03-27, i.e. through the last full week before April 19, 2021) and the post-vaccine window (everything after), then divided by each state's 2020 Decennial Census population and expressed per 100,000. Using one fixed population denominator (2020) for both windows avoids introducing a second, unrelated source of state-to-state variation (differential population growth) into a decomposition that is supposed to isolate the timing effect.
Variance decomposition: for cumulative rate = pre_rate + post_rate, Var(total) = Var(pre) + Var(post) + 2·Cov(pre,post) exactly, by the definition of variance of a sum. Each term's share of Var(total) is the literal answer to 'how much of the spread came from period A vs. period B' — no political or demographic classification is needed to compute it, and doing so is the direct route the question calls for (a red/blue reframing is a legitimate secondary analysis but is not a substitute for this).
Sensitivity check: the same decomposition was rerun with an alternative cutoff, week-ending 2020-12-26 (the last full week before the first US vaccine doses were administered on Dec 14, 2020). The shares moved substantially — pre-share fell from ~40% to ~23%, post-share rose from ~33% to ~56% — because that earlier cutoff assigns the catastrophic winter 2020-21 surge (a wave that occurred before vaccines had any meaningful population coverage) to the 'post' bucket. This is exactly the kind of window sensitivity that has to be reported rather than concealed: the headline answer depends materially on using a cutoff that reflects actual vaccine availability (April 19, 2021, when the US federal government required all states to open eligibility to every adult) rather than the technical date of first vaccination. That April cutoff also matches the dividing line used in the peer-reviewed literature (see Sources).
Secondary finding: political lean
Regressing rate on the officials.state_political_index Composite Political Index (117th Congress, roughly the 2021-2022 pandemic period, 50 states, DC not scored by this index) shows no significant relationship with the pre-vaccine rate (r=-0.14, p=0.33, n=50) but a strong, significant negative relationship with the post-vaccine rate (r=-0.53, p<0.0001) and with the cumulative rate (r=-0.38, p=0.006) — more Republican-leaning states had higher rates especially after vaccines arrived. Splitting states simply by CPI sign: Republican-leaning states averaged 146/100k pre-vaccine vs. 131/100k for Democratic-leaning states (a modest 11% gap), but 161/100k vs. 116/100k post-vaccine (a 39% gap) — the gap roughly quadrupled in relative size. This direction and pattern matches a peer-reviewed 2022 medRxiv analysis (Cronin & Evans; ABC News/Kaiser Family Foundation reporting), which found the red/blue death-rate ratio rose from 1.6 pre-4/19/2021 to 2.3 in the following year, an estimated 222,000+ excess deaths in red states over that period. Our own ratio is smaller (mirroring the coarser 50-state CPI-sign split versus a finer county/vote-share classification and a shorter window in the cited study), but the direction and the pre/post widening are consistent.
Every query behind this report
8 warehouse calls ran in this session, in order. Each is reproducible against the same snapshot.
query — 54 rows — 2506 ms
SELECT state, MIN(week_ending_date) mn, MAX(week_ending_date) mx, COUNT(*) n, SUM(CASE WHEN deaths IS NULL THEN 1 ELSE 0 END) nulls
FROM health.cdc_mortality
WHERE source_type='weekly' AND cause_name ILIKE '%COVID%'
GROUP BY state
ORDER BY state
LIMIT 60query — 1 rows — 1821 ms
SELECT DISTINCT cause_name, full_cause_name FROM health.cdc_mortality WHERE source_type='weekly' AND cause_name ILIKE '%COVID%'query — 194 rows — 1504 ms
SELECT week_ending_date FROM health.cdc_mortality WHERE source_type='weekly' AND state='California' AND cause_name ILIKE '%COVID%' ORDER BY week_ending_datequery — 51 rows — 1734 ms
WITH raw AS (
SELECT CASE WHEN state='New York City' THEN 'New York' ELSE state END AS state2,
week_ending_date, deaths
FROM health.cdc_mortality
WHERE source_type='weekly' AND cause_name='COVID-19'
AND state NOT IN ('United States','Puerto Rico')
)
SELECT state2,
SUM(CASE WHEN week_ending_date <= '2021-03-27' THEN CAST(deaths AS DOUBLE) ELSE 0 END) AS pre_deaths,
SUM(CASE WHEN week_ending_date > '2021-03-27' THEN CAST(deaths AS DOUBLE) ELSE 0 END) AS post_deaths,
SUM(CAST(deaths AS DOUBLE)) AS total_deaths
FROM raw
GROUP BY state2
ORDER BY state2
query — 52 rows — 5277 ms
SELECT geo_name, total_population FROM census.decennial_population WHERE "year"='2020' AND geography='state' ORDER BY geo_namequery — 51 rows — 2339 ms
WITH raw AS (
SELECT CASE WHEN state='New York City' THEN 'New York' ELSE state END AS state2,
week_ending_date, deaths
FROM health.cdc_mortality
WHERE source_type='weekly' AND cause_name='COVID-19'
AND state NOT IN ('United States','Puerto Rico')
)
SELECT state2,
SUM(CASE WHEN week_ending_date <= '2020-12-26' THEN CAST(deaths AS DOUBLE) ELSE 0 END) AS pre_deaths,
SUM(CASE WHEN week_ending_date > '2020-12-26' THEN CAST(deaths AS DOUBLE) ELSE 0 END) AS post_deaths
FROM raw
GROUP BY state2
ORDER BY state2
query — 9 rows — 15157 ms
SELECT congress, congress_start_year FROM officials.state_political_index GROUP BY congress, congress_start_year ORDER BY congress_start_year DESC FETCH FIRST 10 ROWS ONLYquery — 50 rows — 9082 ms
SELECT state_name, cpi, political_lean FROM officials.state_political_index WHERE congress=117 ORDER BY state_nameSources
- CDC/NCHS weekly provisional COVID-19 deaths by state — health.cdc_mortality, source_type=weekly, cause_name=COVID-19
Show SQL
SELECT state, week_ending_date, deaths FROM health.cdc_mortality WHERE source_type='weekly' AND cause_name='COVID-19' - 2020 Decennial Census state population
Show SQL
SELECT geo_name, total_population FROM census.decennial_population WHERE "year"='2020' AND geography='state' - State Composite Political Index, 117th Congress — officials.state_political_index, derived from Congress.gov members + electoral college results
Show SQL
SELECT state_name, cpi, political_lean FROM officials.state_political_index WHERE congress=117 - https://www.medrxiv.org/content/10.1101/2022.04.08.22273628v1.full
- https://abcnews.go.com/Health/red-blue-america-glaring-divide-covid-19-death/story?id=83649085