Featured Posts
Recent Posts
Search By Tags
No tags yet.
Follow Us
  • Facebook Basic Square
  • Twitter Basic Square
  • Google+ Basic Square

On the impact of Contact Tracing for virus containment

In my last post, I have tried to fairly weight the role of information and communication technology (ICT) in the spread of the Covid-19, highlighting what is controversial with recent attempts of exploiting deep learning for sensitive diagnosis tasks. Here, on the other hand, I will show how ICT can help us fight the coronavirus on another ground: contact tracing.

What is contact tracing? If you need a quick introduction watch this comic from Nick Case: [English | Italian]

Several governments are now discussing the introduction of a so-called contact tracing App to reduce the spread of the Covid-19 disease, following the footsteps of a few early adopter states. The concept is simple: use a smartphone App to keep record of contacts with people met in the last days, so that they can be alarmed if you happen to be positive to the virus.

Suggested strategies can differ and none is yet winning. However, the use of GPS seems to be currently avoided by most governments, in favor of protocols based on the transmission and book-keeping of Bluetooth hash codes. The latter, combined with distributed strategies, secure communication protocols and open-source audit of the code, allows safety and preserves privacy. The DP-3T initiative, e.g., has been taken as reference by Google and Apple for implementation on their smartphones (with some differences, however). The TCN coalition developed an alternative open solution.

Several protocols exist, thus, and tens of implementations are already under development or readily available. Many countries are trying to find an effective solution that can meet the citizens' acceptance. Indeed, it is hard to enforce contact tracing due to technical issues and privacy concerns. These are discussed daily on the Internet, but how effective contact tracing can be? Good or Bad? I will show the results of a few experiments I have conducted on my own.

Before moving on to take a look at my own experiments, I want to state that these are only for illustrative purposes and they do not represent an attempt to forecast or suggest guidelines. A necessary read, for those who are interested, is the scientific paper from Ferretti et al. appeared on Science in March 2020.

Now, let us see how contact tracing works in a simulated scenario.


The effect of contact tracing can be discussed theoretically and some mathematical models can be derived as done in the paper by Ferretti et al. But I wanted to build up an experiment that models a population in terms of "agents", to analyze how the parameters affect the beneficial effects of contact-tracing.

The simulation works this way: there is a "population" of thousands simple agents. Each one of these represents a human and behaves differently depending on its state:

  • healthy: moves freely but can be infected

  • incubating: can spread the virus without knowing

  • ill: has symptoms and gets quarantined/cured

  • dead

  • recovered from the illness: is again free and won't be reinfected

For simplicity, I imposed that only incubating individuals can spread the virus, and ill individuals are well contained. Healthy individuals can be infected and when they are, they start the incubation period. After a few days of incubation, the symptoms arrive and one knows to be ill, then it is put into quarantine and gets cured. In this phase it cannot spread the disease anymore. Ill individuals have a certain probability of recovery or death. For simplicity, in this computational model I assume recovered individuals are immune (however, "as of 24 April 2020, no study has evaluated whether the presence of antibodies to SARS-CoV-2 confers immunity to subsequent infection by this virus in humans." [source: WHO]).

The image below tries to depict what the system looks like taking a snapshot at certain moment.

We can run a first simulation with a few infected individual incubating the disease and spreading it to others. The results is in line with what we know very well: exponential growth, as shown below.

Here the model employed an R0 = 3. Please remember that the reproduction number R0 is the rate at which the disease spreads in absence of countermeasures. The effect of countermeasures determines an reproduction number R < R0. When R < 1, the disease reduces and will eventually stop.

Also note that the number of recovered and deceased agents is very low because it lags behind by several days (I assumed 21 days to recovery, 15 days to death on average, these numbers may not be exact but they show well the temporal dynamics of the system).

ADDING CONTACT TRACING Now I modeled the use of the contact tracing App this way: a percentage of the population uses the App. When one turns ill, the App will send an alert to all the individuals one has met during the last days. These people will be put in quarantine for some days, and will not spread the disease (if ever they were infected). Since no one is perfect, I also simulated an amount of inefficiency: only part of the individuals that receive the alarm will go into quarantine. This factor models several issues: technical or human (e.g. people scared/not wanting to undergo quarantine) that may reduce the ability of the contact tracing in fighting the virus.

Here is what happens:

As can be seen, the number of individuals employing the App is crucial. In one scenario (orange line) too few people are using the App: the growth is slower but it does not stop. In a more optimistic scenario, a sufficient number of people adopt the App, reducing the R number. When R < 1, the disease is steadily stopped from spreading (green line) and will eventually fade away.

