Coronavirus Disease (COVID-19)

27 March 2020

IMPORTANT:  Note that excel (at least 2016 version) does NOT work correctly when querying the raw data source on github. The issue seems to be that the  power query in excel incorrectly assumes that csv files have constant number of columns. That is not true as new days as added as new columns so the data has increasing number of rows for countries and increasing number of columns for days (Removing the column definition from the advanced query in excel does not solve the issue).

One way to get around manual download each day is to automate download using python with pandas.

You can use code below:

import pandas as pd

confirmed = pd.read_csv (
    "https://raw.githubusercontent.com/CSSEGISandData/COVID-19/master/csse_covid_19_data/csse_covid_19_time_series/time_series_covid19_confirmed_global.csv")

confirmed.drop ('Lat', axis=1, inplace=True)
confirmed.drop ('Long', axis=1, inplace=True)
confirmed.rename (columns={'Country/Region': 'Country'}, inplace=True)

deaths = pd.read_csv (
    "https://raw.githubusercontent.com/CSSEGISandData/COVID-19/master/csse_covid_19_data/csse_covid_19_time_series/time_series_covid19_deaths_global.csv")

deaths.drop ('Lat', axis=1, inplace=True)
deaths.drop ('Long', axis=1, inplace=True)
deaths.rename (columns={'Country/Region': 'Country'}, inplace=True)

recovered = pd.read_csv (
    "https://raw.githubusercontent.com/CSSEGISandData/COVID-19/master/csse_covid_19_data/csse_covid_19_time_series/time_series_covid19_recovered_global.csv")

recovered.drop ('Lat', axis=1, inplace=True)
recovered.drop ('Long', axis=1, inplace=True)
recovered.rename (columns={'Country/Region': 'Country'}, inplace=True)

confirmed.to_csv (r'C:\Users\Patrik\Local\covid\confirmed.csv', index=False)
deaths.to_csv (r'C:\Users\Patrik\Local\covid\deaths.csv', index=False)
recovered.to_csv (r'C:\Users\Patrik\Local\covid\recovered.csv', index=False)

print("Done")

--------------------------------------------------------------------------------------------------------------------------

21st March 2020

New vs cumulative cases of Covid 19 in China. Log  scale used to show how many days it takes to double the number of cases. Note the red arrow that points to the highest number of new cases on day 27. Since then new cases have been increasing at a slower pace leading to a much flatter cumulative curve.

Data from the European Centre for Disease Prevention and Control:
https://www.ecdc.europa.eu/en/geographical-distribution-2019-ncov-cases



New vs cumulative cases of Covid 19 in Italy plotted on a log scale. Day 27 is highlighted by the red arrow. However, new cases continue to increase at increasing pace.




22 March 2020

Chart below shows cumulative cases over the past 10 days in selected countries plotted on a log scale to see doubling of cases. The number of new cases in China has been growing at negligible pace so cumulative number of cases has been remarkably stable. Cases in Europe continue to increase dramatically but growth in the US has been shocking.

Epicenter moved from China to Europe but at current pace, US will be the epicenter in a few days.

Data from Johns Hopkins University downloaded from github:




While deaths in China remain steady, deaths in Italy have exploded over the past 10 days. Linear scale used.




Also interesting how the death rate is significantly higher in Italy compared to global average or even Chinese death rate.




Global death rate (deaths/confirmed cases) remained stable from mid February slightly below 3.5%. Disturbingly, the rate started to increase on day 47 (March 10th) and continue to rise as infections exploded in Europe and USA.






23 March 2020


Cumulative cases over the past 30 days on a log scale to show how many days it takes for cases to double. Nine countries with the highest number of cases selected.

While China (blue) and South Korea (red) remain remarkably stable, other countries continue to experience dramatic increases.

Data from Johns Hopkins University downloaded from github:




24 March 2020

The period of relative stability in the number of new cases and new deaths ended as the virus hit the US with full force. Global changes skyrocketed, bringing along dramatic increase in cumulative cases.

Chart shows daily changes in global number of new confirmed cases (blue line measured on left scale) vs global new deaths (orange line measured on the right scale).





25 March 2020


Death rate (cumulative deaths divided by cumulative cases) among 15 countries with the highest number of cases varies dramatically from 0.4% in Norway to 9.9% in Italy. Global average is 4.4% (blue dash horizontal line).

