The source code is open and can be found here.
The data used for the monitor comes from official sources in Germany. Data relating to intensive care units comes from the "DIVI-Intensivregister" (www.intensivregister.de). All other data comes from the "Robert-Koch-Institut" (www.rki.de). The information is supplemented in part by our own calculations, such as moving 7-day averages and the like. These are discussed in more detail in the lists below.
"The Robert Koch Institute continuously records the current COVID-19 situation, assesses all information and estimates the risk for the population in Germany. In addition, the RKI provides comprehensive recommendations for the expert public and gives an overview of its own research projects." (www.rki.de)
"The Robert Koch Institute (RKI) is a German federal government agency and research institute responsible for disease control and prevention. It is located in Berlin and Wernigerode. As an upper federal agency, it is subordinate to the Federal Ministry of Health." - Wikipedia
In the course of the COVID-19 pandemic, the RKI provides daily reporting of newly reported cases and deaths related to COVID-19. This includes statistics about:
- age distribution
- percentage of people hospitalized
- percentage of people with or without symptoms
- the number of performed and positive tests each week
- calculations of R values and of 7-day incidences
The RKI offers an API where data can be obtained. This includes daily cases and deaths as well as past cases and deaths. Based on this data, further statistical values can be derived.
Additionally, the RKI provides files on their homepage on COVID-19 in the section, "Data for download". They contain aggregated information and information that cannot be queried by the API. This includes clinical aspects, or the number of weekly PCR tests performed. The homepage also answers frequently asked questions related to COVID-19.
Prior to the COVID-19 pandemic, there was no nationwide record of the state of intensive care units (ICU). This task has been taken on by the "DIVI Intensivregister". The Intensive Care Register was established in March 2020. It records the free and occupied treatment capacities for intensive care units in about 1,300 hospitals in Germany, including intensive care patients with a positive COVID-19 test. The "DIVI-Intensivregister" provides daily data for download.
The table below shows all data used in the plots ordered by tabs.
Plot data | Description |
---|---|
reported cases of last day | Every day, the RKI presents the newly reported case numbers. However, some health offices do not report any figures to the RKI on the weekend. In addition, less testing is done on the weekend which is then made up for during the week. This results in strong fluctuations in the reported case numbers. As a consequence, comparisons between days are not meaningful and trends are hardly discernible. To enable trend analysis we calculated a smoothed curve using a 7-day moving average. The smoothed value for a day is the average of its ±3 days. This value smooths over week days and weekends, which compensates for fluctuations caused by the reporting delay on weekends. This results in more realistic and comparable reported cases. |
reported deaths of last day | The daily reported deaths by the RKI are also subject to strong fluctuations. Taking a look at the time series, the fluctuations are even greater than the ones for the reported cases. They can be either greatly underestimated or greatly overestimated. As a consequence, comparisons between days are not meaningful and trends are hardly discernible. In order to be able to achieve better comparability and to enable trend analysis for the deaths, smoothing over the 7-day moving average was done. |
R value of last day | The reproduction number R describes how many people an infected person infects on average. This makes it possible to calculate whether there is an increase or decrease in the incidence of infection. The RKI reports a 4-day R-value and a 7-day R-value. Both values are calculated using the so-called Nowcast RKI. The Nowcast RKI calculates the number of illnesses per day for people with a positive COVID-19-PCR test. In doing so, an attempt is made to calculate the time of illness and thus to adjust for reporting delays, among other things. However, if one looks at the temporal course of the Nowcast RKI, it is noticeable that the fluctuations are smaller, but nevertheless present. This is due to the fact that the onset of the disease is only known for a certain proportion of the reported cases, and the date when the case became known to the health authority is used as an alternative. As a result, the nowcast is also subject to a certain weekend-related fluctuation. For the reproduction figures of the RKI, the last 4 days are not used, because the reproduction figures are based on the estimate of the start of the disease (nowcast). This leads to the fact that the figures of the estimates are still imprecise. In the calculation of the 4-day R-value, the RKI uses a specific time interval, the so-called generation time (time window). With that the last three days are ignored, but the four days before the three days (1. generation time) are set into relation to the four days before the first seven days (2. generation time). For an R value of the 17th, the 16th to the 14th are ignored. The 13th to the 10th are summed up and divided by the sum from the 9th to the 6th. If one time window may include weekends (e.g. from Saturday to Tuesday), it includes days when reported numbers are lower. If a time window is mainly on weekdays (e.g. from Wednesday to Saturday), reported numbers are higher. Therefore, the RKI 4-day R-value fluctuates as the weekend has a stronger influence here. This makes trend analysis inaccurate. To counter that effect, the RKI has established the more stable 7-day R value. It increases time windows (generation time) to 7 days. This results in a more stable value, but the view is automatically directed further into the past. In order to keep a focus on the present values while getting stable results, we calculated a separate value. It uses the 7-day moving averages to balance fluctuations. The sum of the 7-day averages of the last 4 days is put into relation with the buzzer of the 7-day averages of the 4 days before. Finally, one can calculate an R-value based on the new admissions to the intensive care unit (ICU). However, the reporting behavior of hospitals with respect to the situation in intensive care units is subject to even greater fluctuations. Especially when the numbers are low, the values can fluctuate widely. |
figures of last 7 days | The RKI reports cases of the last 7 days per 100,000 inhabitants, known as the 7-day incidence. In doing so, they look at cases by reporting date. The reported cases for a day contain a substantial amount of subsequent reports from the previous days. Consequently, not all cases are known on the reporting date. This leads to values that is calculated somewhat too low. A more accurate value can be obtained by simply calculating the reported cases of the last 7 days and applying them to the 100,000 inhabitants rather than the reporting date. It should be noted that the testing strategy has an influence on the number of reported cases and thus on the 7-day incidence. Testing more people, reduces the dark figure, but makes comparability between periods (e.g. waves) more difficult. For example, extending the testing strategy to asymptomatic people or to included all hospitalized people. |
new reported deaths by reporting date (start of illness, alternatively reporting date) | This graph visualizes the date of illness for deceased people reported for the current day. If the starting date of the illness is not known, the reporting date of a Covid case to the health department is used. |
delay in reporting between public health departments and the RKI | This graph visualizes the reporting date of new cases between health departments and the RKI for the current day. This shows the reporting delay between the health departments and the RKI. |
Plot data | Description |
---|---|
cases reported by RKI | The RKI reports the new cases on a daily basis. The data presented here is as of 0 o'clock of the current day. These are cases that were transmitted by the health authorities to the RKI the previous day. Therefore, the date was moved forward by one day accordingly. For the sake of completeness, the date when the figures were reported by the RKI is also included. As described in the "daily overview" section on COVID-19 cases, daily reported cases are subject to large weekend-related fluctuations. This means deriving trends is hardly possible. To enable meaningful trend analyses, a 7-day moving average was calculated and visualized. The RKI tries to calculate the onset of illness for the reported cases by the so-called nowcast. However, since the onset of illness is only known for some of the cases, the reporting date is used as a substitute. This value is also subject to weekend-related fluctuations. Here, too, a 7-day moving average was calculated to make a trend more visible. Based on the calculated onset of illness, the onset of infection of the reported cases can be estimated. According to the RKI, the average incubation period is 5-6 days. Therefore, the curve is shifted by 5 days forward. |
total reported cases by reference date (start of illness, alternatively reporting date) | The RKI provides the reference date for each case. If an onset of illness has been reported, it becomes the reference date. If the onset of the disease has not been reported, the reference date is the reporting date to the health authority. |
deaths reported by RKI | The RKI reports new deaths on a daily basis. The data presented here is as of 0 o'clock of the current day. These are the deaths that were transmitted to the RKI by the health offices the day before. Therefore, the date was brought forward by one day accordingly. For the sake of completeness, the date when the figures were reported by the RKI is also included. New daily reported deaths are subject to even greater fluctuations than the number of daily reported cases. This makes it difficult to identify trends. By calculating the 7-day moving average, the daily situation can be represented much better and thus a trend can be made visible. The case numbers are further visualized according to the onset of illness. For a large part of the deaths, the onset of disease is not known. In that case, the date of the original case (not death) according to health offices is used. Here too, a 7-day moving average is calculated, to smooth strong fluctuations caused by the delay in the reporting date. It is important to note that the actual onset of the disease is usually before the reporting date. Therefore, the actual curve progression should lie somewhat further in advance than the visualization can show. |
total reported deaths by reference date (start of illness, alternatively reporting date) | The RKI provides the reference date for each case. If an onset of illness has been reported, it becomes the reference date. If the onset of the disease has not been reported, the reference date is the reporting date to the health authority. For deaths, the reference date is not the reporting date, but the illness’ reported onset. |
R value and daily proportional change | The reproduction number R describes how many people an infected person infects with on average. This makes it possible to calculate whether there is an increase or decrease in the incidence of infections. Further information on the calculation can be found in the section "Daily overview - R-value” and "Nowcast". Since the increase in infection incidence is of interest, the 7-day R value was shifted forward by the mean incubation period of 5 days. This way, it is possible to estimate at which points in time the incidence of infection increased or decreased. It is important to note that the testing strategy may also have an impact on the R-value. This includes the number of tests of asymptomatic cases, testing of some or all hospital admissions, etc.. |
7 day incidence | In this plot, the 7-day incidence is shown. First by using the number of reported cases per 100,000 inhabitants and second by using the 7-day moving average. This provides a smoothed curve. We also calculated the number of reported deaths per 1,000,000 inhabitants within the last 7 days. Again, an additional calculation was made using the 7-day moving means to calculate a smoothed curve. |
number of PCR tests | Each Wednesday, the RKI publishes the number of PCR tests that were performed in the previous week. They also indicate how many of these tests were positive. Based on this we calculate the number of PCR tests that were negative, and we calculate the ratio of positive PCR tests to negative PCR tests. |
clinical aspects | Each Tuesday, the RKI publishes more detailed information on clinical aspects, e.g., the proportion of individuals with no symptoms or no symptoms significant for COVID-19, the proportion of reported cases that were hospitalized over time, or even the proportion who died. These values only refer to the reported cases and thus to the bright field. Since there are also unreported cases ("dark field"), the actual values for hospitalizations and proportion of deceased are normally lower than the values visualized here. It is important to note that the values shown may still change for the last few weeks. Cases reported now may die in the future and the value will therefore rise retrospectively. |
distribution of inhabitants and deaths | This plot visualizes how many people died by age group. The data is retrieved using the RKI API. For a better comparision, the number of inhabitants per age group in Germany (as of 31.12.2019) is visualized, too. |
distribution of reported cases and deaths in relation to inhabitants | This plot picks up on the "distribution of inhabitants and deaths" plot. It visualizes how many people died by or tested positive for COVID-19 per 100,000 inhabitants and age group. It is important to note that a higher number of positive tested people in the oldest age group does not necessarily mean that there were also relatively more in this age group. This may also be related to the testing strategy, if all hospitalized people are tested or if there is an increased number of persons in nursing homes. As a result, these groups of people are tested more, which leads to a stronger brightening of the dark field. |
Plot data | Description |
---|---|
number of reporting areas | The "DIVI-Intensivregister" was launched in the wake of the COVID-19 pandemic in March 2020 and built up from there. The number of hospitals reporting their situation of intensive care units to the registry increased over time. Therefore, the figures at the beginning of the pandemic need to be taken with a grain of salt, since the registry did not cover all ICUs at that time. This plot shows how many areas have reported their figures to the "DIVI-Intensivregister" at each day. |
new admissions of COVID-19 patients to intensive care unit since day before | In this plot, daily ICU admissions with positive COVID-19 test are visualized. The new admissions are calculated using the change of ICU beds occupied by patients with a positive COVID-19 test to the day before. It then adds the completed treatments of patients with positive COVID-19 test reported for that day. Example: 1,300 occupied beds today – 1,000 occupied beds yesterday + 200 completed treatments today = 230 new admissions. Obviously, the inconsistent reporting behavior of the individual areas leads to strong fluctuations in the figures. In order to provide a more realistic view on the actual situation and to better visualize a trend, a 7-day moving mean was calculated. Note that there were outliers or no reported values on some days. For this time the 7 day data is not complete and the calculation of the 7-day moving average was not done. Therefore, the graph shows a gap for this time. |
change from previous day of intensive care beds occupied by COVID-19 patients | This plot indicates how the number of ICU patients with positive COVID-19 tests changed on a daily basis. Again, the reported numbers are subject to greater variation. For smoothing and better trend analysis, a 7-day moving average was also calculated and visualized here. |
proportion of COVID-19 patients receiving intensive care and ventilation | This plot visualizes how many of the ICU patients with a positive COVID-19 test require invasive ventilation and the number of people that require non-invasive ventilation. In addition, these two values were put into relation and visualized as well. |
intensive care beds occupied with and without COVID-19 patients | This plot shows the numbers of intensive care patients with a positive COVID-19 test, intensive care patients without a COVID-19 test, free intensive care beds and the emergency reserve. In addition, the number of daily available intensive care beds with and without emergency reserve are calculated. Further, the daily total number of available intensive care beds. More intensive care beds are occupied during the week than on weekends, resulting in a ripple effect. A 7-day moving average was calculated to improve comparability of the daily values. |
intensive care beds proportional figures | This plot picks up on the plot "ICU beds occupied with and without COVID-19 patients". Some relations are calculated and visualized as follows. The aim is to show what percentage of intensive care beds are occupied by patients with a positive COVID-19 test. |