News & Events

A solution to the Covid-19 vaccine distribution problem


And the good news is: we don’t need 8000 planes to get the job done. At we have untangled the logistical nightmare of Covid-19 vaccine distribution and calculated a realistic, optimal transport schedule for Europe that delivers the vaccine to the risk group in 4 weeks, and achieves herd immunity in 16 weeks with only 6 planes.

While many institutes around the globe are working vigorously to produce a Covid-19 vaccine that will help us out of this cumbersome situation, the WHO has identified a second daunting challenge to be addressed before we can all go back to our normal, sane lives, and it is a problem of logistics.

Large number Logistics

Suppose namely that indeed we have found a proper vaccine. Such a vaccine will only be effective if a large fraction of the population receives it and herd immunity gets a chance. Therefore we’re presented with the challenge of delivering enormous volumes of vaccines from the factory to the people.

Focussing for a moment on Europe, it is clear that the numbers are enormous indeed: over 700 million people, spread out over 50 countries, would need a vaccine in a reasonable amount of time. This already monumental exercise in logistics is further complicated by the fact that vaccines need cooling, and can not be stored indefinitely. Also this project will have a hefty price tag, which we would like to minimize as much as possible.

From airline scheduling to vaccine delivery

A mathematician might recognize that this problem is one that belongs to the field of linear programming. This is a branch of mathematics that was developed during the Second World War to optimize the distribution of goods and armies (while maximizing the damage done to the opponent). Today, however, this branch has applications in a vast amount of fields.

At, we specialize in applying linear programming to optimize airplane routing and crew scheduling at scale. Our team of scientists uses contemporary mathematical methods to optimize an airliner’s full stack scheduling challenge, leading to serious cost reductions. Our models are highly realistic and implement all the regulations and constraints that airliners need to cope with today.

We realized that by tweaking some parameters in our model, we could use our know-how to address a logistic challenge exactly like vaccine distribution. We immediately started crunching the numbers and are proud to report that we have solved the vaccination distribution problem at the European level.

This model is not merely theoretical and takes real world, realistic data and parameters. It designates a large factory that produces the vaccines in India, but it is straightforward to adapt the model to pick another site or add factories. More generally, the model is modular: variables like the logistic cost and the factories’ capacities and locations or vaccination throughput can be tuned.

Worst-case scenario: the nationalistic approach

Before going into detail on our optimal solution, let’s first consider an approach that is logistically a really bad idea (but could unfortunately be politically viable).

In this logistical worst-case scenario, every European country would individually broker a deal with the pharmaceutical supplier and arrange for transport between the factory and their local hub. It is clear that this will lead to 1. sub-optimal wait times for the European population to be vaccinated, 2. sub-optimal overall costs and 3. a sub-optimal number of miles flown, and hence an unnecessary surplus of CO2 exhaust.

In fact, given the current estimates on the factory output, such an approach would lead to roughly triple the amount of flight hours compared to the model we computed at

From graphs to schedules

The first step in solving the vaccine delivery problem is the construction of graphs. A graph is an object made up of nodes (one node for every airport at a particular time instant) and edges connecting the nodes (where two nodes are connected if they allow for a flight between the respective airports and time instances). Every edge is then associated with a cost, and the total cost of the graph is the sum over all these edge-costs. The task is then to find the graph with the minimum associated cost.

To illustrate we draw two of the simplest graphs that describe weekend traffic between Schiphol Amsterdam (AMS) and Lisbon airport (LIS).

On the left we have the trivial graph that describes all planes staying on the ground. Each edge is accompanied by a cost, in this case the cost of parking an airplane at an airport for a day, and the total cost of the graph on the left is the sum over all such parking fees.

On the right there is the more interesting graph where on Friday there is an AMS-LIS and a LIS-AMS flight. They both stay grounded at 12:00, to return to their base at 14:00. Now, the cost of an edge connecting for example (AMS, Fri 10:00) and (LIS, Fri 12:00) is a function that depends on many variables, for instance on the price of fuel, the distance AMS-LIS and the weight of the cargo (vaccines, in our case), to name but a few.

From this cost we then subtract the benefits of that flight (passenger tickets, freight earnings etc.) and associate this net cost to the edge. If after summing the cost over all edges we end up with a better value, we prefer to fly using the graph with the lowest associated cost. In our case we’re dealing with cargo (vaccines) and are looking for the flight schedule that minimizes the cost of distribution.

Edges: lots, and lots of edges

In this simple Amsterdam-Lisbon example we can draw a total of 12 edges (the edges representing the relevant variables to minimize against) and this means a linear programming problem with 12 variables (although constraints do restrict some variables).

For the realistic scenario of ~50 airports (the approximate number of countries in Europe) and a periodic 7-day schedule, this number grows into the order of a million variables.

At, we specialize in solving linear programming problems at this scale. There are many products out there, both publicly and commercially available, that specialize in solving linear programs, but they all fall short at these gigantic numbers. Our team of scientists and developers does succeed to scale up such programs with the aid of proprietary algorithms, smart parallelization techniques, and “Storm”, our in-house hulk computer.

Adding vaccines to the mix

To enhance our models to include vaccine transport, all we had to do was overlay another set of edges over our existing model. These new edges are associated with the transport costs and constraints of the vaccine. While this new network is indeed even larger, we noticed that it is still within our computational capacity.

After crunching the numbers and feeding our model to “Storm”, we were able to compute a realistic distribution schedule. A graphical representation of the outcome is pictured below.

Results and comparison with the worst case

The key takeaway points from our result are:

  • The risk group gets the vaccine in 4 weeks
  • Herd immunity (80% of the population) is achieved in 16 weeks
  • A total of 6 Boeing 747/777 Cargo planes suffices!
  • The scheduling network forms particular local distribution hubs (Brussels and Frankfurt) that act as gateways from India to the rest of Europe.

What we observe is that, in contrast to the worst case scenario described above, in our model flights are “pooled”. For example, one manoeuvre is to first fly from India to Frankfurt. From there, the flight starts its European tour, say, to Riga and then to Brussels, to then — having no vaccines left on board — fly back to India for a new batch (such an empty flight is represented by a red line).

A graph of the flights carrying vaccines. Light green means a full plane, and darker green means less vaccines are on board. Red means empty.

Airports as vaccination lanes

Another key realization from our distribution network is that airports make ideal vaccination lanes:

  • Airports are accessible
  • Airports are designed to handle large volumes of people and cargo safely
  • Our model delivers a “just-in-time” solution, where the vaccine can be continuously delivered. When airports are the final hub of the network, the vaccine doesn’t need more transport (and cooling!)

A complicating factor in vaccine distribution is the cooling of the vaccine. When we put the vaccination lanes at the airport, and optimize the distribution network such that we can deliver a continuous flow of vaccines, this problem is partially taken care of. Also, an airport has other relevant features like proper security and space.

An extra benefit of this set-up is that it heavily involves the airline industry, an industry that is struggling more than any other.

Personnel of the ailing airports and airline industries can get engaged in this process, possibly with the aid of the event industry — an equally impacted industry. This way multiple branches that are critically hurt by the Covid-19 outbreak can join forces and together streamline the delivery of a vaccine.


At we have been able to transform our mathematical models which we use to create airline schedules to a system that solves the vaccine distribution problem at the European level. With airports acting as vaccination lanes, this furthermore addresses the problem of cooling, storage and security. By engaging other disrupted branches such as the event industry, this makes for an opportunity to move forward together, back towards a normal, healthy society.