However, results are skewed and might be misleading as countries that have tested more people will exhibit lower death rate. Similarly, countries that have tested only a small fraction of population are likely to drastically underreport actual number of cases.





26 March


While confirmed cumulative cases have remained remarkably stable in China and South Korea, they continue to explode in the US and Europe. Growth in Iran seems to be surprisingly slow but data quality might be questioned. Chart uses log scale to show doubling of cases.






Case for a bit of optimism - growth in Italy turned negative a few days ago. US continues to shoot higher. United Kingdom seems to be the wildcard as I would expect cases to shoot higher despite the lockdown announced three days ago. Photos of packed commuter trains do not bode well.






27 March 2020

Instead of plotting daily changes vs time, I wanted to see daily changes vs cumulative changes. Both vertical and horizontal axis use log scales to easily see how rapidly cases double.

While China seems to be doing reasonably well as cumulative cases remain stable (not shown here as data line would not even show up on the chart) results from Europe are discouraging and the result from the US is downright scary.

As long as data show exponential growth instead of logistic growth there is little case for optimism.

Even Italy (brown line) that experienced a few days of slowing increases shows an uptick in new cases.




28 March 2020

The number of global daily deaths continues to explode. Using the latest data from Johns Hopkins University (27 March), linear regression estimates that on April 1st there will be more than 3000 deaths. Mere 10 days ago, the number of dead was "only" 700.




As countries ramped up testing, we can get a more accurate picture of the mortality rate. Never the less, the inherent flaw, which is the fact that only a portion of infected persons will be tested, will continue to skew the results. Concentrating on the number of deaths can partially overcome this limitation.


Unfortunately, the marginal rate continues to rise relentlessly so there is no reason to expect an improvement in the short term horizon.



31 March 2020

Yes, looking at confirmed new cases is flawed because it does not represent the true number of cases in a population and yes, few days do not make a trend. However, we all need a bit of optimism so seeing a declining number of new cases, stable number of deaths and increasing number of recoveries is certainly comforting.




Unfortunately, the good news stops there as the situation in United States is dire. Data from Johns Hopkins University published today shows doubling of cases and doubling of deaths every few days.




2 April 2020

Global numbers continue to soar relentlessly. Chart shows global daily deaths as a function of daily global new cases over the past 10 days. Despite global restrictive measures there is nothing that would indicate that growth might start slowing down.







4 April 2020

Many countries dramatically increased testing so the inherent skew in confirmed cases will decline. Regardless, looking at cumulative deaths and daily new deaths still appears to be the most precise way of measuring the ongoing crisis.

Data from Johns Hopkins University shows steady daily increses in global deaths (red line, 10 day average 12%). Germany (green) and Italy (dark blue) show slower rate of increase, albeit from a higher previous level).

Unfortunately, United States and United Kingdom show massive rate of increases, averaging 26% and 24% of daily increases in deaths over the past 10 days.

Note that 20% daily increase leads to six fold rise in 10 days and ten fold rise in 14 days.







6 April 2020

Financial markets (SP500 +5.5%, DAX +5.7%) are cheering declining number of deaths in Italy and Spain. While it is certainly a good sign that percentage wise, the number of deaths in Spain and Italy rose the least in 11 days, it is important to recognize that in absolute terms, the numbers are staggering (500+ deaths yesterday in Italy, 600+ deaths in Spain).




Looking at global figures, north America or the UK paints a different picture. Yes, deaths rose the least in Canada, US and UK, but the increase was around 15%!!! In Japan deaths skyrocketed by 20%.

Given that we cannot even begin to estimate when restrictive measures will be lifted, the labor market will continue to implode, manufacturing PMI and later service PMI will drop and overall economic activity came to a halt, equity market increases are likely to be proven to be another dead cat bounce.




10 April 2020


Finally some evidence of an improvement. Over the past two weeks, both percentage change of new cases as well as percentage change in deaths have been declining steadily. On March 17 new cases and deaths grew at staggering 25% and 30% respectively.  While the growth is still very high, both around 10%, the pace has optimistic trend.




In absolute terms the data is less convincing. New cases (left scale) grow at steady pace as do deaths (right scale). However, significantly higher number of tests performed (over 1.2 milion tests since April 1st) along with new cases that have not breached above previous high formed on April 4th seem to indicate that the worst might be over.