[Methodology] Regarding proximity tracing
Closed this issue · 2 comments
So far, I see no distance being computed. How is a close proximity planned to be identified and where will be implemented? Will it be in the ContactFactory, since an exposure over certain time is marked as a contact (having also those hardcoded rssi values)?
Android Exposure API uses a "0-255" number to represent a difference between rx and tx signal strength.
Example:
rssi | tx | distance |
---|---|---|
1 | 255 | 255-1 = long |
255 | 1 | 1-255 = long |
127 | 128 | 128-127 = close |
The idea is that if the received signal strength is the same as a transmitted signal strength, transmitter and receiver are close to each other. If there's a large difference then they're located at a considerable distance.
Actual values can't be deduced, because it's in relative units and each device has a different maximum signal strength.
The ExposureNotification framework allows us to get the number of minutes grouped in to three buckets of attenuation values, where we set the threshold for the attenuation values. In our current implementation we use the following formula to compute the number of minutes of contact: lowAttenuationfactorLow+middleAttenuationfactorMiddle and then check if this gives us a value bigger than a certain threshold. Important we check this for each calendar day individually, so if you have exposure just under the threshold every day again you will never get a notification. And we do not try to estimate a distance and then apply a formula/scoring on the distance, but apply the formula directly on the measured attenuation values.