Madison County, NC Parcels & GIS Data

Madison County, NC parcel data: 21,908 property records with owner names, assessed values, land use, acreage, and addresses. Preview and download.

Land Records publishes Madison County, North Carolina parcel data covering 21,908 property records.

This page documents parcel-level coverage for Madison County, North Carolina. Each parcel record carries its boundary polygon (GIS geometry) along with attributes such as the parcel ID/APN, owner name and mailing address, situs (property) address, assessed land and improvement values, acreage, land-use and zoning codes, year built, and most recent sale price and date. Exact fill rates for Madison County are listed in the attribute-coverage table below. Preview the data in the interactive explorer, or download the complete Madison County property dataset.

Madison County is a county located in the U.S. state of North Carolina. As of the 2020 census, the population was 21,193. Its county seat is Marshall.

FIPS 37115

Official county website: http://www.madisoncountync.org

The FIPS code for Madison County is 37115.

HaywoodCockeYanceyBuncombeUnicoiGreeneMadison
Hosted Web API$200/mo

Attribute coverage

Madison County contains 21,908 parcels in the current dataset. Column coverage is the percentage of those parcels for which the attribute is populated (non-NULL). For the LBCS columns, only real classifications count: the to-be-determined and not-applicable placeholder codes are excluded.

ColumnCoverageRecords populated
lrid100%21,908
parcelid99.2%21,728
parcelid299.0%21,696
ogparcelid99.2%21,728
ogparcelid299.0%21,692
parentid<0.1%0
stackid<0.1%0
geoid100%21,908
statefp100%21,908
countyfp100%21,908
countyname100%21,908
cousubfp100%21,908
cousubname100%21,908
tractce100%21,908
tractname100%21,908
taxacctnum<0.1%0
taxyear100%21,908
taxdistrict96.5%21,152
usecode96.1%21,051
usedesc95.2%20,860
zoningcode97.9%21,454
zoningdesc0.1%20
numbldgs100%21,908
numunits59.0%12,936
yearbuilt74.9%16,406
numfloors75.0%16,423
bldgsqft<0.1%0
bedrooms<0.1%0
halfbaths<0.1%0
fullbaths<0.1%0
imprvalue100%21,907
landvalue100%21,907
agvalue77.1%16,896
totalvalue100%21,907
taxacres96.5%21,140
calcarea100%21,908
saleamt<0.1%0
saledate<0.1%0
ownertype94.1%20,609
ownername94.1%20,609
owneraddr94.0%20,600
ownercity90.4%19,802
ownerstate90.4%19,802
ownerzip96.4%21,116
parceladdr96.0%21,036
parcelcity1.8%403
parcelstate100%21,908
parcelzip100%21,908
legaldesc18.8%4,126
township<0.1%0
section<0.1%0
qtrsection<0.1%0
range<0.1%0
plssdesc<0.1%0
book<0.1%0
page<0.1%0
block<0.1%0
lot<0.1%0
parceltype0.7%155
accesstype1.8%393
iucnclass1.3%287
placename4.2%917
placetype4.1%888
firmid100%21,899
firmdate100%21,899
fldzone100%21,899
zonesubty96.6%21,164
staticbfe<0.1%0
elevmin98.5%21,569
elevmax98.5%21,569
elevavg98.5%21,569
fireplaces<0.1%0
heating<0.1%0
heatfuel<0.1%0
cooling<0.1%0
foundation<0.1%0
roofcover<0.1%0
siding<0.1%0
bldgtype<0.1%0
naicscode13.2%2,902
frsid<0.1%0
dfrurl<0.1%0
caapermit<0.1%0
cwapermit<0.1%0
rcrapermit<0.1%0
updated100%21,908
centroidx100%21,908
centroidy100%21,908
surfpointx100%21,908
surfpointy100%21,908
geom100%21,908
extras100%21,908
ownerlist77.1%16,887
placefp9.5%2,081
zoningurl97.9%21,453
lbcsactivity97.7%21,408
lbcsfunction95.5%20,930
lbcstype98.4%21,568
lbcscharacter99.2%21,722
lbcsownership94.4%20,677
sourceurl<0.1%0

Schema mapping

How source columns from the acquired Madison County GIS layers map into the harmonized entity schemas and assemble into the published parcel table, alongside supplemented fields (elevation, flood zone) and deterministic columns.

