COVID-19 in The Netherlands: a simple model

With the corona virus (COVID-19) dominating headlines and people’s lives, I couldn’t resist the urge to build my own model.

The purpose of this simple model is to better understand our current situation, and get some estimate of the important variables that are unknown:

  1. how many have been infected
  2. how many are sick / display symptoms / would test positive if they were tested.
  3. how quickly the virus is spreading

The big question is:

Will the health-care system (in particular, Intensive Care units) be able to handle the coming peak of patients?

A secondary question is:

How long will it take until we can get back to our normal lives again (with herd immunity)?

Note: Please consult the real experts if you are making any important decisions!

This model is tailored to the Netherlands, but could in principle be applied to any other country or region. Peculiarities of the Dutch situation are:

  • Not everyone with symptoms is tested, due to shortage of tests.
  • The policy is not total lockdown, but social distancing (avoid any gatherings, work from home, stay indoors if sick, keep at least 1.5 m distance to others).
  • The ultimate goal is achieve herd immunity as soon as possible, without over-straining the health-care system.
  • Of the whole health-care system, Intensive Care (IC) capacity seems to be the limiting factor.
  • The first big outbreak was concentrated in the province Brabant

Current model version

The model is built in Google Sheets. The tabs contain all the older versions of the model. Both data and model are updated every couple of days.

v04.08 update

The most recent data allows us to further lower the re-infection rate in the period 25-29 March (the days after the stricter social-distancing policies were introduced). This is good news.

v04.03 update

  • I adjusted parameters to fit the IC-data from NICE (instead of NVIC)
  • The % of newly symptomatic who go to IC now settles around 5% (was 3.5%)The % of true cases discovered/confirmed now settles around 40% (was like 25%). So the number of undiscovered corona-infections is smaller than we thought before.
  • This is good news in the short term (slower growth rates).
  • But it is bad news in the long term: higher % of people will need IC at some point along the road to herd immunity. Unless… we bring down the % that needs IC, e.g. by only infecting young healthy people.

v04.01 update

  • After analysing IC-data (from NICE), I believe the average time spent in IC for a corona-patient is 10 days – unless someone tells my I’m using the wrong method. Whether it is 10 or 20 days matters rather a lot for long-term IC-occupation.

  • The effect of the stricter social distancing policies anounced on 23 March is either not yet fully visible, or it is insufficient to prevent an IC crisis this month.

v03.28 update

  • I added IC-occupation data from NICE (, since NVIC is no longer reporting and directs us there instead.
  • Note that NVIC and NICE data seem to be shifted by 1 day.
  • Also note that NVIC data at the very beginning is rather high, compared to the total number of confirmed cases by RIVM. So who is right/wrong there?
  • For now, we just show this data for comparison, parameters have not been adjusted since v03.26.

v03.27 update

For the first time, the prediction 1 day ahead was spot on: 873 IC-beds occupied is exactly what I forecast yesterday! Too bad this is not something to be happy with – I’d rather see a lower number…

Today I also adjusted the future IC-capacity available for corona-patients: expansion to 1037 beds on April 1st seems to be the official plan (source: Note that total IC-capacity is larger, but is also needed for other (non-corona) patients.

v03.26 update

The model now includes duration of contagiousness: people don’t remain contagious forever, but only for a limited time (rough assumption is 14 days). This was not important at the start, when the main question was “how fast is this growing”. But it does matter now that we are further along and are also exploring future scenarios (see yesterday’s update).

v03.25 update

New data on confirmed cases becomes available every day around 14:00, while IC occupancy data becomes available around 18:00 or so.

The new IC data released yesterday evening suggests that the re-infection rate has kept dropping since 17 March (good). With these parameter changes (re-infection rate per day down to 0.3), it seems the IC capacity will be sufficient – at least for the coming days…

On 23 March, new stricter rules where announced (including €400 fines for not keeping 1.5m distance, door policies for shops, closure of all barbers etc., and invite max. 3 guests in your home). For long-term developments, it matters rather a lot how far these new policies bring the re-infection rate down (see the graphs below). (Beware: this whole exercise hinges on a number of rather loose assumptions, among others that 3% of true cases need IC-treatment). 

Down to 0.2 means IC overwhelmed on 6 april:

Down to 0.1 means IC overwhelmed on 19 april:

It needs to go all the way down to 0.04 (and stay there!) to gives us a manageable situation – until 1 June:

For completeness, here’s a “total lockdown” scenario, with a hypothetical re-infection rate of 0.0:

v03.24 update

New info: apparently, IC capacity has been expanded from 575 to 925 beds. After that, I assume only modest expansion is possible (50 beds a day to a max of 1475). This literally gives us some room to breathe.

Model changes: IC occupancy is growing faster than warranted by the number of confirmed cases, so I added a time-dependent parameter for “% of real cases tested”. Then I re-calibrated the model so that it better matches both the IC occupancy and the number of confirmed cases.

v03.23 update

I expanded the model with data and estimates for the IC utilization and maximum capacity. It’s going to get VERY close the coming days (see figure below).

I also made the first “long-term” projection (until 1 May, less than 6 weeks from now), but that still needs some refinement. Anyway, it’s already clear that the main problem is that the total population is like 10,000 x larger than the number of IC beds.

So even if only 1% of victims needs IC (current estimate is 3.5%), and each occupies a bed for 10 days, and we “flatten the curve” successfully, and we expand capacity to 1700 IC-beds, it will still take 1000 days until everyone has been treated. If “herd immunity” means only 50% will ever get infected, it would still take 500 days (1.5 years!).

v03.22 update

Today’s number of new confirmed cases (tested positive) is slightly lower than expected. Tomorrow I will try to add IC-beds in the model.

v03.21 update

Today only added new data. Sadly, the long-term projection had to be set slightly higher. Any day now, we should start to see the effects of the social distancing policies introduced the weekend before.

Summary of discussions on LinkedIn and Whatsapp:

v03.20 update

I clarified the goal and approach of the model (see Google Sheet), added a new graph (see below), and messed with the assumptions and calibration.

v03.19 initial version

This is the first version. The idea is to calibrate the model using the official number of confirmed cases. This means: fiddle with the parameter settings until the model outcomes is similar to the data we have. This does not guarantee that the model describes reality (e.g. the unknown number of people already infected), but at least it can explain the data we have.