Build Philly Now

Data & Methodology

How we built this analysis. Every number on this site is traceable to a data source, a zoning code section, or a published study. Download the workbook to check our math.

Zoning Rules Engine — Phase 1.5

The buildability estimates on this site and in the BPN dashboard are produced by our zoning rules engine. Base district calculations, CMX-1 adjacency rules, building footprint data, utilization ratios, and the /MIN overlay (via difference-in-differences deterrent modeling) are all integrated. Results may still be imprecise for parcels with multiple overlapping overlays (/NE, /NCO, etc.), other adjacency-dependent districts (RM-2, SP-*), or nonconforming structures. Phase 2 will add full overlay stacking and the remaining adjacency rules.

Data Sources

Philadelphia Parcel Data

Source: Office of Property Assessment (OPA)
Via: BPN Property Data Dashboard

545,796 parcels with zoning classifications, property categories, building descriptions, assessed market values (pre-exemption), and transit proximity flags (500 ft, 1,320 ft, 2,640 ft buffers around MFL and frequent bus stations).

Building Footprints

Source: OpenDataPhilly / L&I
Via: BPN Pipeline (PostGIS spatial join)

Actual lot areas and building footprints joined to parcels, replacing average lot size estimates. Used for building envelope calculations and utilization ratios.

CMX-1 Adjacency

Source: PostGIS spatial analysis
Via: BPN Pipeline (ST_Relate shared-edge computation)

10,234 adjacency relationships for 4,894 CMX-1 parcels. 3,712 high-confidence parcels (71%) with clear non-CMX-1 abutting neighbor per §14-203(1). Most restrictive adjacent district standards applied.

Zoning Code Standards

Source: Philadelphia Zoning Code, Title 14
Via: BPN Zoning Rules Engine (13 JSON rule files)

Dimensional standards tables 14-701-1 through 14-701-4. District-level max height, FAR, lot coverage, setbacks, and density rules for all RSA, RSD, RTA, RM, CMX, and RMX districts.

Construction Cost Thresholds

Source: Eriksen & Orlando (2022)
Via: "Returns to Scale in Residential Construction," Real Estate Economics

Philadelphia-specific data: $166/sqft (wood frame, 1-3 stories), $171/sqft (wood frame, 4-7 stories), $216/sqft (steel/concrete, 8+ stories). 32% cost spike at the 7→8 story threshold.

Transit Station Data

Source: BPN Property Data Dashboard
Via: L&I permit records (2020-2025)

Housing units permitted within station catchment areas, aggregated by station. Demonstrates existing developer interest and market demand near transit.

Parker TOC Bills

Source: Philadelphia City Council
Via: Bill 260133 (HOME II), Bill 250825, Bill 260336, and related legislation

13 MFL stations, 1,320 ft radius, eligible zoning categories, density and FAR bonus structures, parking reductions, and excluded zones.

The Zoning Rules Engine

BPN built a zoning rules engine that implements the Philadelphia Zoning Code dimensional standards for computing maximum building capacity per parcel. The engine processes each parcel through these steps:

1
Parse Base District
Normalize zoning code (e.g., 'RSA-5', 'CMX-3') and classify into residential, commercial, or mixed-use.
2
Look Up Dimensional Standards
Match to Tables 14-701-1 through 14-701-4 for max height, FAR, lot coverage, and setbacks.
3
Resolve CMX-1 Adjacency
For CMX-1 parcels, compute abutting neighbors via PostGIS shared-edge analysis (§14-203(1)). Apply most restrictive adjacent district standards.
4
Compute Building Envelope
Calculate max footprint from actual lot area (building footprints) and max GFA from FAR or height × footprint.
5
Apply TOC Overlay
If in /TOC: +50% density (CMX-1/2/2.5, RM-1), +30% FAR (CMX-3/4/5, RMX-3), height to 45ft, parking reduction.
6
Compute Dwelling Units
Divide max GFA by 750 sqft average unit size. Where available, use actual permit unit counts or L&I certificate parsing.
7
Apply Cost Cliff
Cap at 7 stories unless FAR ≥ 800% (justifies Type I steel/concrete). CMX-5 exempt — already building 12+.
8
Apply MIN Deterrent
For density zones ≥10 units in CMX-3/4/5/RMX-3: FAR bonus blocked by §14-513(5)(a)(.2). Other zones: 0.44 behavioral deterrent from DiD analysis.

Key Assumptions

All assumptions are documented in the downloadable workbook.
AssumptionValueRationale
Average unit size750 sqftConservative for multi-family; actual range 500-1,200 sqft
Average lot sizesVaries by districtRM-1: 1,200 / CMX-2: 2,000 / CMX-3: 8,000 / CMX-5: 25,000 sqft
Redevelopment rate5% of candidates/yearConsistent with observed rates in transit-proximate Philly neighborhoods
Cost cliff threshold8 storiesType V/III wood → Type I steel/concrete (32% cost spike)
CMX-5 cliff exemptionYesAlready building 12+ stories at 1,200%+ FAR; bonus is pure gain
Near-term candidatesVacant + parking + ≤33% utilizedAssessed market value (pre-exemption), OPA category codes, and building descriptions
Floor-to-floor height10 ft (residential)Industry standard for story count derivation
TOC density bonus+50% unitsPer HOME II §14-513(4)(a) for CMX-1/2/2.5, RM-1
TOC FAR bonus+30%Per HOME II §14-513(5)(a)(.2) for CMX-3/4/5, RMX-3 (except /MIN)
Mixed-income bonus+25% units (moderate)Per §14-702(7) Table 14-702-5; additive, not compounding

Limitations

Soft site classification uses assessed market value
Tax-exempt properties (churches, government) now correctly excluded. Previously used taxable_building which missed exempt properties with real buildings.
Resolved
Remaining overlay stacking not modeled
/MIN deterrent modeled via DiD. /NE, /NCO, and other overlays not yet accounted for.
Phase 2
Adjacency rules for non-CMX-1 districts
RM-2, IRMX/ICMX, SP-INS, SP-CIV, and other adjacency-dependent districts not yet computed.
Phase 2
Building utilization estimated from descriptions
Story counts parsed from OPA building codes, supplemented by building footprint data. Actual unit counts from permits where available.
Improving
CMX-1 low-confidence parcels (29%)
1,543 CMX-1 parcels in all-CMX-1 blocks have circular adjacency references. Yields not computed for these.
Policy gap
Nonconforming structures
Existing buildings that exceed current zoning limits are not flagged. Utilization ratios may exceed 100%.
Phase 2

Open for Review

BPN’s zoning rules engine source code and all 13 JSON rule files (covering the full Philadelphia Zoning Code Title 14) are available for review. We welcome corrections, improvements, and questions. Contact us at jon@buildphillynow.org.

Check Our Math

Download the workbook. Review the assumptions. If we got something wrong, tell us — we'll fix it.

Back to Overview