A lightweight Python prototype for parcel-level zoning analysis, site study generation, and early-stage feasibility workflows.
This project models zoning rules explicitly and builds a simple pipeline:
parcel → zoning rules → site study → feasibility → underwriting
-
Structured zoning model
Represents parcels, zoning districts, and overlays with explicit constraints (uses, height, units, lot size, parking) -
Knowledge graph representation
Encodes relationships like:Parcel → has_zoning → RMURMU → allows_use → multi_family
-
Site study generation
Recommends a feasible development type based on zoning rules -
Feasibility checks
Validates use, lot size, unit count, and parking requirements -
Lightweight underwriting
Estimates revenue and profit for a proposed project
For a parcel:
- Address:
123 Main St - Zoning:
RMU - Overlay:
TOD - Lot size:
3200 sqft
The engine will:
- Build zoning relationships (knowledge graph)
- Recommend a development type (e.g., multifamily)
- Check feasibility against constraints
- Estimate basic financial outcomes
python zoning_engine.py=== KNOWLEDGE GRAPH ===
('123 Main St', 'has_zoning', 'RMU')
('123 Main St', 'has_overlay', 'TOD')
('RMU', 'max_height_ft', 70)
('RMU', 'max_units', 12)
('RMU', 'min_lot_sqft', 2500)
('RMU', 'parking_per_unit', 1.0)
('RMU', 'allows_use', 'single_family')
('RMU', 'allows_use', 'multi_family')
('RMU', 'allows_use', 'mixed_use')
('RMU', 'allows_use', 'live_work')
=== SITE STUDY ===
{'recommended_use': 'mixed_use', 'max_units': 12, 'max_height_ft': 70}
=== FEASIBILITY TEST ===
{'use_allowed': True, 'lot_size_ok': True, 'number_of_units_ok': True, 'parking_required': 12.0}
=== UNDERWRITING ===
{'revenue': 3600000, 'profit': 1200000}