Remember the goal of the Data Donation Project? When we conceived and launched the project about three months ago we thought that we could use the daily donations of resting heart rate and daily step count to detect the onset of fever in donors which in turn would help us quantify changes in the dynamics of the COVID-19 pandemic because fever is a symptom of the infection. Details of the underlying scientific idea were discussed in the blog post How does it work?.

Although the task is straightfoward conceptually, the devil is in the detail. We had to perform a whole series of performance tests, check the algorithms, optimize parameters of the detection, deal with gaps in the data, make sure confounding factors, like climate, weather, holidays, and weekly modulations of the donors’ vital signals, geographic variation, etc. wouldn’t skew the results. Many of the necessary analyses were discussed in previous posts and lead to interesting scientific findings that were initially outside of the scope and intention of the project.

Well, today we share with you the first solid results concerning the detection of fever in Germany based on the Corona Data Donation Project.

We computed the first fever curve. The results below are still preliminary and they may change in the future as we optimize the detection algorithm. But it’s safe to say now, we believe, that we are “seeing a signal”. This whole thing seems to be working.

What signals are we looking for?

Let’s recap what we are after: Many donors have donated long stretches of daily resting heart rate and daily step count data by now. For every donor we would like to detect deviations from their normal values. For example a sudden increase of resting heart rate and persistence over a few days could be a fever symptom. So first we need to determine the “normal” values, the so called baseline. In order to get a viable baseline we need quite a number of days of data because naturally all vital signals are fluctuating.

Ordinary baseline behavior

Resting heart rate and daily steps without any unusual patterns: This donor has a typical resting heart rate and step count. Both time-series fluctuate a bit, but there are no systematic, unusual deviations.

The plot above illustrate the time course of resting heart rate (RHR) and daily steps for a donor that does not exhibit any unusual deviations from the baseline values. Over the entire observation period, the curves are, apart from small, irregular fluctuations, flat. Note that the RHR fluctuates less. Step counts are modulated more strongly. This is why we had to look into these quantities and the expected variation in detail in the preliminary analysis, discussed in blog post: The Pulse of the Nation and Step by Step.

Probably not the right signal

Compare this now to a donor who does exhibit unusual deviations shown in the plot below.

Resting heart rate and daily steps with a bump: This donor has a typical resting heart rate and step count. At the end of the observation period, we see a strong and systematic increase in both signals that evolve in parallel. This is probably not a donor with fever symptoms. More likely: A person that started an unsual activity, e.g. a hiking or bike trip or related holiday activity.

This person has a typical RHR of around 55 beats per minute and typical daily step count of around 5000 steps per day. At the end of the observation period there’s a sudden increase in RHR to a value significantly higher than the baseline. Remember that these numbers are daily averages. Could this be an indication of fever? Probably not, because the increased RHR is accompanied by a rise in daily steps. So potentially this is a person that went on holiday or does sports for a period of time. People that have a fever potentially are more likely to also have a reduced step count, and not a significant increase.


Now have a look at the time series of the two donors below. Both exhibit a clear and well defined deviation in resting heart rate, the “fever bumb” that persists a number of days. At the same time the daily step count decreases over the same period. This period also lasts a significant number of days. So the hypothesis is that these may be candidates for “sick and in bed with fever”.

Resting heart rate and daily steps with a plausible signal: This donor has a typical resting heart rate of around 65 beats per minute and typical daily step count of around 10.000. At the end of the observation period, RHR increases, peaks, and decreases again over a period of a few days. Simultaneously, the steps decrease systematically to around 4000 steps over that period. Note that this user also has a data gap for a period in mid May.
Resting heart rate and daily steps with a plausible signal: This donor has a typical resting heart rate of around 73 beats per minute and typical daily step count around 3500. Heart rate bump and step count dip coincide.

Of course there could be different explanations for this behavior and detections like these are not reliable on an individual basis. There can be false positive and false negativ detections.

But, if we aggregate detections like the ones above for the entire populations and count detections on every day, we may well see a systematic change in the number of detections, which, on a population level, could be proportional to the number of people having a fever at a given point in time.

How does detection work?

Now, obviously, we cannot look at all the hundreds of thousands of signals individually and eye inspect them. So we need to apply an algorithm that automatically flags those that exhibit peaks like the ones displayed above. These automatic detection algorithms are based on statistical methods that quantify systematic deviations from the baseline (The curves you see above were in fact identified this way). Now, there are various ways of doing this, all of which differ in detail and all of them try to minimize the number of false positives and negatives. Some include dynamic aspects, others do not. Because we do not know yet which algorithm works best, we try different ones and always compare the results to each other. If they produce similar results, especially similar “fever curves”, it’s an indication that we are on the right track.

