“People flow analysis in a vaccination center”

TechLabs Ruhr
8 min readNov 30, 2021


Time is important for everybody, so our goal was to lower the time you spend on the vaccination center and increase the number of people who get vaccinated by finding weak points in the process.

This project was carried out as part of the TechLabs “Digital Shaper Program” in Dortmund (summer term 2021).

In a nutshell:

Last year (2020) is remembered as the year of the Covid 19 pandemic with all its effects on our social life and behavior, as well as our economy. But luckily, in 2021, suitable vaccines have been developed, which have been administered to patients, e.g., by vaccination centers. The demand for the vaccines was high, and therefore, also high waiting times arose in the vaccination centers.

MotionMiners Gmbh wanted to know more about the flow of the vaccinations in vaccination centers and has collected the following data in one specific center. The data contains signal values to be able to recreate the walking paths of each inoculated patient. The project idea is to analyze the structure in the vaccination center with the recorded data in terms of vaccination duration and to find possible weak points.


The idea of the project “people flow analysis in a vaccination centerwas to indicate weak points in the vaccination center depending on lead times. To achieve this goal, we work with the company MotionMiners together. MotionMiners GmbH has collected the data in relevant areas of the center such as the entrance, doctor table, or waiting rooms with radio transmitters.

For this purpose, people were equipped with a tracer, which they received at the entrance if they wanted to volunteer. It should be noted that no personal data was collected here. At the exit, tracers were collected, lanyards exchanged, and cases disinfected.

After the data was collected, our task was to process the data. The key in the project was to detect how long a patient needs for a vaccination.

With the results we get, we would be able to make a vaccination center more efficient. So, for a later case that we don’t hope for, we are prepared with the results to get more people vaccinated at the same time so that the pandemic would be finished faster.

Also, we want to achieve an improved structure of the vaccination center so that it reduces waiting times and faster turnaround times.

To pursue the idea further, the data are first subjected to pre-processing and cleaning. This is followed by an analysis of key figures (flow and residence times) based on the data. Finally, a visualization of the results should be presented in a small “demo dashboard”.

There were several issues with the data that needed to be considered. Since the tracers did not record all times, they would have to be checked to see if there were any gaps and then remove them. When determining the location of the person in the vaccination center, it has to be considered that sometimes the signal was disrupted. Also, it would need to be checked if there are any outliers. Furthermore, some tracers have been used for the first vaccination, others for the second vaccination, so it has to be identified which tracer was used for which group.

We want to make a statement about the duration of vaccination as well as suggestions for

improvement in order to reduce the processing times. For this purpose, we want to achieve the following goals: Data cleaning, data preparation, analysis, and visualization of the results.

The raw data was first extracted and converted. Then the data was cleaned, and a multiple index for the data was created. Subsequently, filtering of the number of people and their times spent in different regions in the tracer data took place.

After having set up all these steps, the analysis was performed for the data set of each tracer. The most important key facts were visualized in a dashboard.


Our group consists of four people. Three people chose the Data Science track with a focus on Python and the other person the Al track. It was very helpful for the project that we all took the Data Science with Python track; also, the one person who chose the AI track had already taken the Data Science with Python track the year before. The communication was mainly online via social messengers and zoom.

We first tried to use Google Drive to share and work on our code together. However, we quickly switched to GitHub and managed our tasks in a GitHub repository so that every team member was up to date with the current progress. After defining the goals and scope of our project on a whiteboard in Miro, we divided our team into two groups to achieve the goals. The groups were not fixed but rotated every week so that everyone could do what they felt like doing.

Since we had already given the data, we could start directly with the data cleaning and pre-processing. To be able to clean the data, we first arranged and extracted the data. For that, we wrote a code in Visual Studio Code. We had also been given a map of the vaccination center, which was divided into different regions (Figure 1: vaccination structure and measurement regions).

Figure 1: vaccination structure and measurement regions

So, the next step was to connect each beacon to the corresponding region where it was located. We did this with the help of a dictionary. So, then we could integrate a multi-column index to the data frame (Figure 2: Extract and a multi-index a tracerdataframe).

