Category Archives: Weblog

How many people in the Netherlands have (had) COVID-19?

Every day around 14:00 the Dutch government institution RIVM publishes data about new confirmed cases of, and deaths due to, COVID-19. At the time of writing (March 28th, in the afternoon) there are 9762 confirmed cases, 2954 people have been/are hospitalized, and 639 people have died until now. There is no data about people who have recovered. The testing regime in the Netherlands is very limited, only severely ill patients and some health care workers are tested. I understand about 2500 tests are done every day, last day 1159 of the tests were positive. I think the number of confirmed cases is basically meaningless. 

I have been sick for the last week with COVID-19-like symptoms: fever, short of breath, throat ache, … Luckily it was mild and I’m feeling much better at the moment. Two Dutch people I follow on Twitter also have COVID-19. I have not seen the two others and they have not seen each other, so these are three independent cases. I follow about 200 people. I guess about half of them is Dutch and a person (not a company or so). This means 3% of the people is ill. With 17 million people in the Netherlands, this means 510 thousand people. The people I follow on Twitter is not a representative sample of the Dutch population. On the other hand, the families of the people I follow are also sick. Does that compensate each other? 

I have no background in medicine or epidemiology, but I am a scientist and like to think about these kind of problems. Is there a more scientific way to estimate the number of infected people?

It seems that the “best” way to estimate the number is to use the Case Fatality Rate (CFR), the number people deceased divided by the number of people diagnosed (i.e. confirmed cases). The CFR turns out to be a tricky number. See for more details also Our World in Data.

First is because it assumes both the number of deaths and number of diagnosed to be accurate. The number of deaths is probably the most accurate information we have. The number of confirmed cases is however unknown — that is the whole problem. Apparently it is usually measured after the fact by testing for antibodies in a sample of the population. The best we can do is look for countries with widespread testing and look at their CFR. 

Second is that the CFR is clearly different per age group and health status. COVID-19 is especially lethal for older people. Since Italy has an older population than China, the CFR in Italy will probably be higher than in China. If we want to compare countries, we should look at nearby countries with a similar population-structure.

Third is that the CFR is not constant. At the beginning of the outbreak the doctors in China didn’t know what was going on and had to come up with a treatment, the number of deaths (and the CFR) were probably relatively high. As time progressed, doctors became more experienced and the CFR dropped. In Italy the doctors could use the experience of the Chinese, hopefully reducing the CFR. However, as the Italian health care system became overwhelmed by the number of seriously ill people, the CFR is likely to increase. 

The biggest problem for an estimate is however that there is a delay between when the disease starts (or is confirmed) and death. This delay seems to be about two weeks. People dying today (March 28th) have contracted the disease around March 14th. Using the CFR we can only say something about the situation two weeks ago. 

Still, despite all the caveats, let’s try to use the CFR to estimate the actual number of cases in the Netherlands. The figure above, from Our World in Data, plots the number of confirmed cases versus the number of confirmed deaths. You can see that the CFR in the Netherlands is much higher compared to South Korea, Germany, Austria, and Norway. South Korea seems to be testing a lot, but the population may not be comparable to that of the Netherlands. The population of the other countries are more comparable to the Netherlands. Their lower CFR indicates that they do a lot more testing. If more tests are done, more cases would be confirmed and the marker will shift to the right, towards a lower CFR. 

In the figure below the number of cases are estimated for different CFRs. If the CFR is between 0.45% and 0.88%, then we had, two weeks ago, between 72 and 143 thousand cases in the Netherlands. 

On this website they try to estimate the percentage of cases that are actually reported, by using the delay. However, they use a CFR of 1.38%, which seems quite high. The delay between when a case was reported and death was fixed to 13 days. I can believe that there is a delay of 13 days between the start of the disease and death, but people (especially in the Netherlands) are tested relatively late and 13 days seems too long, or at least, too rigid. 

With all the limitations, I think we can estimate that two weeks ago between 70 and 140 thousand people in the Netherlands had COVID-19. This is between 0.4% and 0.8% of the Dutch population. 

