Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?


Failed to load latest commit information.
Latest commit message
Commit time
March 21, 2021 14:22
July 30, 2021 17:28
December 30, 2020 00:23
March 20, 2023 13:47
February 12, 2023 15:12
December 31, 2020 00:27
March 1, 2023 21:27
March 20, 2023 13:47
February 15, 2023 18:21
March 4, 2023 16:08
February 4, 2023 17:33
March 20, 2023 13:47
February 12, 2023 15:12

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.

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

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, and 2022). 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.

The same figure without the projections (as in the paper):

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. So this corresponds to the gray markers in the figure above.

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.

Figures below are updated every month. 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 2021, and monthly date by date of registration starting from 2022 (as the data by date of death are not yet available). 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: at the moment all estimates are in this section are made using the same 2020 baseline for all years (2020, 2021, 2022). I plan to change it to using different baselines for each year, as above.

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 (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: 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 Here I use linear trend based only on 2018-19 for linear extrapolation:

And as summary across age groups:


Excess mortality during COVID-19 pandemic







No releases published


No packages published