Google Mobility – US Sub-Region Level Mobility CSV
- Rows
- 27,354
- Columns
- 15
Daily mobility change from baseline (%) for US counties across six venue categories (retail, transit, workplace, residential, etc.) for 2021. Granular time series for economic and epidemiological analysis.
AI analysis
Dataset Analysis: Google Mobility – US Sub-Region Level (2021)
1. Dataset Overview and Research Value
This dataset originates from Google's COVID-19 Community Mobility Reports, published at https://www.gstatic.com/covid19/mobility/2021USRegionMobilityReport.csv, which confirms Google as the publisher and pins the data squarely to calendar year 2021 — a pivotal period spanning vaccine rollouts, Delta variant surges, and shifting return-to-office patterns. The dataset captures daily percent change from a pre-pandemic baseline across six venue categories for US counties, yielding 27,354 rows across 365 days. Its granularity — daily, county-level, multi-category — makes it exceptionally well-suited for epidemiological modeling, economic impact studies, and behavioral response analysis. Researchers can track how populations shifted activity patterns in near-real-time, making this one of the richer publicly available proxies for human mobility behavior at sub-national scale.
2. Data Quality Observations
The dataset carries meaningful quality concerns that require upfront remediation. Of the 127,609 total null cells across 15 columns, three columns are effectively unusable as-is: metroarea is 100% null (27,354 of 27,354 rows) and should be dropped entirely, while iso31662code is 97.3% null (26,624 rows), rendering it unreliable as a geographic identifier. parkspercentchangefrombaseline is missing 78.1% of values (21,365 rows), which severely limits any parks-focused analysis and should be treated as a high-uncertainty column rather than a primary signal. Among the mobility metrics, transitstations (17,851 nulls, ~65%) and retailandrecreation (10,344 nulls, ~38%) also show substantial gaps, likely reflecting suppression of low-population counties by Google for privacy reasons. Duplicate row counts are noted as pending Phase D recomputation, so deduplication validation should be confirmed before any aggregation. The subregion1 column has only 365 nulls and subregion2 has 1,095 — suggesting a clean three-tier geographic hierarchy (national → state → county) once nulls are interpreted structurally rather than as errors.
3. Key Column Distributions and Notable Patterns
The mobility columns tell a nuanced story through their distributions. Workplaces (mean=-17.77, median=-16, σ=12.51, skew=-1.67) shows the most consistent and dramatic suppression below baseline — its negative skew and tight quartile range (Q1=-23, Q3=-11) confirm that reduced office attendance was nearly universal across counties, with 1,176 outliers suggesting a small number of locations bucking the trend significantly. Retail and recreation (mean=1.29, median=0, skew=1.49, max=215) is nearly centered at baseline on average but hides enormous variance — a max of 215% and 560 outliers point to seasonal spikes (holidays, summer tourism) in specific counties. Parks is the most volatile category (mean=15.46, σ=47.94, max=429, skew=2.02), with a long right tail suggesting extreme outdoor activity surges in recreational counties, though its 78% null rate means this signal is only observable for a small geographic subset. Residential is the tightest distribution (min=-8, max=39, σ=3.97, skew=2.2, only 48 distinct values), reflecting the logical ceiling on how much more time people can spend at home — yet its positive skew and 699 outliers suggest persistent work-from-home effects concentrated in specific regions. Grocery and pharmacy (mean=6.97, median=7) remained modestly above baseline throughout the year, consistent with pandemic-era stockpiling habits persisting into 2021.
4. Recommended Join Key Columns
For cross-dataset correlation work, date (0 nulls, 365 distinct values) and censusfipscode (0 nulls within county-level rows, 79 distinct county codes) form the most reliable composite join key. FIPS codes are the standard US geographic identifier used across Census, CDC, BLS, and CMS datasets, making them highly portable. subregion1 (state name) and subregion2 (county name) can serve as human-readable fallback join keys but require string normalization. Avoid iso31662code (97.3% null) and metroarea (100% null) as join anchors entirely. The placeid column (82 distinct, 0 nulls) may be useful for joining back to Google Places-derived datasets but has limited utility for government or health data joins.
5. Recommended Companion Datasets for Correlation Analysis
Several dataset categories would pair powerfully with this mobility data. COVID-19 case and vaccination data (e.g., CDC county-level case counts or the NYT COVID dataset) joined on date + censusfipscode could reveal lagged relationships between mobility drops and case surges, or vaccination uptake and workplace return rates. Bureau of Labor Statistics county employment data would allow testing whether workplace mobility decline correlates with unemployment claims or remote-work-eligible industry concentration. US Census ACS demographic data (income, housing density, occupation type by FIPS) could explain why some counties show extreme residential increases versus others, enabling socioeconomic segmentation of mobility responses. Weather and climate data (e.g., NOAA daily weather by county) would be a natural instrument for parks and retail mobility variance, helping isolate pandemic effects from seasonal confounders. Finally, retail sales or foot traffic data from sources like SafeGraph or the Census Monthly Retail Trade Survey could validate or contrast Google's retail mobility signal, since the max of 215% suggests potential measurement artifacts worth cross-checking.
Columns
- date (date)
- country_region_code (string)
- country_region (string)
- sub_region_1 (string)
- sub_region_2 (string)
- metro_area (string)
- iso_3166_2_code (string)
- census_fips_code (string)
- place_id (string)
- retail_and_recreation_percent_change_from_baseline (integer)
- grocery_and_pharmacy_percent_change_from_baseline (integer)
- parks_percent_change_from_baseline (integer)
- transit_stations_percent_change_from_baseline (integer)
- workplaces_percent_change_from_baseline (integer)
- residential_percent_change_from_baseline (integer)