Detecting signals using heart rate signals

If we apply the detection algorithm to the heart rate signal alone and compute the alleged “fever detections” every day and for every donor with sufficiently long data streams, we get the result displayed in the figure below. This is the first shot at the fever curve!

The national fever curve based on unusual heart rate detections: For each day we computed the number of detections based on donors that show a significant bump in heart rate. We used two stastistical algorithms to detect these anomalies automatically. One is based on the z-score of the heart rate and the other on inter-quartile ranges. We will explain these algorithms in more detail in another blog post. Both curves exhibit an initial decrease in positive detections, a plateau in the center of the observation period and an increase in mid June.

You can see two different curves in the figure, each corresponding to different methods for detecting fever in the heart rate signal of every donor that contributed data on almost every day in the two month observation period (April, 23rd - June 23rd). First, both curves look similar in shape, but are slightly shifted. One algorithm seems to be picking up more false positive detections. We can also see that both curves show a trend, an initial decrease in the beginning, potentially coinciding with the observed decrease in either COVID-19 or other respiratory diseases, influenza like illnesses or other ailements that produce fever. At the end we see a steep increase in the amount of detections. We can also see interesting modulations of “ups” and “downs” in the center of the obervation periods. We don’t know yet where these are coming from.

Concerning the increase in cases in mid to late June, should we be worried that this is a signal of a second wave of COVID-19 or in general an increase in infections due to the release of the lockdown? Maybe. Remember that we are only looking at heart rate at the moment, so in fact the increase in detections could be due to more and more donors going on vacation and generating unsual combinations of heart rate because they do more sports, for example.

Including the daily step signals

In order to rule out the impact of an increasing count caused by an increasing population wide physical activity (vacation, summer, etc.) we performed the detection again but this time a positive signal is only counted if an unusually high increase in heart rate is accompanied by a a persistent decrease in step count. The results are shown below.

The national fever curve based on heart rate anomalies in combination with daily step count: For each day we computed the number of detections based on donors that show a significant bump in heart rate plus a simultaneous decrease in daily step count. This more restrictive flag filter, reduces the number of detections compared to the previous method, the results of which are shown in grey for comparison. The rise at the end of the observation period is present but not as steep.

Because this is a more restrictive method, we detect less cases. So much is obvious. We also see that the increase in detections at the end of the observation period is lowered substantially. However, the increasing trend ist still observed. We interpret this as a systematic increase in the number of donors with fever at the end of June.

This is not surprising. This may or may not have anything to do with new COVID-19 infections. Remember that the method measures fever. Obviously the release of the lockdown yields more infections but also of all other similarly transmitted infectious diseases. So we expect this to be potentially a proxy for measuring other types of infections.

Comparison to other data sources

In order to check the validity of the approach we compared the alleged fever curves as computed from the Corona Data Donation Project to other sources of data. We used two datasets of relevance here: 1.) The number of confirmed cases of COVID-19 in Germany and incidence of acute respiratory diseases in Germany as monitored in the GrippeWeb Project, an RKI citizen science surveillance systems for estimating the cases of respiratory diseases and influenza like illnesses in Germany.

Weekly Detections compared to other data sources: This figure compares the predicted fever curves (aggregated by week) to the COVID-19 case counts and also the weekly incidence of acute respiratory diseases as monitored by the GrippeWeb system.

The figure above compares weekly aggregates of incidence of acute respiratory disease in Germany, the COVID-19 case count and our detection curve. This comparison is quite promising. For example, the rise in respiratory disease as measured by Grippeweb coincides with out predictions and the overall shape of the curves appear to be similar.

We will have to monitor these data sources longer but for now the agreement is more of a confirmation of the approach than the opposite. So we are optimistic that we are on the right track.

What’s next?

The nexts steps on our to-do-list are:

  1. Refining and testing the detection algorithm. We plan to incorporate techniques borrowed from dynamical systems theory and pattern recognition. Potentially we can differentiate individual fever curves better.
  2. We will also perform the same analysis on the level of federal states, so we can see if each state exhibits the same universal trend, or if the trend on the national level is driven by selected states.
  3. We will also try to use the method and correlation analysis to see if we can pick up signals of local COVID-19 outbreaks.
Annika Rose
Annika Rose
PhD Student
Dirk Brockmann
Dirk Brockmann

Head of Research on Complex Systems Group