The growth in the last two weeks is very difficult to estimate, especially because two weeks ago bars etc have been closed and everyone has been instructed to keep 1.5 m distance. Still, I wouldn’t be surprised if the number of infected people is three to four times higher now. [1] That means between 210 and 560 thousand people in the Netherlands are, or have been, infected with COVID-19. My Twitter-based estimate may not have been so wrong after at all. 

[1]: Why three to four times higher? If 100 people are infected and they each infect 2 other people (R0=2), then they infect 200 people, for a total of 300 people (=3x more) [2]. They will in turn infect more people, but maybe not as many because of the partial lockdown. (back)

[2] Of course, if R0=2, then 33.3 people infected 66.6 new people, to make 100 total. The 66.6 newly infected people will infect 133 other people, making a total of 243. It is a bit slower, but given all the uncertainties in this calculation… (back)

My mom’s pea soup

I always thought that ‘erwtensoep’ is very Dutch. However, according to Wikipedia it is common other northern European countries (and even Canada) as well. However, this recipe from my mom is how pea soup should taste like, if you ask me. The home-made stock gives a rich taste. It does take some time to cook and you need to be present to stir. On the other hand, you can make a lot in one go and then store it in the freezer. I’ll start with a short summary of the recipe and then give a longer description with photos.


  • Pork leg bones, with meat attached 500 gram — ask the butcher to chop in two so that the marrow can come out.
  • Water 1.5 L
  • Bay leaf 3x
  • Green split peas 500 g (they are dried beans but they don’t need to be soaked before use).
  • Leeks 500 g
  • Onions 500 g
  • Carrots 300 g
  • Celeriac 1x
  • Celeriac leaves 1 bushel (100 grams)
  • Smoked sausage 750 g
  • Pepper en salt
We use the middle part of the pork leg, both the bone and the meat. Image from:

The recipe in short

  • Make the stock, cook it for a few (three) hours.
  • Sieve the stock, add cold water to make 2 liter.
  • Cook the split peas for 1 to 1.5 hours.
  • Add the vegetables, sausage and remains of the meat and cook for about two hours.
  • Remove the lid during the last hour to evaporate the water.
  • Be careful not to burn the food.
Dinner time!

The long version

This weekend I made a double amount of pea soup, see the photo below. I made all stock in one go and then made two pans of soup. I then freeze it.

Ingredients for 2 pans of soup.

The exact amounts are not very critical. After adding the vegetables and sausage the volume is 6 to 6.5 liters (the pan on the photo is 6.8 liter). This time the amount of vegetables was on the low side. I used 4 smoked sausages (1 kg) per pan. It is a bit much, but I don’t think people will complain :) In the end you are left with 4.5 to 5 liters of soup. People eat 500 to 750 mL per person, a bit less if you serve it with bread with cheese.

The times in the recipe are also not very critical. It is better to take more time than to take less. Cutting the vegetables takes about an hour. Making the stock takes 3 to 4 hour, making the soup also takes 3 to 4 hour.

The only crucial thing in the recipe is to stir often. The problem is that the soup doesn’t circulate in the pan, which may cause it to burn on the bottom. Use a good pan that heats uniformly and use a heat diffuser, on the smallest burner. Alternative you can, after everything has been added, put the pan in the oven (about 180 degrees Celsius). This heats more evenly. The soup dries up a bit on the sides of the pan, but it doesn’t burn. You can stir every half hour or so. If some of the soup has burned, don’t scrap it loose — it is disgusting.

The recipe

Make the stock. Put the pork leg bones in 1.5 liter water and add the bay leafs. Cook with the lid on for a few hours. The longer the better. I usually cook it for three hours. After the first two hours I usually use forks to remove the meat from the bone. I also wiggle the marrow in the bones loose. I then simmer it for another hour or so, at a slightly higher temperature to get some movement in the pan.

In the beginning we create the stock.

Sieve the stock. Save the meat/bones for later. Measure/estimate how much stock you have (it will be about 1 liter). You can put the stock and meat in the fridge and make the soup the day after.

Add the stock in a pan and add water to make 2 liters. Rinse the peas and put them in the stock. Add pepper and some salt. Bring to a boil, then simmer them for an hour or so. Stir every 15 minutes or so.

Peas boiling. The sausage are warming up in the background.

