Land Use Core Data Product¶
The Land Use CDP is the unified source of truth for data on the built environment. It covers roughly 143 million parcels nationwide, providing building footprints, tax parcels, points of interest, and places — enriched with land use classifications, building metadata, and spatial relationships.
Land use is also a key upstream input to mobility modeling. It is used to assign specific buildings to residents' home, work, and school locations and to define possible destinations for discretionary trips (restaurants, retail, stadiums, etc.). Understanding the land use data is essential context for interpreting trip data.
Entities¶
Parcels¶
A parcel is a subdivision of land identified for tax purposes at the county level, generally corresponding to a unit of ownership. Land use is modeled at the parcel level, then translated to buildings.
Parcels and buildings have a many-to-many relationship:
| Relationship | Example |
|---|---|
| One building, many parcels | Units in a condo building; shops in a mall |
| One parcel, many buildings | A university campus or office park |
| Parcel with no buildings | Crop fields, parking lots |
When a parcel contains a building, the parcel geometry includes the building footprint and its surrounding lot.
Buildings¶
Building footprints enriched with metadata about built space:
- Number of stories and units
- Land use classification(s)
- Total built square footage (building area)
- Geometry (POLYGON)
Metadata is generated through spatial joins with parcels and POIs, or through modeling.
Points of Interest (POIs)¶
- SafeGraph POI: Any location humans can visit, excluding single/multi-family homes and apartments.
- Replica POI: SafeGraph definition plus block centroids to account for residential locations.
Places¶
A place is a physical location (POINT geometry) modeling "all locations a person can visit." It extends the POI definition to include residential locations. A place is not spatially unique — the same physical point can represent multiple places depending on the place use.
Land Use Classifications¶
Land use categories are based on input data providers' schemas and standards, principally the American Planning Association's Land Based Classification Standards (LBCS). The goal is consistency across localities, since raw categorization varies widely by jurisdiction.
All land use categories are visualized on the map in Places and Trends, with the exception of the Civic/Institutional subcategories (Education, Healthcare, and Other civic/institutional), which are present in the data but not broken out visually in-app.
Area Metrics: Land Area vs. Building Area¶
The land use data produces two distinct area measurements. Choosing the right one depends on the analysis.
| Metric | Definition | When to use |
|---|---|---|
| Land area | Area of the parcel/lot (sq ft), attributed to the parcel's land use. For mixed-use parcels, the full land area is labeled "Mixed Use" in-app and as the primary use (e.g., "Mixed-Use Residential") in downloads. | Analyzing trips ending at a location — see the parcel as a single mixed-use destination. |
| Building area | Total built square footage of buildings on the parcel, split across each constituent use based on categories and number of stories. | Calculating rates per unit of floor space (e.g., trips per 1,000 sq ft of retail). |
| Dwelling units | Count of residential units on the parcel. | Housing density and residential trip analysis. |
Worked example: mixed-use building¶
A 4,000 sq ft plot of land has a three-story building with a 2,000 sq ft footprint (6,000 sq ft total building area). One floor is retail; two floors are multi-family residential.
| Metric | Value | Label |
|---|---|---|
| Land area (in-app) | 4,000 sq ft | Mixed Use |
| Land area (download) | 4,000 sq ft | Mixed-Use Residential |
| Building area | 4,000 sq ft | Multi-Family Residential |
| Building area | 2,000 sq ft | Retail |
For mixed-use parcels, Replica estimates primary, secondary, and tertiary uses.
Methodology¶
Land use is modeled from a composite of data sources, including Regrid (parcel data) and other public and private sources, as well as POI data, building footprints, and Census housing unit data.
The pipeline follows four steps:
- Collect parcels — Parcel-level land use data was collected for roughly two-thirds of all parcels in the country.
- Enrich with POIs — Parcels are enriched with point-of-interest data (restaurants, retail stores, museums, etc.) to refine classifications.
- Model unknowns — Parcels with unknown land use are modeled based on aggregate land use data and other attributes such as POIs and parcel size.
- Match to buildings — Parcels are matched to building footprints to estimate building area and identify mixed-use buildings.
Parking Data¶
Lot (off-street) and on-street parking data is available for the 50 largest cities in the United States. This is a separate data product from the core parcel/building land use tables.
Trip Generation Rates¶
Trip generation rates by land use type can be derived by linking Places trip data to parcel-level land use. Rates are available for specific land use types (e.g., retail, residential, office) and can be computed as both localized rates and broader benchmark rates. These serve as a data-driven alternative to ITE trip generation manuals, using observed travel behavior from a typical weekday in a given season.
Caveats and Coverage¶
- Unknown areas in rural regions. In certain very rural areas where neither parcel nor aggregate land use data is available, land use will be classified as "Unknown." These areas represent a very small share of overall trips.
- Customer feedback loop. If land use data for a specific area conflicts with a customer's trusted local data, it can be reviewed and potentially incorporated into a future data update.
Joining Land Use to Trip Data¶
Land use download files include a FIPS code field at the selected geography level. You can join the land use dataset to any trip activity dataset through the FIPS code.
Land use also connects to trip data through the mobility model: trips are modeled from building footprint to building footprint, with origin and destination points broken out by land use category.
BigQuery Schema¶
Table Naming¶
Land use data lives in two parallel table families in the model-159019.landuse dataset:
{project}.landuse.parcels_modeled_{season}_{hash}_{hash}
{project}.landuse.buildings_modeled_{season}_{hash}_{hash}
The two hashes are opaque identifiers generated by the release framework. You will not construct these names by hand -- use the table names surfaced in the Core Data Service API or in published DataConfigs. A concrete example:
core-data-service-prod.landuse.parcels_modeled_2025_Q2_113be04c6a0a448772d5880d7bef3ba2bf1f1d4f_188362939f7d4d4786076674c5650c28
Parcel Columns¶
| Column | Type | Description |
|---|---|---|
parcel_sqft |
FLOAT | Total square footage of the parcel |
dwelling_units |
INTEGER | Number of residential units on the parcel |
landuse_l1 |
STRING | Top-level land use category (e.g., residential, commercial) |
landuse_l2_primary |
STRING | Primary sub-category (e.g., single_family, retail) |
landuse_l2_secondary |
STRING | Secondary sub-category (nullable) |
landuse_l2_tertiary |
STRING | Tertiary sub-category (nullable) |
centroid |
GEOGRAPHY | Point geometry used for spatial joins against geo boundaries |
For mixed-use parcels, the full parcel_sqft is attributed to the parcel as a whole. For non-mixed-use parcels with multiple L2 categories, parcel_sqft is split evenly across the non-null L2 columns.
Building Columns¶
| Column | Type | Description |
|---|---|---|
id |
STRING | Building identifier |
building_sqft |
FLOAT | Total built square footage of the building |
num_stories |
INTEGER | Number of stories |
res_num_units |
INTEGER | Residential unit count (nullable, defaults to 0) |
landuse_l1 |
STRING | Top-level land use category |
landuse_l2_primary |
STRING | Primary sub-category |
landuse_l2_secondary |
STRING | Secondary sub-category (nullable) |
landuse_l2_tertiary |
STRING | Tertiary sub-category (nullable) |
centroid |
GEOGRAPHY | Point geometry used for spatial joins against geo boundaries |
Buildings follow a more nuanced area-splitting rule. Retail in mixed-use or commercial buildings gets a proportional allocation based on the number of stories rather than an even split. See the "Area Metrics" section above for the conceptual model.
Key Query Patterns¶
Filter by region¶
SELECT landuse.*
FROM `model-159019.landuse.{table}` AS landuse
JOIN `model-159019.geos.region` AS region
ON region.id = '{region_id}'
AND ST_COVERS(region.geom, landuse.geom)
Join buildings to parcels¶
Buildings and parcels share a many-to-many relationship. Use the linking table to join them.
Get building-level land use¶
Land use is modeled at the parcel level. To get building-level land use, join through the parcel-building relationship table.
Customer-Facing Tables¶
model-159019.landuse.customer_landuse_parcels_{season}
model-159019.landuse.landuse_uncertainty_{season}_{hash}
Data Configs¶
Located in landuse/configs/:
| Path | Purpose |
|---|---|
usa.yaml |
Nationwide config for the current season |
mini_kc.yaml |
Test region config |
{season}/ |
Archived configs for past seasons |
ingestion/ |
Unmanaged source data configs |
pois/ |
POI processing configs (monthly cadence) |