Montgomery County, PA Parcels & GIS Data

Montgomery County, PA parcel data: 310,006 property records with owner names, assessed values, land use, acreage, and addresses. Preview and download.

Land Records publishes Montgomery County, Pennsylvania parcel data covering 310,006 property records.

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

Montgomery County, colloquially referred to as Montco, is in the Commonwealth of Pennsylvania. As of the 2020 census, the population of the county was 856,553, making it the third-most populous county in Pennsylvania after Philadelphia and Allegheny counties and the most populous county in Pennsylvania without a major city.

FIPS 42091

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

The FIPS code for Montgomery County is 42091.

PhiladelphiaBerksBucksLehighChesterDelawareMontgomery
Hosted Web API$200/mo

Attribute coverage

Montgomery County contains 310,006 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%310,006
parcelid100%309,966
parcelid297.7%302,760
ogparcelid100%309,959
ogparcelid2100%309,923
parentid<0.1%0
stackid<0.1%0
geoid100%310,006
statefp100%310,006
countyfp100%310,006
countyname100%310,006
cousubfp100%310,006
cousubname100%310,006
tractce100%310,006
tractname100%310,006
taxacctnum<0.1%0
taxyear100%310,006
taxdistrict97.5%302,203
usecode98.0%303,804
usedesc18.9%58,511
zoningcode99.9%309,668
zoningdesc99.9%309,563
numbldgs100%310,006
numunits92.4%286,440
yearbuilt99.0%306,859
numfloors90.8%281,361
bldgsqft97.5%302,216
bedrooms85.5%264,909
halfbaths57.4%177,833
fullbaths85.4%264,713
imprvalue96.5%299,085
landvalue96.5%299,085
agvalue97.5%302,247
totalvalue99.7%309,107
taxacres100%309,855
calcarea100%310,006
saleamt99.7%309,107
saledate96.5%299,071
ownertype94.3%292,182
ownername97.5%302,260
owneraddr97.5%302,210
ownercity97.5%302,120
ownerstate<0.1%0
ownerzip97.4%302,057
parceladdr98.0%303,918
parcelcity<0.1%44
parcelstate100%310,006
parcelzip100%310,006
legaldesc95.4%295,807
township<0.1%0
section<0.1%0
qtrsection<0.1%0
range<0.1%0
plssdesc<0.1%0
book97.5%302,244
page97.5%302,244
block97.5%302,257
lot56.4%174,934
parceltype0.7%2,243
accesstype2.0%6,154
iucnclass0.5%1,627
placename6.0%18,727
placetype6.0%18,501
firmid100%310,006
firmdate100%310,006
fldzone100%310,006
zonesubty98.3%304,607
staticbfe<0.1%5
elevmin100%309,896
elevmax100%309,896
elevavg100%309,896
fireplaces48.3%149,696
heating85.4%264,769
heatfuel85.4%264,771
cooling<0.1%0
foundation85.4%264,760
roofcover<0.1%0
siding<0.1%0
bldgtype5.1%15,749
naicscode8.5%26,309
frsid<0.1%0
dfrurl<0.1%0
caapermit<0.1%0
cwapermit<0.1%0
rcrapermit<0.1%0
updated100%310,006
centroidx100%310,006
centroidy100%310,006
surfpointx100%310,006
surfpointy100%310,006
geom100%310,006
extras100%310,006
ownerlist83.8%259,641
placefp48.8%151,274
zoningurl92.4%286,480
lbcsactivity96.5%299,015
lbcsfunction96.5%299,003
lbcstype95.1%294,817
lbcscharacter99.0%307,046
lbcsownership98.0%303,954
sourceurl<0.1%0

Schema mapping

How source columns from the acquired Montgomery 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 — Montgomery County, Pennsylvania (42091) 3 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 taxpin alternateid calcacreage last_edited_date geom 5 cols ⇢ parcelid parcelid2 taxacres updated geom extras REFTABLE parcel alt_id land_use zoning liv_units year_built bedrooms half_baths baths farmland total_assessment land_acres consideration sale_date own1 own2 addr1 addr2 addr3 E zip1_zip2 location1 loc_zip1_zip2 legal1 legal2 legal3 muni_code deed_book deed_page block lot_no loc_no loc_str loc_unitno nbhd structure stories yr_rem sfla condition style rm_tot frpl_open frpl_stack prefab_frpl heat basement extwall finbsmt_sf bsmt_car location2 total_appraisal assessmentmoney pool sch_dist geom fuel object_id parcel_number location_cd class util1 util2 util3 traffic roads1 roads2 unit prop_info_chgdate restrictions obyval asmt_chgdate careof own_info_chgdate subdivision frontft loc_add loc_dir loc_suf loc_suf2 loc_unitdesc legal_chgdate est_co_tax est_muni_tax est_sch_tax state_tax_stamps steb land_sf land_chgdate oby_chgdate degree_remodeled dwel_chgdate comm_area comm_nla use_type comm_bsmt comm_heat comm_air comm_yr_blt comm_units comm_identical park_cov park_uncov partition residual elev comm_chgdate prop_info_chgdate_1 assmt_chgdate_1 own_info_chgdate_1 legal_chgdate_1 sale_date_1 land_chdate_1 oby_chgdate_1 dwel_chgdate_1 comm_chgdate_1 landsf est_mccc_tax parcelid parcelid2 usecode zoningcode numunits yearbuilt bedrooms halfbaths fullbaths agvalue totalvalue taxacres saleamt saledate ownername owneraddr ownercity ownerzip parceladdr parcelzip legaldesc township book page block lot house_number road unit suburb bldgtype numfloors yearremodel livingarea bldgcondition architecture totalrooms fireplaces heating foundation extwall basementsqft garagestalls situsaddress appraisedvalue assessedvalue pool taxdistrict geom heatfuel extras ZONING zoning name url geom 1 cols ⇢ zoningcode zoningdesc sourceurl 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 100% elevmin 100% elevmax 100% elevavg s_fld_haz_ar · FEMA NFHL 100% fldzone 98.3% zonesubty 0.0% staticbfe 100% firmdate 100% firmid supplemented · derived / other pipelines 100% numbldgs 97.5% bldgsqft 96.5% imprvalue 96.5% landvalue 100% parcelstate 83.8% ownerlist 92.4% zoningurl 96.5% lbcsactivity 96.5% lbcsfunction 95.1% lbcstype 99.0% lbcscharacter 98.0% lbcsownership lrid parcelid parcelid2 ogparcelid ogparcelid2 geoid statefp countyfp countyname cousubfp cousubname tractce tractname taxyear taxdistrict usecode zoningcode zoningdesc numbldgs numunits yearbuilt numfloors bldgsqft bedrooms halfbaths fullbaths imprvalue landvalue agvalue totalvalue taxacres calcarea saleamt saledate ownertype ownername owneraddr ownercity ownerzip parceladdr parcelstate parcelzip legaldesc township book page block lot firmid firmdate fldzone zonesubty staticbfe elevmin elevmax elevavg fireplaces heating heatfuel foundation bldgtype updated centroidx centroidy surfpointx surfpointy geom extras ownerlist zoningurl lbcsactivity lbcsfunction lbcstype lbcscharacter lbcsownership sourceurl publish.parcel_layer columns not fed by these sources (25) — empty or below 50% fill in this county parentid, stackid, taxacctnum, usedesc, ownerstate, parcelcity, section, qtrsection, range, plssdesc, parceltype, accesstype, iucnclass placename, placetype, cooling, roofcover, siding, naicscode, frsid, dfrurl, caapermit, cwapermit, rcrapermit, placefp PARCEL 5 mapped · 1 transformed · 5 kept in extras · 49 unmapped (NULL) SOURCE COLUMNS HARMONIZED → PARCEL taxpin alternateid calcacreage last_edited_date geom parcelid parcelid2 taxacres updated CASE WHEN last_edited_date IS NULL THEN NULL::text ELSE to_time… geom extras · 5 source columns preserved as json parceltype, truecalculatedacres, created_user, created_date last_edited_user extras not present in source — filled with NULL (49) taxacctnum, taxyear, usecode, usedesc, zoningcode, zoningdesc, numbldgs, numunits, yearbuilt, numfloors, bldgsqft, bedrooms, halfbaths fullbaths, imprvalue, landvalue, agvalue, totalvalue, saleamt, saledate, ownername, owneraddr, ownercity, ownerstate, ownerzip, parceladdr parcelcity, parcelstate, parcelzip, legaldesc, township, section, qtrsection, range, plssdesc, book, page, block, lot, sourceurl, taxdistrict parentid, heatfuel, fireplaces, heating, cooling, foundation, roofcover, siding REFTABLE 51 mapped · 39 transformed · 71 unmapped (NULL) SOURCE COLUMNS HARMONIZED → REFTABLE parcel alt_id land_use zoning liv_units year_built bedrooms half_baths baths farmland total_assessment land_acres consideration sale_date own1 own2 addr1 addr2 addr3 E zip1_zip2 location1 loc_zip1_zip2 legal1 legal2 legal3 muni_code deed_book deed_page block lot_no loc_no loc_str loc_unitno nbhd structure stories yr_rem sfla condition style rm_tot frpl_open frpl_stack prefab_frpl heat basement extwall finbsmt_sf bsmt_car location2 total_appraisal assessmentmoney pool sch_dist geom fuel object_id parcel_number location_cd class util1 util2 util3 traffic roads1 roads2 unit prop_info_chgdate restrictions obyval asmt_chgdate careof own_info_chgdate subdivision frontft loc_add loc_dir loc_suf loc_suf2 loc_unitdesc legal_chgdate est_co_tax est_muni_tax est_sch_tax state_tax_stamps steb land_sf land_chgdate oby_chgdate degree_remodeled dwel_chgdate comm_area comm_nla use_type comm_bsmt comm_heat comm_air comm_yr_blt comm_units comm_identical park_cov park_uncov partition residual elev comm_chgdate prop_info_chgdate_1 assmt_chgdate_1 own_info_chgdate_1 legal_chgdate_1 sale_date_1 land_chdate_1 oby_chgdate_1 dwel_chgdate_1 comm_chgdate_1 landsf est_mccc_tax parcelid trim(parcel)::text parcelid2 usecode NULLIF(TRIM(land_use), '')::text zoningcode NULLIF(TRIM(zoning), '')::text numunits NULLIF(TRIM(liv_units), '')::text yearbuilt NULLIF(TRIM(year_built), '')::text bedrooms NULLIF(TRIM(bedrooms), '')::text halfbaths NULLIF(TRIM(half_baths), '')::text fullbaths NULLIF(TRIM(baths), '')::text agvalue NULLIF(TRIM(farmland), '')::text totalvalue taxacres saleamt saledate NULLIF(TRIM(sale_date), '')::text ownername NULLIF(TRIM(CONCAT_WS('; ', NULLIF(TRIM(own1), ''), NULLIF(TRIM… owneraddr NULLIF(TRIM(CONCAT_WS(', ', NULLIF(TRIM(addr1), ''), NULLIF(TRI… ownercity NULLIF(TRIM(regexp_replace(NULLIF(TRIM(regexp_replace(addr3, E'… ownerzip NULLIF(TRIM(zip1_zip2), '')::text parceladdr NULLIF(TRIM(location1), '')::text parcelzip NULLIF(TRIM(loc_zip1_zip2), '')::text legaldesc NULLIF(TRIM(CONCAT_WS('; ', NULLIF(TRIM(legal1), ''), NULLIF(TR… township NULLIF(TRIM(muni_code), '')::text book page block lot NULLIF(TRIM(lot_no), '')::text house_number NULLIF(TRIM(loc_no::text), '')::text road NULLIF(TRIM(loc_str), '')::text unit NULLIF(TRIM(loc_unitno), '')::text suburb NULLIF(TRIM(nbhd), '')::text bldgtype NULLIF(TRIM(structure), '')::text numfloors NULLIF(TRIM(stories), '')::text yearremodel NULLIF(TRIM(yr_rem), '')::text livingarea bldgcondition NULLIF(TRIM(condition), '')::text architecture NULLIF(TRIM(style), '')::text totalrooms NULLIF(TRIM(rm_tot), '')::text fireplaces CASE WHEN NULLIF(TRIM(frpl_open), '') IS NULL AND NULLIF(TRIM(f… heating NULLIF(TRIM(heat), '')::text foundation NULLIF(TRIM(basement), '')::text extwall NULLIF(TRIM(extwall), '')::text basementsqft garagestalls NULLIF(TRIM(bsmt_car), '')::text situsaddress NULLIF(TRIM(location2), '')::text appraisedvalue assessedvalue pool CASE WHEN NULLIF(TRIM(pool), '') IS NULL THEN NULL::text WHEN u… taxdistrict NULLIF(TRIM(sch_dist), '')::text geom heatfuel NULLIF(TRIM(fuel), '')::text extras ( json_build_object( 'object_id', object_id::text, 'parcel_numb… not present in source — filled with NULL (71) taxacctnum, taxyear, usedesc, zoningdesc, numbldgs, bldgsqft, imprvalue, landvalue, ownerstate, parcelcity, parcelstate, section, qtrsection range, plssdesc, zoningtype, zoningordinance, zoningsetbacks, zoningrestrictions, landusecode, landusedesc, lbcsdimension, lbcscode, house category, near, level, staircase, entrance, po_box, postcode, city_district, city, island, state_district, state, country_region, country world_region, bldgquality, cooling, attic, atticsqft, intwall, roofstyle, roofcover, roofheight, fsagpfeet, siding, framing, attgaragesqft detgaragesqft, boatlift, boatdock, boathouse, gazebo, irrigation, riprap, solarium, carport, greenhouse, openporch, enclporch, sauna, wooddeck hottub, patio, shed, workshop, sourceurl, parentid ZONING 4 mapped · 1 kept in extras · 5 unmapped (NULL) SOURCE COLUMNS HARMONIZED → ZONING zoning name url geom zoningcode zoningdesc sourceurl geom extras · 1 source columns preserved as json globalid extras not present in source — filled with NULL (5) zoningtype, ordinance, setbacks, restrictions, notes

Neighboring counties

Parcel data for counties bordering Montgomery County:

Frequently asked questions

Where can I find Montgomery County, PA parcel and GIS data?

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

How many parcels are in Montgomery County, PA?

The current dataset contains 310,006 parcel records for Montgomery County, PA, each with its boundary geometry and assessor attributes.

What is the FIPS code for Montgomery County, PA?

The FIPS code for Montgomery County, PA is 42091.

What information does each Montgomery County, PA parcel record include?

Each Montgomery County, PA 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 Montgomery County, PA parcel data free?

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

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

On this page