Sort the meat. Discard the bones and tendons. Cut the meat in small pieces. I do use the gelatine-like piece. Add this to simmering peas.

Cut vegetables for two pans of soup. The containers with carrots on top are for the second pan of soup.

Cut the vegetables. I usually cut them in pieces of 1 cm / 1 cm2 / 1 cm3 or something, but it is not very critical. Warm up the sausages and cut them in pieces.

Soup with vegetables…

After an hour the peas are falling apart. Add the vegetables and sausage to the pan. It now has to start boiling again. If you do this on high heat you’ll need to stir constantly. You can also use the small burner on high heat and stir every now and then. Once it cooks let it simmer, or put it in the oven.

…and with sausage.

Simmer the soup for one hour with the lid on. Stir it every 10 minutes (every 5 minutes is a bit often, but every 15 minutes is not often enough). After an hour I remove the lid and let it simmer for another hour. Some water evaporates, making the soup thicker. It is ready when a fork doesn’t fall over. You’ll see that the celeriac have fallen apart.

Done! You see there is not much of the celeriac left.

Pea soup tastes better over time. You can make it the day before, or freeze it and eat it later. It is usually served with (dark/dense) bread and cheese.

Mijn moeder’s erwtensoep

Voor mij is dit hoe erwtensoep hoort te smaken. Door de zelfgemaakte bouillon is de smaak heel rijk. Het kost wel wat tijd om te maken en je moet er ook echt bij blijven om regelmatig te roeren. Aan de andere kant, je kan in één keer heel veel maken en het daarna invriezen. Ik geef eerst het recept in het kort, daarna een uitgebreide versie met foto’s.


  • Hamschijf 500 gram — door de slager doormidden gehakt zodat het merg eruit kan komen.
  • Water 1.5 L
  • Laurierblaadjes 3x
  • Spliterwten 500 g
  • Prei 500 g
  • Uien 500 g
  • Winterwortel 300 g
  • Selderijknol 1x
  • Selderijblad 1 bosje
  • Rookworst 750 g
  • Peper en zout

Het recept in het kort

  • Maak de bouillon, kook het een paar (3) uur.
  • Zeef de bouillon. Vul aan tot 2 uur liter.
  • Kook de erwten, ca 1 tot 1.5 uur.
  • Voeg de groenten, worst en vleesresten toe en kook het ca 2 uur.
  • Laat het laatste uur de deksel eraf om vocht te laten verdampen en het wat steviger te maken.
  • Pas op voor aanbranden!


Dit weekend heb ik een dubbele hoeveelheid erwtensoep gemaakt, zoals je op de foto’s ziet. Ik maak de bouillon in één keer en maak daarna twee pannen soep. Ik vries de soep daarna in.

Ingrediënten voor 2 pannen soep.

De hoeveelheden luisteren niet heel nauw. Nadat de groente en worst is toegevoegd is het volume 6 tot 6.5 liter (de pan op de foto’s is 6.8 liter). De hoeveelheid groenten was deze keer aan de kleine kant. Ik gebruik hier 4 rookworsten (1 kg). Dat is vrij riant, maar ik denk dat niemand erover zal klagen :) Uiteindelijk hou je 4.5 tot 5 liter soep over. Reken op 500 tot 750 mL soep per persoon. Iets minder als je er brood met kaas bij serveert.

De tijden in het recept luisteren ook niet heel nauw. Neem liever meer tijd dan minder. Het snijden van de groente kost ongeveer een uur. De bouillon kost 3 tot 4 uur, de soep ook zoiets.

Het enige cruciale in het recept is dat je veel moet roeren. Het grote probleem met erwtensoep is aanbranden, omdat de soep niet circuleert door de pan. Je kan het proberen te voorkomen door een goede pan te gebruiken die gelijkmatig verhit en door een vlamverdeler te gebruiken, op de kleinste pit. Je kan de pan, nadat je de groenten en worst hebt toegevoegd, ook in de oven zetten (ca 180 graden). Dat verhit veel gelijkmatiger. Als je het in de oven zet kan je veel minder roeren. Elk half uur of zo. De soep droogt aan de randen wat op, maar verbrand niet. Mocht er toch wat aangebrand zijn, schraap het dan niet los. Het is niet te vreten.

Het recept

Maak de bouillon. Doe de hamschijf in 1.5 liter water en voeg de laurierblaadjes toe. Laat dit met deksel een paar uur koken. Hoe langer hoe beter, ik kook het meestal drie uur of zo. Nadat aan de kook is geraakt laat ik het meestal twee uur zachtjes sudderen. Daarna trek ik met twee vorken het vlees van het bot en peuter ik een beetje in het bot om het merg los te krijgen. Daarna zet ik het vuur iets harder om wat meer beweging in de pan te krijgen.

In den beginne… een doormidden gehakte hamschijf en laurier in het water.

Zeef de bouillon. Bewaar het vlees/bot voor later. Meet hoeveel bouillon je ongeveer hebt. Het zal iets van 1 liter zijn. Je kan de bouillon en het vlees eventueel in de koelkast doen en de soep de volgende dag maken.

Doe de bouillon in een pan en vul aan met koud water tot ongeveer 2 liter. Was de erwten en doe ze in de bouillon en breng aan de kook. Voeg peper en wat zout toe. Zet het daarna op een klein vuur en laat het een uur zachtjes koken. Roer het regelmatig, elke 15 minuten of zo.

Kokende erwten. Op de achtergrond worden de rookworsten verwarmd.

Sorteer het vlees. Gooi stukjes bot en pezen weg. Snij het vlees klein. Ik gebruik de gelatine-achtige restanten gewoon. Doe dit direct in de pan.

Gesneden groenten voor twee pannen soep. De bakjes met wortels op de groenten zijn voor de tweede pan soep.

Snij de groenten. Ik doe meestal stukjes van 1 cm / 1 cm2 / 1 cm3 of zo, maar het luistert niet heel nauw. Verwarm de rookworsten en snij ze in stukjes.

Soep met groenten…

Na een uur zijn de erwten helemaal uit elkaar gevallen en wordt het meer een brei. Doe nu de groenten en worst in de pan. Het moet nu weer aan de kook komen. Als je het op een groot vuur zet dan moet je continu roeren. Ik laat ’em meestal op het kleinste vuur staan en roer regelmatig. Als alles kookt kan de pan weer op het kleine vuur om zachtjes te sudderen (of in de oven).

…en met worst. In dit geval sneed ik de worst nadat ik de groenten had toegevoegd.

Laat het een uur zachtjes sudderen met deksel en roer het elke 10 minuten (elke 5 minuten is wel vaak, elke 15 minuten is veel te lang). Na een uur haal ik de deksel er vanaf en laat ik het nog een uur of zo zachtjes sudderen. De bedoeling is om wat vocht te verliezen en de soep steviger te maken. De soep is klaar als een vork overeind kan staan in de soep. De blokjes selderie zijn door het roeren en koken ook helemaal uit elkaar gevallen.

Het eindresultaat. Er zijn nog amper hele stukjes selderie over.

Erwtensoep wordt lekkerder als ie even gestaan heeft. Je kan het dus een dag van tevoren maken, of invriezen.

Analysis of my bike commute

Last year I purchased a sports watch to keep track of my bike commute. Recently I got the impression that I’m slowing down. I downloaded the data and analyzed it a bit.

Figure 1: my route to work (most of it). I live in the lower right corner.

My commute is about 9.4 km. I selected data that is between 9.2 and 9.6 km. This accounts for small variations, but it excludes when I go into the city and do some shopping. The problem is not so much the different distance, but the speed. I want to keep it safe and won’t rush. Most of my commute is however on a long bicycling path next to a canal, as shown in the image above. I live in the lower right corner and I work in the upper left corner.

Figure 2: average speed over time, separated for going to work and going home. The gap in december 2017/januari 2018 is because of the Christmas holidays. The gap in February is due to syncing issues. 

The figure above shows the average speed for every day. The two colors show my commute to work (blue) and home (orange). The green and red line are a running average over 5 data points. My average speed has indeed dropped a bit. It used to be about 22.5 km/h, now it is about 21.0 km/h. This is still a very nice average speed for a completely human-powered bike.

At least as interesting is the difference between going to work and going home again, with average speeds of 21.3 km/h and 22.2 km/h respectively. The histogram below shows the difference clearly.

Figure 3: Histogram of the average speed going to work (blue) and going home (orange).

I suspect that the rail bridge plays a role. On my way to work, the downhill section has a sharp U-turn and another inconvenient corner, really slowing me down. On my way home the road after the bridge is more or less straight, so I can continue biking at high speed.

Figure 4: the bridge over the canal.

An obvious suspect is the wind. For individual bike rides this is obviously a factor. For example on March 2nd I had a 31 km/h south-east head wind when I went home, resulting in an average speed of 15.8 km/h. In November the wind was more north-westerly, resulting in a higher average speed going home. The predominant wind direction in the Netherlands is however from the south-west and my route is perpendicular to that.

What can be the reason for the recent slowdown? Part of it is that I am wearing different, longer, gloves that make it impossible to look at my watch. The watch shows different heart rate ranges and I tried to keep an eye on it to maintain a constant heart rate. Because of the gloves I can’t do this anymore.

Figure 5: average heart rate over time, separated for going to work and going home.

In the figure above I plot my average heart rate, and a running average. Aside from the first month or so it is stable between 140 and 150 bpm. Below, I made a plot of the correlation between average speed and average heart rate. For the bulk of the data there is no obvious correlation.

Figure 6: (lack of) correlation between average heart rate and average speed.

Is there an obvious conclusion to this story? Not really, but it was fun to look at the data in more detail.

Van stemmen naar zetels

Met de gemeenteraadsverkiezingen in aantocht komt de aloude vraag weer boven: “hoe wordt het aantal zetels ook alweer berekend?”. Dit is niet simpel afronden en er zijn subtiele verschillen tussen de verschillende soorten verkiezingen en hoeveel zetels er te verdelen zijn.

Voor alle soorten verkiezingen geldt dat het totaal aantal stemmen wordt gedeeld door de hoeveelheid zetels die er te verdelen zijn, dit is de kiesdeler. Vervolgens wordt het aantal stemmen dat elke lijst heeft gehaald gedeeld door de kiesdeler. Dit getal wordt naar beneden afgerond en is het aantal volle zetels dat een lijst krijgt. Omdat er naar beneden wordt afgerond zijn er altijd nog wat zetels over, de restzetels. Er zijn twee systemen om restzetels te verdelen, afhankelijk van het aantal zetels van de raad in kwestie. Bij 19 of meer zetels wordt het systeem van grootste gemiddelden gebruikt, anders het systeem van grootste overschotten.

De twee systemen worden hieronder verder uitgelegd. Uit gewoonte gebruik ik een punt als decimaalteken, niet een komma. 1.999 is dus bijna 2, niet bijna 2000. Ik zal proberen zoveel mogelijk te voorkomen dat hier verwarring over kan ontstaan.

Grootste gemiddelden

Als er 19 of meer zetels te verdelen zijn (zoals in het Europees Parlement, Eerste en Tweede Kamer, Provinciale Staten en de meeste Gemeenteraden) dan worden restzetels verdeeld met het systeem van grootste gemiddelden. Na het verdelen van de volle zetels (z) heeft elke partij een aantal stemmen per zetel (S/Z). Dan wordt voor elke partij wordt uitgerekend hoeveel stemmen per zetel ze zouden hebben als 1 extra zetel zouden krijgen (S/(Z+1)). Het aantal toegekende zetels plus de extra zetel is het aantal virtuele zetels. De partij met het hoogste gemiddelde krijgt de extra zetel. Als er meer restzetels te verdelen zijn dan wordt het aantal stemmen per zetel opnieuw uitgerekend, inclusief de eerder toegewezen restzetel(s).

Partij Stemmen Zetels s/z s/(z+1) Zetels % stemmen % zetels
A 101 9 11.22 10.1 10 84.2% 90.9%
B 19 1 19.00 9.5 1 15.8% 9.1%

Tabel 1: Rekenvoorbeeld van grootste gemiddelden

