#FlattenTheCurve, but by how much?

Hi, this is Lisa; I’m responsible for the blog and the general communication at Datawrapper. I take care of our recently published collection of live-updating charts, maps, and tables about the coronavirus. Today I’ll ponder about doubling times.

Two days after South Korea reported their 100th COVID–19 case, they reported their 200th. Two days later, their 400th. Two days later, their 800th: South Korea had a doubling time of two days in the first 10 days of reporting their 100th case.

Since then, 27 days have passed. But instead of reporting their 1,759,943rd case yesterday, they reported their 8413th. South Korea has reduced their doubling time to 65 days.

If you’ve seen last week’s Weekly Chart, #FlattenTheCurve, this chart will look familiar.

And while I like how last week’s chart shows the overall development of confirmed COVID–19 cases in selected countries, I wanted a more detailed overview of which countries change their trajectory the most. This week’s Weekly Chart is a table:

We can see that South Korea not only slowed down the doubling time of confirmed cases but also decreased the number of confirmed cases. In the last five days, South Korea reported 434 new cases, compared to 665 cases in the five days before those five days.

And that’s an achievement in itself. A slowed doubling time doesn’t automatically lead to less reported cases. For that, the doubling time needs to slow down massively – we can see this happening in Norway or Sweden.

How to calculate and apply doubling times

For this table, I had to wrap my head around calculating doubling times. Here’s how you can calculate them yourself (although I won’t explain the formulas):

Calculating doubling times

To calculate the doubling time for a population (e.g. COVID-19 cases), use the formula =(x*ln(2))/(ln(y/z)), where

  • x is the time that has passed since you started measuring. For example, if the number of cases went from 500 on day 0 to 1000 on day 2, x is 2.
  • y is the number of cases on day x, e.g 1000 on day 2.
  • z is the number of cases on day 0, e.g. 500.

So our formula is =(2*ln(2))/(ln(1000/500)).

Put that into Excel, R, or your other favorite math-able software, and you’ll get a number: 2. That’s our doubling time: To get from 500 and 1000 cases in two days, cases must double every second day. No surprises here – but once we know the doubling time, it gets interesting:

Applying doubling times

How many cases are there on day 1? Or on day 3? Or on day 1000? To apply a doubling time to a population, use this formula: =z*(2^(1/y))^x, where

  • z is the number of cases on day 0, e.g. 500.
  • y is your doubling time – in our case, that’s 2 days (we just calculated it!).
  • x is the time passed. For example, if we want to calculate cases on day 1, x is 1. If we want to calculate cases on day 1000, x is 1000.

So our formula is =500*(2^(1/2))^1.

When we put that into Excel, Google Sheets, R, etc., we’ll learn that there are 707 cases on day 1. And 1414 on day 3. That’s totally unintuitive. But it’s true. Try it out for yourself!

Math, man. Fascinating.


Here’s a recommendation: The folks at Our World in Data are working day and night to deliver the best possible numbers on the coronavirus, with great charts, maps & tables, and lots of explanations. Check them out – we’ll see you next week!

We have updated our Privacy Policy to reflect the new EU regulations. Please give it a read (it is written with the goal of clarity) and click here to accept it.