Mecklenburg County, NC Parcels & GIS Data

Mecklenburg County, NC parcel data: 440,237 property records with owner names, assessed values, land use, acreage, and addresses. Preview and download.

Land Records publishes Mecklenburg County, North Carolina parcel data covering 440,237 property records.

This page documents parcel-level coverage for Mecklenburg 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 Mecklenburg County are listed in the attribute-coverage table below. Preview the data in the interactive explorer, or download the complete Mecklenburg County property dataset.

Mecklenburg County is a southwestern county in the U.S. state of North Carolina. As of the 2020 census, the population was 1,115,482, making it the second-most populous county in North Carolina. Its county seat is Charlotte, the state's largest municipality.

FIPS 37119

Official county website: https://www.mecknc.gov

The FIPS code for Mecklenburg County is 37119.

YorkLancasterCabarrusUnionGastonLincolnIredellMecklenburg
Hosted Web API$200/mo

Attribute coverage

Mecklenburg County contains 440,237 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%440,237
parcelid100%440,065
parcelid2100%440,209
ogparcelid100%440,065
ogparcelid2100%440,209
parentid<0.1%0
stackid<0.1%0
geoid100%440,237
statefp100%440,237
countyfp100%440,237
countyname100%440,237
cousubfp100%440,237
cousubname100%440,237
tractce100%440,237
tractname100%440,237
taxacctnum52.7%231,994
taxyear100%440,237
taxdistrict96.2%423,323
usecode93.3%410,838
usedesc98.0%431,442
zoningcode99.9%439,715
zoningdesc58.0%255,533
numbldgs100%440,237
numunits86.4%380,183
yearbuilt84.2%370,842
numfloors0.8%3,446
bldgsqft1.5%6,623
bedrooms1.5%6,623
halfbaths1.5%6,623
fullbaths1.5%6,623
imprvalue96.0%422,804
landvalue95.9%422,219
agvalue32.2%141,896
totalvalue96.1%423,082
taxacres89.9%395,605
calcarea100%440,237
saleamt62.1%273,310
saledate95.9%422,064
ownertype99.4%437,672
ownername99.4%437,608
owneraddr99.3%437,337
ownercity99.4%437,432
ownerstate99.4%437,433
ownerzip99.4%437,422
parceladdr98.9%435,221
parcelcity99.3%437,116
parcelstate100%440,237
parcelzip100%440,237
legaldesc94.7%417,082
township<0.1%0
section<0.1%0
qtrsection<0.1%0
range<0.1%0
plssdesc<0.1%0
book89.4%393,715
page89.4%393,715
block89.4%393,527
lot89.4%393,692
parceltype0.4%1,614
accesstype0.7%3,236
iucnclass0.5%2,304
placename7.6%33,652
placetype7.5%33,018
firmid100%440,214
firmdate100%440,214
fldzone100%440,214
zonesubty99.4%437,424
staticbfe<0.1%106
elevmin100%440,067
elevmax100%440,067
elevavg100%440,067
fireplaces<0.1%0
heating1.5%6,591
heatfuel1.5%6,591
cooling1.5%6,591
foundation1.5%6,590
roofcover1.5%6,591
siding1.5%6,590
bldgtype<0.1%0
naicscode9.3%40,981
frsid<0.1%0
dfrurl<0.1%0
caapermit<0.1%0
cwapermit<0.1%0
rcrapermit<0.1%0
updated100%440,237
centroidx100%440,237
centroidy100%440,237
surfpointx100%440,237
surfpointy100%440,237
geom100%440,237
extras100%440,237
ownerlist87.2%383,727
placefp92.7%408,071
zoningurl18.0%79,399
lbcsactivity99.5%438,116
lbcsfunction98.9%435,505
lbcstype99.7%439,079
lbcscharacter99.5%438,053
lbcsownership99.4%437,803
sourceurl<0.1%1

Schema mapping

How source columns from the acquired Mecklenburg 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 — Mecklenburg County, North Carolina (37119) 2 entities · most recent acquisition per entity · generated 2026-10-10 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 geom code 6 cols ⇢ geom zoningcode 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 100% elevmin 100% elevmax 100% elevavg s_fld_haz_ar · FEMA NFHL 100% fldzone 99.4% zonesubty 0.0% staticbfe 100% firmdate 100% firmid supplemented · derived / other pipelines 52.7% taxacctnum 58.0% zoningdesc 86.4% numunits 62.1% saleamt 89.4% book 89.4% page 89.4% block 89.4% lot 87.2% ownerlist 92.7% placefp 100% lbcsactivity 98.9% lbcsfunction 100% lbcstype 100% lbcscharacter 99.4% lbcsownership lrid parcelid parcelid2 ogparcelid ogparcelid2 geoid statefp countyfp countyname cousubfp cousubname tractce tractname taxacctnum taxyear taxdistrict usecode usedesc zoningcode zoningdesc numbldgs numunits yearbuilt imprvalue landvalue totalvalue taxacres calcarea saleamt saledate ownertype ownername owneraddr ownercity ownerstate ownerzip parceladdr parcelcity parcelstate parcelzip legaldesc book page block lot firmid firmdate fldzone zonesubty staticbfe elevmin elevmax elevavg updated centroidx centroidy surfpointx surfpointy geom extras ownerlist placefp lbcsactivity lbcsfunction lbcstype lbcscharacter lbcsownership publish.parcel_layer columns not fed by these sources (34) — empty or below 50% fill in this county parentid, stackid, numfloors, bldgsqft, bedrooms, halfbaths, fullbaths, agvalue, township, section, qtrsection, range, plssdesc, parceltype accesstype, iucnclass, placename, placetype, fireplaces, heating, heatfuel, cooling, foundation, roofcover, siding, bldgtype, naicscode, frsid dfrurl, caapermit, cwapermit, rcrapermit, zoningurl, 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 2 mapped · 1 transformed · 6 kept in extras · 7 unmapped (NULL) SOURCE COLUMNS HARMONIZED → ZONING geom code geom zoningcode NULLIF(TRIM(code::text), '')::text extras · 6 source columns preserved as json id, name, phone, email, staff, globalid extras not present in source — filled with NULL (7) zoningdesc, zoningtype, ordinance, setbacks, restrictions, notes, sourceurl

Neighboring counties

Parcel data for counties bordering Mecklenburg County:

Frequently asked questions

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

Land Records publishes a Mecklenburg 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 Mecklenburg County, NC dataset as a GeoPackage or CSV.

How many parcels are in Mecklenburg County, NC?

The current dataset contains 440,237 parcel records for Mecklenburg County, NC, each with its boundary geometry and assessor attributes.

What is the FIPS code for Mecklenburg County, NC?

The FIPS code for Mecklenburg County, NC is 37119.

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

Each Mecklenburg 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 Mecklenburg County, NC parcel data free?

You can preview Mecklenburg 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 Mecklenburg County, NC have an official GIS or property records website?

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

On this page