Planetary-scale answers, unlocked.
A Hands-On Guide for Working with Large-Scale Spatial Data. Learn more.
Authors
Parcel data is the map of land ownership: one polygon for every piece of land, with the records that describe it. Each parcel carries a boundary, parcel number, owner, land use code, zoning district, area, and assessed value. Counties maintain parcel data to tax property and record who owns it. Insurers, utilities, lenders, farmers, and AI agents use it to tie an address, a building, or a pixel to a legal unit of land. The claim tested here: parcel data fills the fields that name a parcel and its owner, and leaves many others empty. Before a join, count filled fields, match buildings to parcels by center point, and merge records on one polygon.
Parcel data has two parts: a polygon that outlines the parcel, and the columns of the assessor's record.
Land use records what a parcel is used for today. Zoning records what the city or county allows on it. Counties write their own use codes, so nationwide datasets add a standard. Regrid maps local codes to the American Planning Association's Land-Based Classification Standards (LBCS), which classify each parcel along five dimensions: activity, function, structure, site, and ownership. Regrid's LBCS columns carry a 4-digit code and a description for each dimension.
Regrid maps over 100 county-provided columns into one standard schema and keeps each county's extra columns.
A parcel number is the identifier a local taxing authority assigns to each parcel. Counties that use the term assessor's parcel number abbreviate it APN. Other jurisdictions say parcel ID, property identification number (PIN), assessor's identification number (AIN), or tax ID. The number is unique within its jurisdiction and can repeat across jurisdictions. Nationwide datasets pair it with a county code or a provider key.
The format encodes how the county maps land. San Francisco combines a block and a lot: parcel 3590-035 is lot 035 in block 3590. New York State builds its parcel numbers from section, block, and lot. Its tax bills call the identifier the section, block, and lot (SBL) number. The SanGIS parcel metadata for San Diego County keys each polygon to an APN and to a separate polygon identifier, PARCELID.
PARCELID
A parcel is the unit the assessor taxes. A lot is a unit on a recorded plat, and one parcel can contain several lots.
The polygon in a parcel layer is a drawing. The legal boundary is the description in the deed, written as metes and bounds, PLSS, or lot and block.
Metes and bounds describes a boundary as a walk. Start at a point of beginning, follow a bearing (a compass direction) for a distance to the next corner, and close back at the start. Each step, or call, can name a monument such as a stone or a creek, as the Bureau of Land Management's metes-and-bounds study guide describes. It is the main system in the original 13 colonies and Texas, which lie outside the public land survey.
The Public Land Survey System (PLSS) describes land by its place in a national grid. The Land Ordinance of 1785, adopted by the Continental Congress on 20 May 1785, ordered the western territory surveyed into townships 6 miles square. Each township was split into 36 sections of 1 square mile, or 640 acres. A PLSS description reads like an address in that grid: the northeast quarter of section 12, township 3 south, range 2 west, from a named principal meridian. The Bureau of Land Management (BLM) publishes the grid as the PLSS CadNSDI dataset.
Lot and block describes parcels in recorded subdivisions by their plat: lot 7, block 3 of a named tract, filed in a plat book at the county recorder.
A cadastre is the official land record of a jurisdiction. The International Federation of Surveyors (FIG) published a Statement on the Cadastre in 1995. It defines a cadastre as "normally a parcel based, and up-to-date land information system containing a record of interests in land (e.g. rights, restrictions and responsibilities)". The statement adds that a cadastre usually links a geometric description of each parcel to records of ownership and value.
A parcel fabric is a data model that stores parcels as a connected network of points, lines, and polygons. Each line carries the recorded bearings and distances from the source document. Esri's parcel fabric organizes parcels by the record that created them and enforces topology rules, which keep shared edges free of gaps and overlaps. A change to one boundary moves the neighboring parcels with it.
A parcel layer is the polygon dataset counties and providers distribute: one feature per parcel with attributes, and no stored relationship between neighbors.
Parcel data starts at the county assessor, recorder, or GIS office, or in New England at the city or town. Each office keeps its own parcel map, often linked to a computer-assisted mass appraisal (CAMA) system that stores the values.
County portals, state portals, and nationwide providers republish those maps:
Parcel records are public in many US jurisdictions. Terms vary by county: some charge for bulk files, and some withhold owner names or sale prices. Each county updates on its own schedule. Regrid reports that on average 94% of its parcels were refreshed in the last 12 months.
A parcel boundary is the line on the tax map. A property line is the legal boundary in the deed. The two often differ by a few feet, because tax maps are compiled from deeds, plats, and older maps for assessment.
Parcel lines also shift against aerial imagery and can cross roofs or fall into streets. Regrid leaves parcels unaligned to imagery and sends large shifts back to the county. For a fence, a dispute, or a building permit, a licensed land surveyor sets the legal line.
Counties publish parcels as Shapefile, File Geodatabase, GeoJSON, or CSV with a geometry column. Shapefile truncates column names to 10 characters, which breaks long schema names such as parcelnumb_no_formatting.
County data usually arrives in a local projection, such as a State Plane coordinate reference system in feet. Nationwide datasets reproject everything to WGS 84 (EPSG:4326) longitude and latitude so counties line up.
Topology errors, slivers, update lag, and mixed county schemas each change the result of a join.
Pullar and Donaldson (2022) found Queensland cadastral boundaries 3 to 5 m off fence lines in places on 0.1 m orthoimagery, aerial photos corrected to map geometry. Fetai et al. (2022) compared surveyed and digitized boundaries in North Macedonia and Slovenia. The root mean square error (RMSE) of position was 48 cm and 56 cm in two study areas.
Teams use parcel data to answer "what piece of land is this, and who owns it?":
In package tracking, "parcel data received" means the carrier has the label's electronic record and has not scanned the box yet, as Ship24's tracking help explains.
A Regrid parcel sample is ready to query in Wherobots open data. It holds 7,935,620 parcels in Los Angeles, Orange, Riverside, San Bernardino, and San Diego counties in California and Maricopa County in Arizona.
The walkthrough below uses one box over Escondido, in northern San Diego County: longitude -117.11 to -117.04 and latitude 33.095 to 33.15, about 6.5 by 6.1 km. A parcel belongs to the box when its centroid, the center point of its polygon, falls inside it.
The walkthrough reads two Apache Iceberg tables with a geometry column:
wherobots_open_data.partner_samples.regrid_parcels
geometry
ll_bldg_count
wherobots_open_data.overture_maps_foundation.buildings_building
Three WherobotsDB SQL queries ran in 14 to 18 seconds each: one on parcels alone, two joining parcels to buildings.
The first query counts how many records fill each field, when they were refreshed, and how many are tiny or thin. It ran in 15.7 seconds.
WITH p AS ( SELECT owner, usedesc, lbcs_activity_desc, zoning, parval, yearbuilt, saledate, legaldesc, ll_last_refresh, ST_AreaSpheroid(geometry) AS m2, ST_Perimeter(geometry, true) AS perim_m FROM wherobots_open_data.partner_samples.regrid_parcels WHERE county = 'san-diego' AND ST_Intersects(geometry, ST_PolygonFromEnvelope(-117.11, 33.095, -117.04, 33.15)) AND ST_Contains(ST_PolygonFromEnvelope(-117.11, 33.095, -117.04, 33.15), ST_Centroid(geometry)) ) SELECT COUNT(*) AS parcels, COUNT(NULLIF(TRIM(owner), '')) AS with_owner, COUNT(NULLIF(TRIM(usedesc), '')) AS with_county_use, COUNT(NULLIF(TRIM(lbcs_activity_desc), '')) AS with_lbcs_activity, COUNT(NULLIF(TRIM(zoning), '')) AS with_zoning, COUNT_IF(parval > 0) AS with_value, COUNT_IF(yearbuilt > 0) AS with_year_built, COUNT(saledate) AS with_sale_date, COUNT(NULLIF(TRIM(legaldesc), '')) AS with_legal_desc, MIN(ll_last_refresh) AS oldest_refresh, MAX(ll_last_refresh) AS newest_refresh, ROUND(PERCENTILE_APPROX(m2, 0.5), 1) AS median_m2, ROUND(SUM(m2) / 1e6, 3) AS total_km2, COUNT_IF(m2 < 50) AS under_50_m2, COUNT_IF(m2 < 100 AND 4 * PI() * m2 / (perim_m * perim_m) < 0.1) AS slivers FROM p
The box holds 23,275 parcel records. Owner names fill 23,267 of them, county use codes 23,274, legal descriptions 23,264, and Regrid's LBCS activity 22,870. A positive assessed value appears on 21,883. Zoning fills 1,747 records, 7.5%, and no record carries a year built or a sale date. Every record was last refreshed on 13 February 2024. The median parcel covers 985.2 m².
20 parcels are under 50 m². 8 are slivers: under 100 m², with a Polsby-Popper compactness score (4πA/P²) below 0.1. The score compares area with perimeter; a thin strip scores near 0. The parcel areas sum to 273.942 km², and the box covers 39.85 km² (ST_AreaSpheroid of the box envelope). Many records must share the same ground.
ST_AreaSpheroid
The second query adds land use and joins Overture buildings to parcels. It matches each building footprint by its centroid to the parcel that contains it, with ST_Contains. A building that crosses a lot line intersects two parcels, so a polygon intersection join would count it twice. The query plan (EXPLAIN FORMATTED) shows an indexed join (BroadcastIndexJoin) with an R-tree spatial index on the building side, and no Cartesian product (every parcel paired with every building). The query ran in 14.1 seconds.
ST_Contains
EXPLAIN FORMATTED
WITH parcels AS ( SELECT ll_uuid, ll_bldg_count, geometry, COALESCE(NULLIF(TRIM(lbcs_activity_desc), ''), '(no LBCS activity)') AS activity, ST_AreaSpheroid(geometry) AS m2, ST_Contains(ST_PolygonFromEnvelope(-117.11, 33.095, -117.04, 33.15), ST_Centroid(geometry)) AS in_box FROM wherobots_open_data.partner_samples.regrid_parcels WHERE county = 'san-diego' AND ST_Intersects(geometry, ST_PolygonFromEnvelope(-117.11, 33.095, -117.04, 33.15)) ), buildings AS ( SELECT id, ST_Centroid(geometry) AS centroid, ST_Contains(ST_PolygonFromEnvelope(-117.11, 33.095, -117.04, 33.15), ST_Centroid(geometry)) AS in_box FROM wherobots_open_data.overture_maps_foundation.buildings_building WHERE bbox.xmax >= -117.12 AND bbox.xmin <= -117.03 AND bbox.ymax >= 33.085 AND bbox.ymin <= 33.16 ), pairs AS ( SELECT p.ll_uuid, b.id FROM parcels p JOIN buildings b ON ST_Contains(p.geometry, b.centroid) ), per_parcel AS ( SELECT p.ll_uuid, p.activity, p.ll_bldg_count, p.m2, COUNT(pr.id) AS n FROM parcels p LEFT JOIN pairs pr ON p.ll_uuid = pr.ll_uuid WHERE p.in_box GROUP BY p.ll_uuid, p.activity, p.ll_bldg_count, p.m2 ), per_building AS ( SELECT b.id, COUNT(pr.ll_uuid) AS n FROM buildings b LEFT JOIN pairs pr ON b.id = pr.id WHERE b.in_box GROUP BY b.id ) SELECT COALESCE(activity, 'ALL PARCELS') AS grp, COUNT(*) AS total, COUNT_IF(n = 0) AS zero, COUNT_IF(n = 1) AS one, COUNT_IF(n >= 2) AS two_plus, SUM(n) AS buildings_matched, COUNT_IF(n = ll_bldg_count) AS agrees_with_ll_bldg_count, ROUND(PERCENTILE_APPROX(m2, 0.5), 1) AS median_m2, ROUND(MAX(m2) / 1e6, 3) AS max_km2 FROM per_parcel GROUP BY ROLLUP(activity) UNION ALL SELECT 'OVERTURE BUILDINGS (parcels containing the centroid)', COUNT(*), COUNT_IF(n = 0), COUNT_IF(n = 1), COUNT_IF(n >= 2), SUM(n), NULL, NULL, NULL FROM per_building ORDER BY total DESC
Household use covers 20,819 of the 23,275 records, followed by Shopping, business, or trade (537), Shopping (370), industrial uses (310), and Office (156). Of the 405 records with no LBCS activity, 365 contain no building.
The building join explains the area total. Of 26,635 Overture buildings in the box, only 23 have a centroid outside every parcel, so the layer has almost no gaps under buildings. 23,093 fall in one parcel record and 3,519 in two or more. The 472,643 building-to-record matches come from parcel records stacked on one polygon. Regrid's own building count, ll_bldg_count, agrees with the Overture count on 13,079 records.
The third query merges records with an identical polygon into one footprint. It finds them by hashing each polygon's well-known binary (WKB) form with md5. It counts building centroids per footprint and joins footprints to each other to find overlaps. The plan shows two indexed joins (BroadcastIndexJoin and RangeJoin) and no Cartesian product. It ran in 17.7 seconds.
md5
WITH p AS ( SELECT ST_AsBinary(geometry) AS wkb FROM wherobots_open_data.partner_samples.regrid_parcels WHERE county = 'san-diego' AND ST_Intersects(geometry, ST_PolygonFromEnvelope(-117.11, 33.095, -117.04, 33.15)) AND ST_Contains(ST_PolygonFromEnvelope(-117.11, 33.095, -117.04, 33.15), ST_Centroid(geometry)) ), fp AS ( SELECT md5(wkb) AS k, COUNT(*) AS records, FIRST(wkb) AS wkb FROM p GROUP BY md5(wkb) ), fpa AS ( SELECT k, records, g, ST_AreaSpheroid(g) AS m2 FROM (SELECT k, records, ST_MakeValid(ST_GeomFromWKB(wkb)) AS g FROM fp) ), overlaps AS ( SELECT a.m2 AS ma, b.m2 AS mb, ST_AreaSpheroid(ST_Intersection(a.g, b.g)) AS o FROM fpa a JOIN fpa b ON ST_Intersects(a.g, b.g) AND a.k < b.k ), buildings AS ( SELECT id, ST_Centroid(geometry) AS centroid FROM wherobots_open_data.overture_maps_foundation.buildings_building WHERE bbox.xmax >= -117.12 AND bbox.xmin <= -117.03 AND bbox.ymax >= 33.085 AND bbox.ymin <= 33.16 ), per_fp AS ( SELECT f.k, f.records, COUNT(b.id) AS n FROM fpa f LEFT JOIN buildings b ON ST_Contains(f.g, b.centroid) GROUP BY f.k, f.records ) SELECT 'A footprints' AS section, IF(records > 1, 'stacked (2+ records)', 'single record') AS label, COUNT(*) AS n, SUM(records) AS records, MAX(records) AS extra FROM fp GROUP BY 2 UNION ALL SELECT 'B buildings per footprint', CASE WHEN n = 0 THEN '0' WHEN n = 1 THEN '1' WHEN n = 2 THEN '2' WHEN n <= 5 THEN '3-5' ELSE '6+' END, COUNT(*), SUM(records), SUM(n) FROM per_fp GROUP BY 2 UNION ALL SELECT 'C footprint pairs that intersect', CASE WHEN o >= 0.99 * LEAST(ma, mb) THEN '1 one inside the other' WHEN o >= 10 THEN '2 overlap of 10 m2 or more' WHEN o >= 1 THEN '3 overlap of 1 to 10 m2' WHEN o > 0 THEN '4 overlap under 1 m2' ELSE '5 shared edge or corner only' END, COUNT(*), NULL, ROUND(SUM(o)) FROM overlaps GROUP BY 2 ORDER BY section, label
The records collapse to 17,782 distinct footprints. Of those, 17,482 carry one record each, and 300 stacked footprints carry the other 5,793 records. The largest stack holds 339 records on one polygon. Condominiums produce this pattern: each unit carries its own APN, mapped to the shared lot. Counted once per footprint, 12,498 footprints (70%) hold one building, 2,349 hold two, 987 hold three to five, and 284 hold six or more. 1,664 footprints hold no building.
The overlap check finds clean topology. 33,830 footprint pairs touch only at an edge or a corner. 60 pairs overlap by under 1 m² and one pair by 2 m², consistent with small digitizing errors. No pair overlaps by 10 m² or more, and no footprint sits inside another once exact duplicates are merged.
One Wherobots project scored every building in Colorado, 2,771,126 Overture buildings on their Regrid parcels for five perils. The result is the Colorado property risk explorer. The same join can add flooded Sentinel-2 pixels or elevation, because WherobotsDB handles raster and vector data in one engine. Most stacks pick one.
The Model Context Protocol (MCP) is a protocol that lets AI agents call data tools. An agent connected to parcel data through the Wherobots MCP server can answer "which parcels over 15 acres sit within a mile of a substation?" with a spatial query.
Deed registration, the common US model, records documents and leaves the buyer to trace the chain of title. South Australia's Real Property Act 1858, designed by Robert Torrens, replaced that chain with a central public register. Title passes by registration. Many countries have since adopted Torrens registration and extended it to mortgages, leases, and strata titles.
The National Research Council (NRC) published Need for a Multipurpose Cadastre in 1980. It called for a parcel-level land information system with five components. Three are a geodetic reference frame (the network of surveyed control points), current large-scale base maps, and a cadastral overlay of every parcel. The other two are a unique identifying number for each parcel and land data files keyed to that number. The NRC returned to the topic in National Land Parcel Data: A Vision for the Future (2007), which concluded that nationally integrated parcel data was necessary, feasible, and affordable.
The International Association of Assessing Officers' Standard on Digital Cadastral Maps and Parcel Identifiers sets mapping and identifier practice for US assessors. The Federal Geographic Data Committee (FGDC) publishes the Cadastral Data Content Standard (version 1.4, 2008), maintained by the BLM. It defines the entities of publicly available land records: survey measurements, transactions on interests in land, property descriptions, and boundary and corner evidence.
Kaufmann and Steudler's Cadastre 2014 (FIG, 1998) predicted a shift from drawing cadastral maps to modeling land objects in databases. The International Organization for Standardization (ISO) made that shift formal in ISO 19152:2012, the Land Administration Domain Model (LADM). It is a conceptual model of parties, rights, restrictions and responsibilities, and spatial units. Lemmen, van Oosterom, and Bennett (2015) describe it in Land Use Policy.
Nolte (2020), in PNAS, built parcel-level land value maps for the contiguous United States. It showed that earlier cost proxies underestimated the budgets for floodplain protection by a factor of 2 and for climate-driven species conservation planning by a factor of 37.5. Uhl et al. (2021) used Zillow's ZTRAX assessor and transaction database to map built-up properties in the conterminous US from 1810 to 2015 at 250 m resolution.
A nationwide parcel dataset holds over 158 million records, and joins to buildings, flood zones, and pixels multiply that. Yu, Wu, and Sarwat (2015) introduced GeoSpark, now Apache Sedona, which partitions both sides of a join by space and runs it in parallel across a cluster. WherobotsDB runs the queries above on that design.
In Escondido, parcel data records where each parcel sits and who owns it, with thin attributes and stacked records that every join must handle.
Join parcels to buildings, imagery, and hazard layers with a Wherobots free trial at cloud.wherobots.com.
Parcel data is the map and records of land ownership units. Each parcel has a boundary polygon and attributes such as a parcel number, owner, land use, acreage, and assessed value. County and city governments maintain it for property tax and land records.
Parcel data starts at the local government that assesses property. That is usually the county assessor, recorder, or GIS office, and in some states the city or town. State GIS portals combine county data. Companies such as Regrid collect it from counties, states, and municipalities into one nationwide dataset.
Parcel records are public records in many US jurisdictions, and many counties and states publish parcel boundaries for free download. Terms vary by county: some charge for bulk files, and some withhold owner names. Nationwide, standardized parcel data is a commercial product.
A parcel number is the unique identifier a local tax authority assigns to a piece of land, often called an assessor’s parcel number (APN). Other names include parcel ID, PIN, AIN, and tax ID. The format differs by county, for example San Francisco’s block and lot number or New York’s section, block, and lot (SBL) number.
Yes. APN stands for assessor’s parcel number, and it is the parcel number in counties that use that term. A property ID or tax ID usually refers to the same identifier, though some counties keep a separate tax account number alongside the parcel number.
The parcel number appears on the property tax bill and on the deed. The county assessor’s website and the county GIS parcel viewer let you search by address and return the parcel number with the boundary.
County GIS parcel viewers and nationwide parcel maps draw parcel boundaries over aerial imagery. Those lines come from tax maps and can sit several feet off the legal boundary. For an exact property line, hire a licensed land surveyor.
Counties publish parcel data as Shapefile, File Geodatabase, GeoJSON, or CSV. Nationwide providers add GeoPackage, KML (Keyhole Markup Language), and database exports. For analysis at scale, convert parcels to GeoParquet or Apache Iceberg tables. Both keep geometry and attributes together in a columnar format, which stores each column’s values side by side for fast reads.
In package tracking, “parcel data received” means the carrier has received the shipping label’s electronic record, such as the tracking number, weight, and destination. The package has not been scanned into the carrier network yet. This sense of parcel data is unrelated to land parcels.
A cadastre is the official land record of a jurisdiction. The International Federation of Surveyors defines it as a parcel-based, up-to-date land information system that records interests in land, such as rights, restrictions, and responsibilities. It usually links a geometric description of each parcel to records of ownership and value.
The Public Land Survey System (PLSS) is the US grid for describing land, created by the Land Ordinance of 1785. It divides land into townships 6 miles square, each split into 36 sections of 640 acres. A parcel can then be described by section, township, and range from a principal meridian.
A stacked parcel is one of several parcel records drawn on the same polygon, often condominium units that each have their own parcel number on a shared lot. Merge stacked records into one footprint before joining buildings, or each building counts once per unit.
What is a Geofence? How Geofencing Works, With Examples
A geofence is a virtual boundary that triggers an action when a device enters or leaves it. How geofencing works, its uses and limits, and a test on ship data.
What is Map Matching? GPS Traces, Methods and Examples
Map matching places each GPS record on the road a vehicle drove. How it works, nearest-road snapping vs hidden Markov models, and a test on Ann Arbor drives.
Geospatial Big Data: Why Analytics Is Hard to Scale
Teams struggle to scale geospatial analytics for five reasons: data volume, mixed formats, many coordinate systems, spatial joins and pipeline upkeep.
share this article
Awesome that you’d like to share our articles. Where would you like to share it to: