📘Update
This data was live during the peak of the COVID-19 pandemic and is no longer supported. We've created this Notebook for those who are interested in using Weekly Patterns as a proxy for Social Distancing Metrics.
This product is delivered daily (3 days delayed from actual). Daily data is available going back to January 1, 2019. We used v2.1 to create the historical data from Jan 1, 2019 - Dec 31, 2019 (the backfill) as well as the data from May 10, 2020 forwards. However, the Jan 1-May 9, 2020 data is on v2.0. Apologies for any inconvenience, please see Release Notes below for more information.
The data was generated using a panel of GPS pings from anonymous mobile devices. We determine the common nighttime location of each mobile device over a 6 week period to a Geohash-7 granularity (~153m x ~153m). For ease of reference, we call this common nighttime location, the device's "home". We then aggregate the devices by home census block group and provide the metrics set out below for each census block group.
To preserve privacy, we apply differential privacy to all of the device count metrics other than the device_count
. This may cause the exact sum of devices to not equal device_count
, especially for sparsely populated origin_census_block_group
. Differential privacy is applied to all of the following columns: completely_home_device_count
, part_time_work_behavior_devices
, full_time_work_behavior_devices
, delivery_behavior_devices
, at_home_by_each_hour
, bucketed_away_from_home_time
, bucketed_distance_traveled
, bucketed_home_dwell_time
, bucketed_percentage_time_home
. Note that differential privacy here means adding the same Laplacian Noise as in our Patterns Product but without the rounding up to 4 that occurs there.
If as a result of the differential privacy applied:
device_count
< part_time_work_behavior_devices
+ full_time_work_behavior_devices
+completely_home_device_count
ordevice_count
< sum(counts in bucketed_distance_traveled
) ordevice_count
< sum(counts in bucketed_home_dwell_count
),we then increase the device_count
to the applicable sum (this only occurs in census_block_groups with small device_counts
).
median_dwell_at_bucketed_ distance_traveled
Key is range of meters and value is the median dwell time in minutes of the devices that traveled the given distance from the geohash-7 of the home. JSON {String: Integer} {"<1000": 300, "1001-2000": 60, "2001:8000": 120, "8001-16000": 5, "16001-50000": 5, "<50000": 60} completely_home_device_count Out of the device_count, the number of devices which did not leave the geohash-7 in which their home is located during the time period. Integer 40 median_home_dwell_time Median dwell time at home geohash-7 ("home") in minutes for all devices in the device_count during the time period. For each device, we summed the observed minutes at home across the day (whether or not these were contiguous) to get the total minutes for each device. Then we calculate the median of all these devices. Beginning in v2, we include the portion of any stop within the time range regardless of whether the stop start time was in the time period. Integer 1200 bucketed_home_dwell_time Key is range of minutes and value is device count of devices that dwelled at geohash-7 of home for the given time period. For each device, we summed the observed minutes at home across the day (whether or not these were contiguous) to get the total minutes for each device this day. Then we count how many devices are in each bucket. Beginning in v2, we include the portion of any stop within the time range regardless of whether the stop start time was in the time period. JSON {String: Integer} {"<60": 0, "61-360": 0, "361-720": 10, "721-1080": 40, ">1081": 50} at_home_by_each_hour A mapping of hour of day to the number of devices at geohash-7 home in each hour over the course of the day in local time. First element in the array corresponds to the hour of midnight to 1am. JSON [Integer] [ 90, 90, 90, 80, 80, 70, 70, ...] part_time_work_behavior_devices Out of the device_count, the number of devices that spent one period of between 3 and 6 hours at one location other than their geohash-7 home during the period of 8 am - 6 pm in local time. This does not include any device that spent 6 or more hours at a location other than home. Integer 10 full_time_work_behavior_devices Out of the device_count, the number of devices that spent greater than 6 hours at a location other than their home geohash-7 during the period of 8 am - 6 pm in local time. Integer 10 * destination_cbgs Key is a destination census block group and value is the number of devices with a home in census_block_group that stopped in the given destination census block group for >1 minute during the time period. Destination census block group will also include the origin_census_block_group (so would capture any device that stayed completely at home or were at least seen at some point in the time period within the origin_census_block_group). This means that the difference between the device_count
and the count of devices with a destination_cbg
that is the same as the origin_census_block_group
represents the number of devices that originate from the origin_census_block group but are staying completely outside of it. JSON {String: Integer} {"130890212162":91,"131210101101":22,"131350502123":20} * delivery_behavior_devices Out of the device_count, the number of devices that stopped for < 20 minutes at > 3 locations outside of their geohash-7 home. Integer 10 * median_non_home_dwell_time Median dwell time at places outside of geohash-7 home in minutes for all devices in the device_count during the time period. For each device, we summed the observed minutes outside of home across the day (whether or not these were contiguous) to get the total minutes for each device. Then we calculate the median of all these devices. Integer 60 * candidate_device_count Number of devices in our panel whose home is in this census_block_group regardless of whether we saw any activity for them in the time range. Home is defined as the common nighttime location for the device over a 6 week period where nighttime is 6 pm - 7 am. Integer 100 * bucketed_away_from_home_time Key is range of minutes and value is device count of devices that dwelled anywhere outside of the geohash-7 of home for the given time period. For each device, we summed the observed minutes away from home across the day (whether or not these were contiguous) to get the total minutes for each device this day. Then we count how many devices are in each bucket. Beginning in v2, we include the portion of any stop within the time range regardless of whether the stop start time was in the time period. JSON {String: Integer} {"0- 20": 5, "21-45": 4, "46-60": 5, "61-120": 4, "121-180": 5, "181-240": 10, "241-300": 4, "301-360": 8, "361-420": 10, "421-480": 8, "481-540": 4, "541-600": 2, "601-660": 3, "661-720": 4, "721-840": 3, "841-960": 5, "961-1080": 2, "1081-1200": 2, "1201-1320": 2, "1321-1440": 1} * median_percentage_time_home Median percentage of time we observed devices home versus observed at all during the time period. Integer 72 * bucketed_percentage_time_home Key is a range of percentage of time a device was observed at home (numerator) out of total hours observed that day at any location (denominator). Value is the number of devices observed in this range. JSON {String: Integer} {"0-25": 6, "26-50": 5, "51-75": 10, "76-100": 100} ** mean_home_dwell_time Mean dwell time at home geohash-7 ("home") in minutes for all devices in the device_count during the time period. For each device, we summed the observed minutes at home across the day (whether or not these were contiguous) to get the total minutes for each device. Then we calculate the mean of all these devices. Integer 1200 ** mean_non_home_dwell_time Mean dwell time at places outside of geohash-7 home in minutes for all devices in the device_count during the time period. For each device, we summed the observed minutes outside of home across the day (whether or not these were contiguous) to get the total minutes for each device. Then we calculate the mean of all these devices. Integer 60 ** mean_distance_traveled_from_home Mean distance (in meters) traveled from the geohash-7 of the home by the devices included in the device_count during the time period. We first find all the distances traveled for each device. We filter out any distances that are > 1.5 x the interquartile range for that device. We do NOT filter on the low range since we were only concerned with long distance outliers. We then take the mean for each device using the non-filtered distances. Then we find the mean across all of the devices. Integer 200
* New in v2
** New in v2.1
190570010001
. It likely contains a sink (a location on a map which sees a disproportionate number of location pings that usually aren’t actually accurate).full_time_work_behavior_devices
. In v1 we included visits that had a start time within the day and did not truncate the ones that went over the day boundary. This made it so that some visits had start_hour > end_hour, which fooled the condition for work hours: isWorkHours = startHour >= 7 && endHour <= 17 (e.g. start_hour = 20 and end_hour = 8 satisfy that condition) . This was fixed in v2.bucketed_percentage_time_home
would not cause the sum of these counts to exceed the device_count
.distance_traveled_from_home
is never blank. If all devices remained home, 0 is entered.mean_home_dwell_time
added.mean_non_home_dwell_time
added.mean_distance_traveled_from_home
added.v2/2021/01/27/2021-01-27-social-distancing.csv.gz
was incomplete. We regenerated v2/2021/01/27/2021-01-27-social-distancing-rewritten.csv.gz
which should be used instead.Updated 11 days ago
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.3