Tabel 1 geeft een rekenvoorbeeld. Partij A heeft 101 stemmen, partij B 19. Er zijn 11 zetels te verdelen. De kiesdeler is 120/11 = 10.91. Partij A komt in aanmerking voor 9 volle zetels, partij B voor 1 volle zetel. Het aantal stemmen per zetel (S/Z) voor partij B is veel hoger dan voor partij A. Voor de verdeling van de restzetel wordt echter gekeken naar het gemiddelde met een extra zetel, S/(Z+1). Dit is voor partij A hoger dan voor partij B en deze krijgt dan ook de restzetel toegewezen.

partij s z s/z s/(z+1) z s/(z+1) z s/(z+1) z s/(z+1) z s/(z+1) z s/(z+1) z s/(z+1) z s/(z+1) z r %s %z
VVD 2238351 31 72205 69948 32 67829 32 67829 32 67829 32 67829 33 65834 33 65834 33 65834 33 2 21.29 22.0
PvdA-GL 1559299 22 70877 67796 22 67796 22 67796 22 67796 22 67796 22 67796 23 64971 23 64971 23 1 14.83 15.3
PVV 1372941 19 72260 68647 19 68647 20 65378 20 65378 20 65378 20 65378 20 65378 20 65378 20 1 13.06 13.3
SP 955633 13 73510 68260 13 68260 13 68260 13 68260 14 63709 14 63709 14 63709 14 63709 14 1 9.09 9.3
CDA 1301796 18 72322 68516 18 68516 18 68516 19 65090 19 65090 19 65090 19 65090 19 65090 19 1 12.38 12.7
D66 1285819 18 71434 67675 18 67675 18 67675 18 67675 18 67675 18 67675 18 67675 19 64291 19 1 12.23 12.7
CU-SGP 575221 8 71903 63913 8 63913 8 63913 8 63913 8 63913 8 63913 8 63913 8 63913 8 0 5.47 5.3
PvdD 335214 4 83804 67043 4 67043 4 67043 4 67043 4 67043 4 67043 4 67043 4 67043 5 1 3.19 3.3
50+ 327131 4 81783 65426 4 65426 4 65426 4 65426 4 65426 4 65426 4 65426 4 65426 4 0 3.11 2.7
Denk 216147 3 72049 54037 3 54037 3 54037 3 54037 3 54037 3 54037 3 54037 3 54037 3 0 2.06 2.0
FvD 187162 2 93581 62387 2 62387 2 62387 2 62387 2 62387 2 62387 2 62387 2 62387 2 0 1.78 1.3

Tabel 2: De uitslagen van de Tweede Kamerverkiezingen 2017. Er zijn twee lijstverbindingen, tussen PvdA en GroenLinks en tussen ChristenUnie en SGP. De kiesdeler was 70107. Partijen die de kiesdeler niet haalden zijn weggelaten. 

Tabel 2 laat de situatie voor de Tweede Kamerverkiezingen 2017 zien. Het is een grote brij van cijfers omdat er meerdere rondes nodig waren voor het verdelen van restzetels. Aan de rechterzijde is de extra kolom R opgenomen, dit is het aantal restzetels dat een partij heeft gekregen.

Grootste overschotten

Als er minder dan 19 zetels te verdelen zijn (zoals bij sommige gemeenteraden) dan worden restzetels verdeeld door het systeem van grootste overschotten. Dit systeem wordt ook gebruikt voor de verdeling van zetels binnen lijstverbindingen (later meer daarover). Eerst wordt bepaald hoeveel volle zetels elke lijst krijgt. Vervolgens wordt het aantal zetels maal de kiesdeler afgetrokken van het aantal stemmen, dit zijn de overschotten. De partijen met de grootste overschotten krijgen de restzetels. Partijen moeten minimaal 75% van de kiesdeler hebben gehaald om in aanmerking te komen voor zo’n restzetel. Elke partij kan op deze manier 1 zetel toegewezen krijgen. Mochten er meer restzetels te vergeven zijn dan wordt daarvoor het systeem van grootste gemiddelden gebruikt. Dit kan gebeuren als er veel partijen zijn die de net niet genoeg stemmen halen voor een (rest)zetel.

Partij Stemmen Zetels Overschot Volgorde Zetels % stemmen % zetels
A 101 9 2.8 2 9 84.2% 81.8%
B 19 1 8.1 1 2 15.8% 18.2%

