> ## Documentation Index
> Fetch the complete documentation index at: https://docs.buyparceldata.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Data fields

> All 100+ parcel fields, null value behavior, zoning data, and enriched external datasets.

## Overview

Each BPD parcel record contains 100+ fields sourced from county assessors and enriched with external datasets. All fields are optional; availability varies by county. A null value means the county did not provide that data, not that the parcel doesn't exist.

***

## Core parcel fields

### Ownership

| Field              | Description                                                    |
| ------------------ | -------------------------------------------------------------- |
| `owner`            | Full owner name                                                |
| `owner_first_name` | Owner first name (where parsed)                                |
| `owner_last_name`  | Owner last name (where parsed)                                 |
| `owner_2`          | Secondary owner name                                           |
| `owner_type`       | Owner classification (individual, corporate, government, etc.) |
| `mail_addr`        | Owner mailing address                                          |

### Location & identity

| Field       | Description                     |
| ----------- | ------------------------------- |
| `parcel_id` | County assessor parcel ID (APN) |
| `situs`     | Property street address         |
| `city`      | City                            |
| `postal`    | ZIP code                        |
| `state`     | Two-letter state abbreviation   |
| `state_fp`  | State FIPS code                 |
| `county`    | County name                     |
| `county_fp` | County FIPS code                |
| `latitude`  | Parcel centroid latitude        |
| `longitude` | Parcel centroid longitude       |

### Valuation

| Field                | Description                           |
| -------------------- | ------------------------------------- |
| `parcel_value`       | Total assessed value (USD)            |
| `land_value`         | Land assessed value (USD)             |
| `improvements_value` | Improvements assessed value (USD)     |
| `agricultural_value` | Agricultural assessed value (USD)     |
| `building_value`     | Building assessed value (USD)         |
| `sale_price`         | Most recent recorded sale price (USD) |
| `sale_date`          | Most recent sale date                 |
| `tax_amount`         | Annual property tax (USD)             |
| `tax_year`           | Tax year for the tax amount           |

### Physical characteristics

| Field         | Description                                 |
| ------------- | ------------------------------------------- |
| `acres`       | Parcel area (county-reported)               |
| `acres_calc`  | Parcel area calculated from geometry by BPD |
| `sq_feet`     | Parcel area in square feet                  |
| `year_built`  | Year the primary structure was built        |
| `num_stories` | Number of stories                           |
| `num_units`   | Number of units                             |
| `num_rooms`   | Number of rooms                             |

### Land use & zoning

| Field                | Description                                          |
| -------------------- | ---------------------------------------------------- |
| `land_use`           | Land use classification (raw, as provided by county) |
| `land_use_code`      | Land use code                                        |
| `zoning`             | Zoning code (raw, as provided by county)             |
| `zoning_description` | Zoning description where available                   |

<Warning>
  Zoning data is raw and county-specific. BPD collects the zoning code exactly as the county reports it but does not standardize it across counties. A code of `A-1` means different things in different counties. Cross-county zoning comparisons require your own normalization layer.
</Warning>

### Legal description

| Field           | Description                  |
| --------------- | ---------------------------- |
| `legal`         | Legal description            |
| `legal_2`       | Additional legal description |
| `legal_3`       | Additional legal description |
| `plat`          | Plat name                    |
| `book` / `page` | Deed book and page           |
| `block` / `lot` | Block and lot number         |
| `unit_number`   | Unit number                  |
| `plss_section`  | PLSS section                 |
| `plss_township` | PLSS township                |
| `plss_range`    | PLSS range                   |

### Stack & parcel identity

| Field            | Description                                               |
| ---------------- | --------------------------------------------------------- |
| `bpd_uuid`       | Unique BPD identifier for this parcel record              |
| `bpd_stack_uuid` | Groups parcels that share the same geometry (e.g. condos) |
| `alt_parcel_id`  | Alternate parcel ID                                       |
| `account_number` | Tax account number                                        |

***

## Enriched external data

In addition to county assessor data, each parcel is enriched with several external datasets.

### USDA Cropland Data Layer (CDL)

| Field                   | Description                                                             |
| ----------------------- | ----------------------------------------------------------------------- |
| `cdl_majority_category` | Dominant crop or land cover type (e.g. `Corn`, `Soybeans`, `Developed`) |
| `cdl_majority_value`    | Numeric USDA CDL category code                                          |
| `cdl_majority_percent`  | Percentage of parcel area covered by the majority CDL category          |

The CDL is updated annually by USDA and covers all US agricultural land. Useful for filtering parcels by crop type or identifying agricultural versus developed land at scale.

### Elevation

| Field       | Description                                  |
| ----------- | -------------------------------------------- |
| `elevation` | Centroid elevation in meters above sea level |

### Adjacent acreage

| Field                        | Description                                      |
| ---------------------------- | ------------------------------------------------ |
| `adjacent_acreage_sameowner` | Total contiguous acreage owned by the same owner |

Useful for identifying large contiguous landholdings that may be split across multiple parcel records.

### FEMA flood zones

| Field                     | Description                                        |
| ------------------------- | -------------------------------------------------- |
| `fema_flood_zone`         | FEMA flood zone designation (e.g. `AE`, `X`, `VE`) |
| `fema_flood_zone_subtype` | Flood zone subtype where available                 |
| `fema_flood_zone_raw`     | Raw FEMA FIRM data object for the parcel           |

Zone `X` indicates minimal flood hazard. Zones beginning with `A` or `V` indicate Special Flood Hazard Areas (SFHA) where federal flood insurance may be required.

### Building footprints

When you request parcel data with `include_buildings: true`, each parcel includes a `buildings` array. Each entry represents one structure on the parcel.

| Field              | Type    | Description                                        |
| ------------------ | ------- | -------------------------------------------------- |
| `build_id`         | string  | Unique building identifier                         |
| `height`           | number  | Building height in meters                          |
| `height_variance`  | number  | Uncertainty in the height estimate                 |
| `estimated_floors` | integer | Estimated number of floors                         |
| `geom`             | object  | Building footprint geometry (GeoJSON MultiPolygon) |

A parcel may have zero or more buildings. A null `buildings` field means `include_buildings` was not requested, not that no buildings exist.

### Additional county-specific fields

| Field        | Description                                                                  |
| ------------ | ---------------------------------------------------------------------------- |
| `additional` | JSON object containing county-specific fields not mapped to standard columns |

***

## Null values

A null value on any field means the county did not publish that data. BPD does not estimate, impute, or infer missing values.

This is by design: a null `sale_price` means no sale was recorded by the county, not that the parcel has never sold. A null `zoning` means the county GIS did not include zoning in its parcel dataset.

**BPD retains all parcel records regardless of data completeness.** Some competitors remove parcels that fall below a minimum field threshold, which makes their counts appear lower while BPD's count reflects the true universe of recorded parcels.