Schema mapping — Madison County, North Carolina (37115) 2 entities · most recent acquisition per entity · generated 2026-10-17 direct column transformed (expression) geometry extras json supplemented determined ALL ENTITIES → FINAL PARCEL SCHEMA Harmonized entity columns assemble into publish.parcel_layer — matched by column name. Supplemented fields show their fill rate in this county. SOURCE COLUMNS HARMONIZED ENTITIES PUBLISH.PARCEL_LAYER PARCEL parno altparno parusecode parusecd2 parusedesc parusedsc2 struct structyear improvval landval parval recareatx recareano gisacres saledate ownname ownfrst ownlast ownname2 mailadd maddpref maddrno maddstname maddstr maddstsuf maddsttyp mcity mstate mzip siteadd saddpref saddno saddstname saddstr saddstsuf saddsttyp scity sstate stname szip legdecfull revisedate geom cntyname munit sunit multistruc saledatetx parvaltype owntype sourceref sourcedate sourcedatx subdivisio nparno cntyfips stfips stcntyfips gnisid sourceagnt transfdate revdatetx reviseyear mapref subowntype subsurfown structno presentval st_area_shape_ st_perimeter_shape_ parcelid parcelid2 usecode usedesc numbldgs yearbuilt imprvalue landvalue totalvalue taxacres saledate ownername owneraddr ownercity ownerstate ownerzip parceladdr parcelcity parcelstate parcelzip legaldesc updated geom taxdistrict extras ZONING zoning comments geom name createdbyr retiredbyr statedarea statedar_1 calculated misclosera misclosedi isseed created_us created_da last_edite last_edi_1 globalid validation area perimeter parcels_ parcels_id pin pinsize totalacres acresize parceltype pin4 cacres subdivisio edit_date plat_book plat_book_ platbookty taxyear longitude_ latitude_y pindbl globalid_2 zoningcode notes geom extras determined · ground truth 100% lrid 100% geoid 100% statefp 100% countyfp 100% countyname 100% cousubfp 100% cousubname 100% tractce 100% tractname 100% taxyear geom · derived from geometry geom dem.us_1m · USGS 1m DEM 98.5% elevmin 98.5% elevmax 98.5% elevavg s_fld_haz_ar · FEMA NFHL 100% fldzone 96.6% zonesubty 100% firmdate 100% firmid supplemented · derived / other pipelines 59.0% numunits 75.0% numfloors 77.1% agvalue 77.1% ownerlist 97.9% zoningurl 97.7% lbcsactivity 95.5% lbcsfunction 98.4% lbcstype 99.2% lbcscharacter 94.4% lbcsownership lrid parcelid parcelid2 ogparcelid ogparcelid2 geoid statefp countyfp countyname cousubfp cousubname tractce tractname taxyear taxdistrict usecode usedesc zoningcode numbldgs numunits yearbuilt numfloors imprvalue landvalue agvalue totalvalue taxacres calcarea saledate ownertype ownername owneraddr ownercity ownerstate ownerzip parceladdr parcelcity parcelstate parcelzip legaldesc firmid firmdate fldzone zonesubty elevmin elevmax elevavg updated centroidx centroidy surfpointx surfpointy geom extras ownerlist zoningurl lbcsactivity lbcsfunction lbcstype lbcscharacter lbcsownership publish.parcel_layer columns not fed by these sources (40) — empty or below 50% fill in this county parentid, stackid, taxacctnum, zoningdesc, bldgsqft, bedrooms, halfbaths, fullbaths, saleamt, township, section, qtrsection, range, plssdesc book, page, block, lot, parceltype, accesstype, iucnclass, placename, placetype, staticbfe, fireplaces, heating, heatfuel, cooling, foundation roofcover, siding, bldgtype, naicscode, frsid, dfrurl, caapermit, cwapermit, rcrapermit, placefp, sourceurl PARCEL 25 mapped · 21 transformed · 30 unmapped (NULL) SOURCE COLUMNS HARMONIZED → PARCEL parno altparno parusecode parusecd2 parusedesc parusedsc2 struct structyear improvval landval parval recareatx recareano gisacres saledate ownname ownfrst ownlast ownname2 mailadd maddpref maddrno maddstname maddstr maddstsuf maddsttyp mcity mstate mzip siteadd saddpref saddno saddstname saddstr saddstsuf saddsttyp scity sstate stname szip legdecfull revisedate geom cntyname munit sunit multistruc saledatetx parvaltype owntype sourceref sourcedate sourcedatx subdivisio nparno cntyfips stfips stcntyfips gnisid sourceagnt transfdate revdatetx reviseyear mapref subowntype subsurfown structno presentval st_area_shape_ st_perimeter_shape_ parcelid NULLIF(TRIM(parno), '')::text parcelid2 NULLIF(TRIM(altparno), '')::text usecode COALESCE( NULLIF(TRIM(parusecode), '')::text, NULLIF(TRIM(parus… usedesc COALESCE( NULLIF(TRIM(parusedesc), '')::text, NULLIF(TRIM(parus… numbldgs CASE WHEN UPPER(TRIM(struct)) = 'Y' THEN '1'::text WHEN UPPER(T… yearbuilt NULLIF(structyear, 0)::text imprvalue landvalue totalvalue taxacres COALESCE( NULLIF(TRIM(recareatx), '')::text, CASE WHEN recarean… saledate CASE WHEN saledate IS NOT NULL AND saledate > 0 THEN to_timesta… ownername NULLIF(TRIM(concat_ws('; ', COALESCE( NULLIF(TRIM(ownname), '')… owneraddr COALESCE( NULLIF(TRIM(mailadd), '')::text, NULLIF(TRIM(concat_w… ownercity NULLIF(TRIM(mcity), '')::text ownerstate NULLIF(TRIM(mstate), '')::text ownerzip NULLIF(TRIM(mzip), '')::text parceladdr COALESCE( NULLIF(TRIM(siteadd), '')::text, NULLIF(TRIM(concat_w… parcelcity NULLIF(TRIM(scity), '')::text parcelstate COALESCE( NULLIF(TRIM(sstate), '')::text, NULLIF(TRIM(stname), … parcelzip NULLIF(TRIM(szip), '')::text legaldesc NULLIF(TRIM(legdecfull), '')::text updated CASE WHEN revisedate IS NOT NULL AND revisedate > 0 THEN to_tim… geom taxdistrict NULLIF(TRIM(cntyname), '')::text extras (json_build_object( 'munit', munit::text, 'sunit', sunit::text,… not present in source — filled with NULL (30) taxacctnum, taxyear, zoningcode, zoningdesc, numunits, numfloors, bldgsqft, bedrooms, halfbaths, fullbaths, agvalue, saleamt, township, section qtrsection, range, plssdesc, book, page, block, lot, sourceurl, parentid, heatfuel, fireplaces, heating, cooling, foundation, roofcover, siding ZONING 4 mapped · 3 transformed · 6 unmapped (NULL) SOURCE COLUMNS HARMONIZED → ZONING zoning comments geom name createdbyr retiredbyr statedarea statedar_1 calculated misclosera misclosedi isseed created_us created_da last_edite last_edi_1 globalid validation area perimeter parcels_ parcels_id pin pinsize totalacres acresize parceltype pin4 cacres subdivisio edit_date plat_book plat_book_ platbookty taxyear longitude_ latitude_y pindbl globalid_2 zoningcode NULLIF(TRIM(zoning), '')::text notes NULLIF(TRIM(comments), '')::text geom extras ( json_build_object( 'name', name::text, 'createdbyr', createdb… not present in source — filled with NULL (6) zoningdesc, zoningtype, ordinance, setbacks, restrictions, sourceurl

Neighboring counties

Parcel data for counties bordering Madison County:

Frequently asked questions

Where can I find Madison County, NC parcel and GIS data?

Land Records publishes a Madison County, NC parcel dataset in which every parcel carries its boundary polygon (GIS geometry) along with ownership, assessed value, land use, acreage, and sale history. Preview it in the interactive explorer on this page, or download the full Madison County, NC dataset as a GeoPackage or CSV.

How many parcels are in Madison County, NC?

The current dataset contains 21,908 parcel records for Madison County, NC, each with its boundary geometry and assessor attributes.

What is the FIPS code for Madison County, NC?

The FIPS code for Madison County, NC is 37115.

What information does each Madison County, NC parcel record include?

Each Madison County, NC parcel record includes the parcel ID/APN, owner name and mailing address, situs (property) address, assessed land and improvement values, acreage, land-use and zoning codes, year built, and the most recent sale price and date — plus the parcel boundary polygon. Per-attribute fill rates are listed in the coverage table on this page.

Is Madison County, NC parcel data free?

You can preview Madison County, NC parcels for free in the interactive explorer. The complete dataset is available as a one-time download or through the nationwide parcel web service; see the download options on this page for current pricing.

Does Madison County, NC have an official GIS or property records website?

Yes — the official Madison County, NC government website is linked in the county details above. Land Records standardizes Madison County, NC assessor and recorder records into a single nationwide parcel schema with GIS boundary geometry.

On this page