Tabel 3: Rekenvoorbeeld van grootste overschotten

Ook hier een voorbeeld. De uitgangssituatie in Tabel 3 is hetzelfde als in Tabel 1, maar nu wordt het grootste overschot gebruikt om de restzetel te verdelen. Deze is duidelijk hoger voor partij B, die nu de restzetel krijgt.

“Grootste gemiddelden” is nadeling voor partijen met weinig zetels

Het is duidelijk dat de twee rekenmethoden leiden tot verschillende resultaten. In de voorbeelden hierboven krijgt partij A 84% van de stemmen. Met “grootste gemiddelden” krijgen zij 91% van de zetels, met “grootste overschotten” 82% van de zetels. Dit is natuurlijk een voorbeeld met slechts 2 partijen. Bij de Tweede Kamerverkiezingen 2017 verschillen de percentages stemmen en zetels met minder dan 1%. Toch is het systeem van grootste gemiddelden voordelig voor grotere partijen. De 6 grootste lijsten hebben elk een restzetel gekregen (de VVD zelfs 2). Van de 5 kleinste lijsten heeft alleen de PvdD een restzetel gekregen.

De reden is dat gekeken wordt naar wat het aantal stemmen per zetels is als er een extra zetel wordt toegekend. Bij partijen met veel zetels is de relatieve toename van de extra zetel kleiner en daardoor is de daling van het aantal stemmen per zetel ook kleiner. Hieronder probeer ik dit te illusteren. Let’s get technical!

In plaats van over een concreet aantal stemmen (S) te praten gebruik ik het aantal kiesdelers dat een lijst haalt. Je kan het vermenigvuldigen met het aantal stemmen per kiesdeler om tot het aantal stemmen te komen. Omdat het aantal stemmen er toch wat natuurlijker uit ziet heb ik het wel in de figuren gezet, in italic, voor een kiesdeler van 1000.

In Figuur 1 staat de verdeling van het volle aantal zetels. Dit is duidelijk trapsgewijs: zowel een partij met 1x de kiesdeler of 1.9x de kiesdeler haalt slechts 1 zetel.

Figuur 1: De verdeling van volle zetels

In Figuur 2 staat het aantal kiesdelers per volle zetel. Dat getal is altijd gelijk aan of groter dan 1. De zaagtand komt doordat het aantal kiesdelers per volle zetel daalt als er een extra virtuele zetel wordt toegekend. Bij 1.99x de kiesdeler wordt 1 zetel toegekend. Het aantal kiesdelers per zetel is dan 1.99. Bij 2.00x kiesdeler worden 2 zetels toegekend. Daardoor daalt het aantal kiesdelers per zetel weer naar 1.00. Bij 2.99 keer de kiesdeler is het aantal kiesdelers per zetel 1.495 (2.99 kiesdelers/2 zetels). Bij 3.00x kiesdelers daalt het weer naar 1. Bij 9.99x kiesdeler is het aantal kiesdelers per zetel 1.11 (9.99 kiesdelers/9 zetels). Het is duidelijk dat het aantal kiesdelers per volle zetel heel sterk fluctueert voor lijsten met weinig kiesdelers (stemmen) en veel minder voor lijsten met veel kiesdelers.

Figuur 2: Het aantal kiesdelers per volle zetel

Om de restzetels toe te kennen worden er extra zetels toegekend. De echte zetels plus extra zetels heten virtuele zetels. Hiermee wordt het aantal kiesdelers per virtuele zetel uitgerekend. Figuur 3 laat dit zien voor 1, 2, 3 en 4 extra zetels.

Figuur 3: Het aantal kiesdelers per virtuele zetel. De verticale lijnen zijn het aantal kiesdelers die partijen C en D hebben gehaald, in het voorbeeld in de tekst. De grijze horizontale lijn is het aantal kiesdelers per virtuele zetels voor partij C met 1 extra zetel.

