DP-3T Exposure Score Calculation - Summary
27 May 2020
DP-3T Team
Motivation
We are building a proximity-based digital contact tracing system to notify users when they have
potentially been exposed to COVID-19 positive cases. A key question in such systems is when
to show this notification. In Switzerland, for example, an exposure notification should be shown
to a person if that person has been exposed to COVID-positive individual(s) for 15 minutes or
more during one day (see Ordinance of 5/13/20 of the Swiss Federal Council). Following the
contact duration and distance thresholds established by the ECDC, we focus on close-range
exposures, i.e., when a person is within approximately 2 meters of an individual who later
reports a positive diagnosis.
Our goal is to estimate exposure representing established epidemiological parameters to the
extent possible given the imprecision of the underlying technology.
Background
We measure the exchange of low-power radio packets between smartphones as a proxy for the
spatial proximity of smartphone users. Specifically, we rely on Bluetooth Low Energy (BLE)
radios. BLE wireless networking capabilities are nowadays available on most smartphones.
Since BLE operates in the 2.4 GHz ISM band, it is suitable for short-range device-to-device
communication. To detect extended close-range proximity of users, regarded as “exposure”, we
measure the attenuation of BLE packets transmitted from a COVID-19 positive person’s
smartphone to the devices carried by people in their vicinity. This attenuation is calculated as
the difference between the transmission power at the COVID-19 positive user’s smartphone and
the power registered at the receiving device (RSSI). It serves as a proxy for the physical
distance between the two smartphones and therefore between two individuals1.
Users periodically check for exposure given information reported by COVID-positive users.2.
This exposure check is performed several times a day and includes data collected during the
current day and over the immediately preceding 9 days. Taking into account information from
the preceding 9 days should capture the vast majority of contacts with positive cases. This
recommendation is based on current knowledge of the contagious period of SARS-CoV-2, and
the incubation period, i.e. the time window from infection to symptom onset (if any), following the
ECDC guidelines.
1
Alan Bensky, “Wireless Positioning Technologies and Applications”, Chapter 6, Artech House, 2008.
2
Carmela Troncoso et al. (2020) Decentralized Privacy Preserving Proximity Tracing. Retrieved from
https://arxiv.org/abs/2005.12273 on 27 May 2020.
1
Approach
Our approach for exposure estimation uses measurements of radio signal attenuations of BLE
advertisements exchanged between devices over time to build an estimate of exposure.
Figure 1 shows a heat map of attenuation values for individual BLE advertisements of the
GAEN protocol measured between smartphones at various distances. This figure illustrates that
it is difficult to measure distance based on attenuation in real-world environments, as the signals
are rather noisy, well documented in the open literature. The deviations from the simple
free-space radio signal propagation model are due to multipath and shadowing effects, resulting
from walls, objects, and people, that affect signal propagation. However, in BLE, these errors
almost always increase and very seldomly decrease the attenuation. If the attenuation is low (in
Figure 1, <50dB), we are therefore highly certain that the two devices are indeed within 2
meters. Higher attenuation values offer less certainty as to distance, for example, attenuation
values in the 50-70 dB range (in this experiment) could result from devices that are up to 15
meters apart. Since both transmission power and RSSI measurements can differ across phone
models, calibration is applied both at the sending device and at the receiving device to correct
for discrepancies.
Figure 1.
2
We do not try to use the attenuation values to accurately measure distances between devices -
prior attempts have demonstrated this to be challenging, especially given the diversity of
environments and low BLE beaconing frequency. Instead, we focus on solving an
epidemiologically relevant problem of detecting (2m) proximity between devices. We therefore
conducted experiments to estimate the probability of 2m proximity given the measured
attenuation value p(d<2m | attenuation), which we then take as the probability of
exposure to the COVID-19 positive person at the time of the reception of the BLE
advertisement beacon.
Figure 2 shows the p(d<2m | attenuation) for Figure 1.
Figure 2.
The current Google/Apple EN (GAEN) implementation exchanges advertisements with
neighboring devices every 2.5 - 5 minutes (Figure 3). This means that every received beacon
can be seen as an indication of proximity within a few minute-wide interval, while the attenuation
level measured for a beacon gives the probability of being within a certain distance from the
device emitting the beacon. A receiver can, therefore, estimate the overall duration of time
it was exposed at an attenuation level (and therefore was likely within distance d) using a
set of beacons (and corresponding attenuations) received from one device.
3
Figure 3.
SwissCovid Exposure Estimation on GAEN
GAEN does not expose individual attenuation values to the tracing application. The API instead
allows the app to request duration of “exposure” to COVID-19 positive persons with a coarse
granularity (using the ExposureSummary API). The GAEN API takes as input two thresholds,
t1 and t2, that partition the range of attenuation values into three buckets (bucket1:
(0...t1); bucket2: (t1...t2); bucket3: (t2...)), and a set of keys
corresponding to COVID-19-positive users. The API returns, for each of the three attenuation
buckets, the joint duration of exposure to all COVID-19-positive people whose keys were
provided as input. The reported duration_at_attenuation for each bucket is limited to
30mins.
In the SwissCovid app, we use the ExposureSummary API to obtain the d uration of
exposure of the user to COVID-19 positive people within one day, for each of the three
attenuation buckets.
We define the Exposure Score as an estimate of the duration of exposure within 2m
proximity. We calculate it as a weighted sum of the duration within each of the attenuation
buckets:
ES = w1*B1 + w2*B2 + w3*B3
Where B1, B2, and B3 are the durations of exposure in attenuation bucket1, bucket2,
and bucket3 and w1, w2, and w3 are the weights associated with each bucket.
4
Based on our preliminary measurements on the GAEN API, we set the following
conservative thresholds and weights: t1=50dB, t2=55dB, w1=1, w2=0.5, w3=0. We
set w3 to 0 to discard the exposures in the third bucket as they correspond to large attenuation
values and hence most probably large distances between devices.
These thresholds and the weights were conservatively chosen to balance both the precision and
recall of exposure notification across a wide range of environments, including home, public
transports, office, and public spaces. As Figure 1 and 2 illustrate, attenuation values below
55dB are measured with high probability at distances equal or smaller than 2m.
ES is computed each day for the current and past 10 days. The exposure notification to the
user is triggered if ES is greater or equal to 15minwithin any of these days.
The GAEN API is still evolving, and calibration of the measurement of the attenuation values
and duration of exposure between iOS and Android, and between different phone models is still
not complete. This calibration is being performed by Google and Apple engineers. In the pilot
phase, we therefore set our weights, attenuation thresholds, and trigger duration conservatively
to minimize false positives. These thresholds will be refined as we collect more data and as
more phones receive calibration values.