This is not unexpected as many other smaller viral outbreaks have been stopped by means of manual (not even App-mediated) contact tracing and quarantine. Indeed, for previous coronavirus outbreaks, mass vaccination was not even necessary, since careful isolation of all possibly infected people was sufficient. The SARS, e.g., despite an R0 ranging between 2-4, was defeated by these simple means [link].

Please note that in these specific experiments I set the percentage of people using the App to 50% (orange line) and 80% (green line) and imposed an efficiency reduction of 10% (this will be the number of alerted people who will not undergo quarantine).

I must admit 80% of the population is a lot, but I also did not change the R number. With extreme lockdown, such as the one we are experiencing in Italy, R < 1. With a mild lockdown (no parties, sports and concerts, use of social distancing, etc.) the R number will reduce to somewhere between 1 and 3. Therefore, with a combination of actions ensuring a decrease of the R number reduction AND the use of contact tracing, we can expect to defeat the disease while keeping a reasonable amount of economical and social activities on.

In my opinion this result is great and shows that a consistent use of contact tracing can reduce if not cancel the spreading of the disease. However, it also show how important is our role in making the countermeasure effective! Will governments be able to convince people without enforcing or giving up?


The simulations, however, oversimplify reality. One issue with this model is the assumptions that each individual is discovered to be positive to coronavirus as soon as it observes the first symptoms. In reality, not all cases were spotted, swabs can't be done to anyone due to lack of availability and their processing time can be long, up to a couple of days. For this reason I modeled these issues further: I first added a delay of 2 days to the swab processing. Then I also reduced the availability of swabs, meaning that 50% of the cases will not be probed for virus but just told to stay at home (younger individuals, or less symptomatic). These people will not know if they have the virus and will not send the alarm to their contacts through the App.

This is what happens:

As you can see, with respect to the previous case (green line), the presence of delays reduces the effectiveness of the method, increasing the R number. If the number of alarms is halved due to lack of swabs, the effect of the App is further reduced.

Does this tell that contact tracing is easily broken up? Not really. It tells that the national health system must be ready to support the use of the App providing steady and sufficient swab tests. And please note that in the last simulations, R0 = 3, which by now is not likely nowadays.

Let us conduct a last experiment: what happens if tomorrow we remove lockdown restrictions and start contact tracing, assuming that people observe basic virus containment guidelines (R = 2)?

This experiment starts with a certain number of infected people (500) and runs for 120 days. The 70% of the population uses the App with 10% inefficiency; the swabs results have a delay of 2 days and 25% of the people with symptoms are not tested for Covid.

As one can see, after some time the App starts to reduce the growth. Some oscillations occur: this is an interesting effect of the feedback that should be studied in light of control theory and could be easily modeled under a PID framework. It probably derives from the fact that in my simulation the time constants are fixed, while in reality these are stochastic variables with a large variance, therefore I expect oscillations to be smoothed away.


These computer experiments employed a discrete-time multi-agents model to analyse the impact of a contact tracing App for containment of Covid-19. Several impacting factors have been analysed, supporting the known fact that a large portion of the population must agree in the program to support the entire community by using the App. The results are encouraging, as the App can be a driving factor in wiping the disease away together with social distancing and the reduction of social activities.

Several governments are giving a message that leaves little hope: only mass vaccination will help us. This means imposing strict lockdowns for months or years while waiting for a viable and safe solution. It also means putting all the burden onto medical research hoping in its success, while other lighter (economically and socially) solutions are at hand. Information technology is not only entertainment or "smart cities" (whatever that means). Since we are in 2020, why not give a shot to a technical solution that is merely based on information and networking? It has little cost, it allows restrictions to be lifted now, with great benefit for the whole economical and social system, giving more time to medical research to elaborate viable solutions.

As to the downsides: there is no free lunch! I tried to be fair and put forward some of the issues. The governments need to be prompt in providing swabs and clear in explaining the citizen how to behave. Even though the system is distributed there will be servers running under a heavy workload. These need to be robust and safe.

Finally, privacy concerns must be addressed by making the App open-source, ensuring the best encryption standards, which I think by now we have. As Ferretti et al. state:

"People should be democratically entitled to decide whether to adopt this platform. The intention is not to impose thetechnology as a permanent change to society"

Thanks for reading and fingers crossed!


Luca Ferretti et al. "Quantifying SARS-CoV-2 transmission suggests epidemic control with digital contact tracing", Science, 2020.

Explore their online interactive tool after reading the paper at: https://bdi-pathogens.shinyapps.io/covid-19-transmission-routes/


The Python software for the simulations is available at this github repository.


As a side note: how was the saying? All models are wrong, only the conspiracy theorists always have the real truth. Oh, no it was not like this. Anyway, "all models are wrong", but they help deciding what to do. Another solid article with a nice introduction about modelling and epidemics modelling is provided here.


©2018 by Leonardo Gabrielli. Proudly created with Wix.com