De restzetels worden één voor één toegekend. Eerst wordt bij elke partij 1 extra zetel opgeteld en het aantal kiesdelers per virtuele zetels berekend, dit is de blauwe lijn. Laten we als voorbeeld partijen C en D nemen. Partij C heeft 1.3x kiesdeler en heeft dus 2 virtuele zetels (1 echte en 1 extra) en komt op 0.65 kiesdelers/virtuele zetels (dit staat aangegeven met een horizontale grijze lijn in Figuur 3). Partij D met 6.1x de kiesdeler heeft (6+1=) 7 virtuele zetels en heeft heeft 0.87 kiesdelers per virtuele zetel (waar de vertical grijze lijn van D de blauwe lijn kruist). D heeft dus een hoger gemiddelde dan C (het is boven de horizontale grijze lijn) en de eerste restzetel wordt dus aan partij D worden toegekend.

Voor een tweede restzetel wordt voor partij D het aantal kiesdelers per virtuele zetel opnieuw berekend, nu voor (7+1=) 8 virtuele zetels (de oranje lijn). Voor partij C veranderd er niets en kijken we dus nog steeds naar de blauwe lijn. Partij D heeft in dit geval 0.76 kiesdelers per virtuele zetel, weer meer dan partij C. De tweede restzetel wordt dus ook aan partij D toegekend.

Voor een derde restzetel kunnen we deze exercitie herhalen. Partij D heeft met 3 extra zetels 0.68 kiesdelers per virtuele zetel (groene lijn) en de derde restzetel zal dus ook naar partij D gaan. Pas bij een vierde restzetel daalt het aantal kiesdelers per virtuele zetel voor partij D tot 0.61 (rode lijn) en zou de zetel dus aan partij C worden toegekend.

Uit Figuur 3 en het voorbeeld hierboven blijkt wel dat kleine partijen een nadeel hebben bij het verdelen van restzetels. Het is eigenlijk alleen mogelijk als ze bijna een extra zetel hadden gehaald. Hoe meer zetels een partij haalt, hoe minder het gemiddelde daalt als er extra zetels worden toegekend. Figuur 4 laat hetzelfde zien als Figuur 3, maar dan voor een groter aantal kiesdelers.

Figuur 4: Het aantal kiesdelers per virtuele zetel

In Figuren 3 en 4 gaan het over het aantal keer de kiesdeler en daar zit een maximum aan: het aantal zetels. Als er 19 zetels zijn dan kan een partij maximaal 19 keer de kiesdeler aan stemmen halen (als ze alle stemmen halen, in welk geval restzetels geen issue meer zijn). In de Tweede Kamer zijn er maximaal 150 kiesdelers te halen. Partijen kunnen dus 30, 40 of zelfs 50 keer de kiesdeler halen. Gemeenteraden hebben tussen de 9 en 45 zetels, afhankelijk van hoe groot de gemeente is. De sterke fluctuaties zijn de reden dat voor kleinere gemeenteraden (minder dan 19 zetels) een ander systeem wordt gebruikt. Toch zullen ook in grotere gemeenteraden de partijen relatief klein zijn.

Voor de volledigheid het systeem met grootste overschotten. Figuur 5 laat zien hoe de overschotten fluctueren voor het aantal kiesdelers. De toewijzing van restzetels is dus onafhankelijk van het aan kiesdelers dat behaald is.

Figuur 5: Overschot aan kiesdelers


Met een lijstverbinding konden twee of meer partijen hun lijsten samenvoegen en profiteren van het voordeel van het hebben van meer kiesdelers (stemmen), zoals hierboven besproken. De CU en SGP deden dit vaak, net als de PvdA, GroenLinks en SP (soms met z’n tweeën, soms met z’n drieën). Binnen een lijstverbinding worden de zetels dan verdeeld met een lijstkiesdeler en het systeem van grootste overschotten voor restzetels. Een belangrijke voorwaarde was dat partijen in een lijstverbinding individueel in ieder geval één zetel zouden moeten hebben gehaald. In 2017 zijn lijstverbindingen afgeschaft.

Verschillen tussen verkiezingen

Bij de Tweede Kamer en Europese verkiezingen komen alleen partijen die de kiesdrempel hebben gehaald in aanmerking voor restzetels. Bij verkiezingen voor gemeenteraden met minder dan 19 zetels komen alleen partijen die 75% of meer dan de kiesdeler hebben gehaald in aanmerking voor restzetels.