Figure 2: Extract and a multi index a tracerdataframe

We needed this so that we were able to analyze each individual region in the center. After that, we could start our analysis of the data. For those tasks, we used the knowledge we learned in the courses of the DataCamp but the most things we have taught ourselves from the Internet.

To visualize our data and present our key facts, we create a dashboard.


With our result, we can say that in the next pandemic, more doctors have to be in the vaccination center to speed up the vaccination. It can be one way to improve.

Another and more confident solution would be to separate the regional doctor table. The idea is that people get the information about the vaccination in the form of a document. The document should be accessible to everyone and provide information about risks and side effects. When vaccinating, the patient would have to sign the document and bring it with him/her so that he/she would be informed in advance and would not have to go to the doctor. This step would shorten the vaccination time for a patient.

With our analysis, we managed to get a better overview of the people in vaccination centers.

On average, a person spends about 31 minutes in the vaccination center. During the morning, late afternoon, and evening the vaccination center was much more crowded than during noon or early afternoon. After the time spent in the waiting rooms, the doctor’s table was the most time-consuming part of a vaccination.

The analysis over the daytime hours showed us the following results. The time on average you spent on the vaccination is higher from noon until early afternoon. For example, between 2 p.m. and 3 p.m., an individual needed about 46 minutes for a vaccination. In contrast, in the evening between 18 p.m. and 19 p.m., a person spent 51 % less time in the vaccination center (22 minutes). If you are an early bird and get your shot before 8 a.m., it will take 37 minutes. The line chart of the analysis over all time sections has a shifted sinusoidal characteristic with the maximum at 2 p.m. till 3 p.m. (Figure 3: Time per person over daytime hours)

Figure 3: Time per person over daytime hours

When we took a deeper look into the times, the time a person spends waiting for a vacant doctor’s table takes about 6 minutes. It is the second-highest amount of time during the whole vaccination process. The highest is the consultation in the doctor’s cabin. There it takes 8 minutes. So, to conclude, we can say the bottleneck of the system are the doctor tables.

We also made a distinction between the first and second vaccination. We found out that the second vaccinations took less time at the doctor’s table because they were already informed during the first vaccination. The time at the doctor’s table for the second vaccination was 5 minutes on average, while the time for the first vaccination was 9 minutes. The waiting time before the doctor’s table was about 6 minutes for both.

To get a better understanding of the times, a table with the most important information is included (Table 1: time measurement).

Table 1: time measurement

You can see that the difference between the first and second vaccination is not noticeable, except as already mentioned for the doctor table. Furthermore, it can be seen that there is a strong scattering in Waiting Room III. The recommended 15 min waiting time after vaccination does not have to be observed so that each person can decide freely. In this case, waiting room III is not considered as a description value.

The most important impact of the vaccination centers are the doctors. They are the only people who are allowed to counsel and enlighten the patients about the vaccination. Like in usual practice, the doctors are limited, and you have to wait. The analysis of the vaccination center shows us similar results.

One of the next steps would be to extract and change data frame signals into meter values and plot the paths for each patient.

According to MotionMiners GmbH, the following points could still be considered as further steps. They suggest optimizations in the process based on your results, simulation/prediction of optimizations, subsequent visualization of the results. One topic which would also be interesting is the analysis of the used capacity of the vaccination center. Since every main area in the vaccination center was equipped with beacons, we could figure out how many doctors’ tables were in use during each time section. Moreover, we would like to improve our dashboard and make it more interactive by adding widgets.

A long-term goal could be to collect data for the whole week. This would allow statements to be made about peak times and thus better position oneself in the vaccination centers. A result could lead to a dynamic staffing plan for a vaccination center that would be well adapted to the patient.

GitHub repository:

Team Members:

Data Science (Python):

Artificial Intelligence and Data Science (Python):

Team Mentors:

  • Rene Grzeszick, Project Manager MotionMiners GmbH
  • Florian Zimmer, Project Manager TechLabs
  • Johannes Heck, Data Science Mentor


This project was carried out as an unpaid cooperation with the company MotionMiners GmbH. This consisted of the support of the techies in terms of technical and thematic aspects.