/excess-mortality

Excess mortality during COVID-19 pandemic

Primary LanguageJupyter NotebookGNU General Public License v3.0GPL-3.0

Excess mortality during the COVID-19 pandemic

Publication: Karlinsky & Kobak, 2021, Tracking excess mortality across countries during the COVID-19 pandemic with the World Mortality Dataset. eLife 10:e69336. https://elifesciences.org/articles/69336.

See the elife2021 folder for reproducible analysis from the paper. The figures shown below are being continuously updated after the publication.

NOTE: We will not provide any excess mortality estimates starting from 2024. Our excess mortality calculations are based on linear extrapolation of 2015--2019 trends, and this becomes more and more tenuous as the years go by. The repository will keep being updated together with the World Mortality Dataset but will only show excess until the end of 2023.


Analysis code: all-countries.ipynb (can be run in Colab).

The data are sourced from the World Mortality Dataset. Excess mortality is computed relative to the baseline obtained using linear extrapolation of the 2015–19 trend (different baselines for 2020, 2021, 2022, 2023). In each subplot in the figure below, gray lines are 2015–19, black line is baseline for 2020, red line is 2020, blue line is 2021, orange line is 2022, green line is 2023. Countries are sorted by the total excess mortality as % of the 2020 baseline.

Red number: excess mortality starting from the first officially reported Covid-19 death.
Gray number: excess mortality as a % of the annual (2020) baseline deaths.
Black number: excess mortality per 100,000 population.
Blue number: ratio to the daily reported Covid-19 deaths over the same period (sourced from WHO).

The same data but now represented as the number of deaths per 1000 people per year, and with countries sorted accordingly:

Top-10 countries in the World Mortality Dataset according to different metrics (only countries with over 500,000 population are shown):

See full table in CSV: excess-mortality.csv. Compare with: FT, NYT, The Economist, WSJ.

Tracking of excess mortality and official Covid deaths:

Note: On March 1, 2023, I removed the European 2020 heatwave correction that we did in the eLife paper. There were multiple heatwaves since then, and we are not able to systematically correct for it always. So this correction has been dropped.

Extrapolation until today

Daily reported Covid-19 mortality and estimated excess mortality across the countries with the most reported Covid-19 deaths. Note that in this figure the excess mortality in all countries is FORECASTED using the undercount coefficient and the LATEST daily reported number of deaths.


Excess mortality in Europe by NUTS regions

The code is in the europe-nuts.ipynb notebook. The weekly data are sourced from Eurostat, excess mortality is computed using the WMD model (i.e. accounting for yearly trend and extrapolating it forward; total excess is the sum from 2020, week 10, onwards). I am using NUTS3 regions in most places, but NUTS2 are used in Belgium, Netherlands, and UK because there NUTS3 appear too small on this map (London is shown as NUTS1), and also in Serbia because I am not sure NUTS3 data are reliable.

Caveat: UK data in Eurostat are only available for 2020, meaning that excess mortality in 2021 is not taken into account.

See also animation of weekly excess mortality.

The same figure by P-scores:


Excess mortality in Russia

The code for my February 2021 paper in Significance Excess mortality reveals Covid's true toll in Russia is available in the significance2021 folder, together with the frozen data and the final figures.

The up-to-date data can be found in the russian-data folder. Code: russia.ipynb. I am using monthly data by date of death for all years up to and including 2023. The data by date of death were provided by Rosstat upon my request. (Note that the dataset includes deaths with known year but unknown month of death; I redistributed those proportionally to the deaths with known month of death.) Thanks to Alexey Raksha for helpful discussions.

Note: this analysis follows the same principle as the analysis above: baselines are obtained using linear extrapolation from 2015--19, and baselines for 2020, 21, 22, 23, are all different.

Note: I am not planning to update this analysis with 2024+ data.

Note that ~10 thousand excess deaths in July in the Ural region and West Siberia were due to the heat wave (see also below).

Animation (English):

Animation (Russian):

Map (English):

Map (Russian):

Country as a whole:

Yearly deaths:

Back in 2019 Rosstat made forecast until 2035 (xls). Upper/lower/middle forecasts are shown with dashed lines. The actual number in 2019 was 1,798,307. The actual number in 2020 was 2,138,586 (forecast: 1.7890 mln; 1.7413--1.8304). The actual number in 2021 was 2,441,594 (forecast: 1.7877 mln; 1.7158--1.8481).

Detailed statistics in regions with the most excess deaths:

Evolution of the undercount coefficient:

Seasonal variation:

Detailed history of monthly deaths:

Weekly data

Excess based on weekly data (by date of death) from http://mortality.org (only 2020 data are available so far; note that these weekly data do not include Crimea and do not include deaths with unknown week of death):

Note the bump in weeks 28--29: that is the effect of the heatwave (e.g. in Ufa it was very hot from 10th to 20th of July, precisely these two weeks: http://www.pogodaiklimat.ru/monitor.php?id=28722&month=7&year=2020). It contributed around 4 thousand excess deaths per week, i.e. around 8 thousand in total, on top of the excess Covid-related mortality.

The same split by gender and narrow age groups (using "input" data to STMF shared at http://mortality.org). Here I use linear trend based only on 2018-19 for linear extrapolation:

And as summary across age groups: