How we got every number on the map
Sources, equations, weights, assumptions and limitations behind the parcel scores and housing-type fits. Weights are value judgments, not data. Zoning is a simplified interpretation, so verify it with the Zoning Administrator.
How a parcel gets its numbers
134 datasets from City, County, WPRDC, Census, HUD, FEMA, EPA, USGS, PA agencies and OSM, pulled 2026-09-26/27.
Clip to Allegheny County, clean known traps, write map overlays and per-parcel indicator shards. No model involved.
53 indicators → 0–100 by percentile rank or fixed linear thresholds. 100 = a good place to build.
Open weights (a published JSON file) → sub-scores → 5 pillars → overall. Hazard gates cap Site Feasibility; deal-killers also multiply the overall.
Zoning use table (§911.02), current land use and deal-killer hazards multiply the overall score. Legality is read from code, never estimated.
A typed decision model rates physical fit per housing type from facts code already computed. Shown with its confidence.
Per housing type: red / yellow / green from pass/fail checks and a rough value-vs-cost screen. Never derived from the weighted score.
Gemini explains on-screen facts with citations. Sentences with numbers not found in the facts are dropped.
Who decides what
| Component | Kind | Decides | Never decides | If it fails |
|---|---|---|---|---|
| Pillar scorer (score.ts) | code | All five pillar scores, the overall score, hazard caps, zoning and availability multipliers | Anything not in pillars.config.json | n/a: pure function in the browser |
| Zoning gate (legal matrix + use table) | policy | Which approval pathway each housing type needs in each district | Whether a specific project will be approved | Unknown districts show "verify with the Zoning Administrator" |
| Jev site fit (15 housing types) | model | How well a housing type physically fits the lot, as a rubric level + probabilities + confidence | Legality, scores, any free text | Shown as unavailable; no fallback number is invented |
| Chat companion (Gemini) | llm | Wording of explanations; can call the rescore tool to show what a weight change does | Any score, legality, or number not present in the cited facts | Falls back to the screen's own notes |
The scoring equations
- every value in the reference set: all Allegheny County units in the source file (block groups, tracts, ZIPs), or all City parcels
- size of the reference set
- indicator score, rounded and clamped to 0–100
- raw value that scores 0 (e.g. 2,400 m to a supermarket)
- raw value that scores 100 (e.g. 400 m)
- indicator weight from the config (0 = shown as context, not scored)
- all indicators of sub-score k, and those with a value for this parcel; missing values are excluded, never filled
- minimum coverage: 0.5 by default; Demand requires 0.75
- sub-score weight (scored sub-scores only); a pillar without sub-scores is one implicit sub-score
- the pillar's gates whose conditions all hold for this parcel
- a ceiling such as 5 (half the lot in the floodway) or 50 (mostly 25%+ slope); cap 100 = warning only
- pillar weight (0–3 in the navbar Weights popover; published default 1)
- floor of 1 keeps a zero pillar from zeroing the whole product
- City 25th-percentile score for that pillar, used when it lacks data (and flagged): Demand 34 · Site Feasibility 70 · Affordability 42 · Access to Opportunity 58 · Climate & Environment 56
- multiplier for the easiest legal pathway among detached, townhouse, two-, three- and multi-unit homes, or for one type the user picks in the panel (§4)
- multiplier for what's on the lot now: vacant 1.0 … park, rail, right-of-way 0.05
- lowest overall factor among the fired deal-killer gates (floodway, sliver lot, mines), else 1 (§4)
- percentiles of the overall score O(ω′) across the draws, shown as the range in the parcel panel
Worked example
The weak Affordability pillar (30) pulls the geometric mean 3.4 points below the arithmetic one. That is the intended effect: strengths elsewhere only partly offset a real weakness.
The five pillars, indicator by indicator
Demand
Is there demand for new homes here? Household and job growth, low vacancy, an active sales market, rising rents and recent construction score high.
value Value judgment: Demand measures market strength (sales activity, low vacancy, new construction), so it correlates strongly (0.77) with the Reinvestment Fund market type that is otherwise kept at weight 0. At full weight it pulls the overall toward strong markets; Housing Need pulls toward high-need places. Lower Demand's weight to favor need.
| Indicator | Geo | Weight | Evidence | Normalization | Input | Why |
|---|---|---|---|---|---|---|
Household change, 2020 Census to ACS 2020–24 demand_household_growth | tract | 1 | observed | percentile ↑ vs. county units | table: allegheny_tract_household_growth_2020_2024.csv → hh_change_pct | Household growth is the core of HUD market-analysis demand. Weak signal: only 35 of 394 tracts change by more than the ACS margin of error, so it carries weight 1. Changes inside the ACS margin of error are treated as zero change. |
Home sales per 100 owner-occupied units, 2024–25 demand_sales_turnover | tract | 1.5 | observed | percentile ↑ vs. county units | table: derived_tract_turnover.csv → sales_per_100_owner_units | Arm's-length sales relative to the owner-occupied stock they come from. Dividing by all housing units measured homeownership share instead of market activity (round-1 review). Blank where a tract has fewer than 150 owner-occupied units. |
Residential vacancy (USPS) demand_low_vacancy | tract | 2 | observed | percentile ↓ vs. county units | area: usps-vacancy.geojson → res_vacancy_pct | Low vacancy means existing homes are being absorbed. Blank for tracts with fewer than 200 residential addresses. |
Job change, 2019 to 2023 demand_job_growth | block group | 0.5 | observed | percentile ↑ vs. county units | table: allegheny_jobs_demand_bg_2023.csv → jobs_change_pct | Employment growth drives household formation (LEHD LODES). Blank where a block group had fewer than 250 jobs in 2019, since small bases give meaningless growth rates. |
Rent growth, last 12 months (Zillow ZORI) demand_rent_growth | ZIP | 0 · context | observed | percentile ↑ vs. county units | area: market-zip.geojson → zori_yoy_pct | Context only (weight 0): 12-month ZIP rent change is lowest exactly where new supply lands, and it ran opposite to the rest of Demand (round-2 review). |
New homes permitted within 800 m, 2019–26 (log units) demand_new_construction | parcel | 1.5 | assumption | percentile ↑ vs. City parcels | sum_within within 800 m: pgh_new_residential_permits_classified.csv → units_guess (log1p) | Revealed demand: builders are building nearby. Counts homes, not permits, on a log scale so one 224-unit building counts more than one house but doesn't swamp everything, and includes apartment buildings, which the City files as 'Commercial'. Unit counts are parsed from permit text (assumption where missing: 1). Several permits on one parcel (phases, trades) count once, at the largest unit count. |
Market Value Analysis type (A strongest … J most distressed) demand_market_strength | block group | 0 · context | value | linear 1 → 0, 10 → 100 | area: market-mva.geojson → mva | Default weight 0: rewarding strong markets steers housing away from distressed neighborhoods. Available for users who choose to weigh it. |
Median home sale price, 2024–25 (census tract) demand_median_sale_price | tract | 0 · context | observed | percentile ↑ vs. county units | table: allegheny_tract_sales_2019_2025.csv → median_2024_2025 | Context only (weight 0): what homes nearby sell for, close to what an appraiser's comparable sales would show. It feeds the pencil check, not the score. Valid residential sales only; blank under 10 sales. |
Site Feasibility
Can this lot physically take new housing? Flooding, steep slopes, landslides, undermining and known lead service lines score low. Zoning legality is applied per housing type, not averaged in.
| Indicator | Geo | Weight | Evidence | Normalization | Input | Why |
|---|---|---|---|---|---|---|
Share of lot in the FEMA regulatory floodway site_floodway_share | parcel | 0 · context | observed | linear 1 → 0, 0 → 100 | overlap: flood-zones.geojson | Used only as a gate: half or more of the lot in the floodway caps Site Feasibility at 5 and multiplies the overall score by 0.2; any part caps it at 40 and multiplies the overall by 0.6. Never averaged. |
Share of lot in the 100-year floodplain site_sfha_share | parcel | 3 | observed | linear 1 → 0, 0 → 100 | overlap: flood-zones.geojson | FEMA Special Flood Hazard Area; triggers the City floodplain overlay (Ch. 906). |
Share of lot at 25%+ slope (City map, 2018) site_steep_slope_share | parcel | 3 | observed | linear 1 → 0, 0 → 100 | overlap: slope25.geojson | Triggers the City steep-slope overlay (Ch. 906) and raises foundation cost. Half or more of the lot at 25%+ slope caps Site Feasibility at 50 (was three-quarters until 2026-09-27; any development in SS-O needs a Planning Commission hearing, §906.08.C.1). Not an overall multiplier: a hackathon SME described slope as added cost, not a deal-killer. |
Share of lot in a City landslide-prone area site_landslide_prone_share | parcel | 2 | observed | linear 1 → 0, 0 → 100 | overlap: landslide-prone.geojson | Triggers the City landslide-prone overlay (Ch. 906). |
Share of lot on mapped landslide deposits (county: recent, old or red-bed) site_recent_landslide_share | parcel | 1 | observed | linear 1 → 0, 0 → 100 | overlap: landslide-susceptibility.geojson | County susceptibility mapping. 'Recent' alone covered 0.2% of parcels and none of the City's incident points; adding old and red-bed deposits covers half of them (round-1 review). |
Share of lot over mapped mines (City undermined area) site_undermined_share | parcel | 1 | observed | linear 1 → 0, 0 → 100 | overlap: undermined.geojson | Triggers the City undermined overlay (Ch. 906); subsidence risk. Half or more of the lot over mapped mines caps Site Feasibility at 70 and multiplies the overall score by 0.9: anything larger than a single house needs a mine investigation first (§906.05). |
Known lead or galvanized service line at this address site_lead_line | address | 0 · context | observed | code (already 0–100) | nearest_attr ≤ 30 m: lead-service-lines.geojson → status | Flag only (weight 0): the data has only lead/galvanized/unknown records, so it could only subtract, and it describes the existing house's line, not new construction. |
FEMA NRI inland flooding score site_inland_flood_rating | tract | 0 · context | modeled | percentile ↓ vs. county units | area: weather-risk.geojson → inland_flood_score | Context only (weight 0). FEMA's National Risk Index score multiplies expected annual loss by a community risk factor built from social vulnerability, so it partly measures who lives there, not just the hazard (round-2 equity review). Parcel-level floodplain and surface-heat indicators carry these hazards instead. |
Easiest legal pathway for mainstream housing types (current code) site_legal_pathway | parcel (zoning district) | 0 · context | policy | code (already 0–100) | legal_pathway: typology-district-matrix.json | Not averaged into Site Feasibility. It multiplies the overall score instead (see the legal block in this file). |
Site availability (what is on the parcel now) site_parcel_use | parcel | 0 · context | observed | code (already 0–100) | parcel_use: | Not averaged; it multiplies the overall score (availability block). From the County assessor land use and class, owner category, the City vacancy flag, zoning (P, EMI) and overlap with mapped parks. First matching rule wins. |
Lot area (for the sliver-lot check) site_lot_area | parcel | 0 · context | observed | linear 0 → 0, 600 → 100 | parcel_attr: → Shape__Area | Not averaged. Lots under 600 sq ft (slivers) cap Site Feasibility at 30 and multiply the overall score by 0.3, unless they are condo units. |
| Gate: fires when | Cap | Overall × | Flag shown |
|---|---|---|---|
| Share of lot in the FEMA regulatory floodway score < 51 | ≤ 5 | 0.20 | Half or more of the lot is in the FEMA regulatory floodway |
| Share of lot in the FEMA regulatory floodway score < 100 | ≤ 40 | 0.60 | Part of the lot is in the FEMA regulatory floodway |
| Share of lot in the 100-year floodplain score < 51 | ≤ 50 | — | Half or more of the lot is in the 100-year floodplain (City floodplain overlay applies) |
| Share of lot at 25%+ slope (City map, 2018) score < 51 | ≤ 50 | — | Half or more of the lot is 25%+ slope (steep-slope overlay: Planning Commission hearing, §906.08) |
| Share of lot in a City landslide-prone area score < 51 | ≤ 54 | — | Half or more of the lot is landslide-prone (geotechnical study required) |
| Share of lot at 25%+ slope (City map, 2018) score < 51 AND Share of lot in a City landslide-prone area score < 51 | ≤ 45 | — | Steep and landslide-prone |
| Share of lot over mapped mines (City undermined area) score < 51 | ≤ 70 | 0.90 | Over mapped mines: anything larger than a single house is prohibited until a mine investigation clears it (§906.05) |
| Known lead or galvanized service line at this address score < 50 | flag only | — | Known lead or galvanized service line on this address |
| Lot area (for the sliver-lot check) score < 100 AND Site availability (what is on the parcel now) ≠ 3 | ≤ 30 | 0.30 | Sliver lot under 600 sq ft |
Affordability
How much unmet need for homes people can afford is here, measured by households: low-income renters who are cost-burdened and the share of renters with extremely low incomes. Displacement pressure is shown alongside as a flag, not scored.
value Value judgment: greater need raises the score. Displacement pressure is shown, not scored: research finds new supply tends to relieve nearby rents and displacement (Asquith, Mast & Reed 2023; Pennington 2021), and the right response to pressure is usually income-restricted homes and tenant protections, not avoiding the area. Round-1 review found that scoring price growth pushed down the poorest, mostly Black neighborhoods.
| Indicator | Geo | Weight | Evidence | Normalization | Input | Why |
|---|---|---|---|---|---|---|
Low-income renters paying 30%+ of income on housing (CHAS) afford_lowinc_renter_burden · affordability | tract | 2 | observed | percentile ↑ vs. county units | area: chas-cost-burden.geojson → renter_lowinc_costburdened_pct | HUD's 30% cost-burden standard for households at or below 80% AMI. More burdened renters = more need for homes they can afford. Left out in tracts where more than 30% of residents are enrolled in college, because student households read as low-income. |
Renters at or below 30% of area median income (CHAS) afford_eli_renter_share · affordability | tract | 3 | observed | percentile ↑ vs. county units | area: chas-cost-burden.geojson | Extremely low-income renters are the households the private market serves least. Tract share of renter households; blank under 50 renter households. Student-heavy tracts can inflate it (not yet corrected). Left out in tracts where more than 30% of residents are enrolled in college, because student households read as low-income. |
Median gross rent vs. rent affordable at 50% AMI (3-person household) afford_rent_vs_ami · affordability | block group | 0 · context | assumption | linear 0.8 → 0, 2 → 100 | area: housing-costs.geojson → median_gross_rent | Context only (weight 0): rent relative to AMI measures how expensive the market is, not how many households are struggling (round-1 review). 1242.5 = 30% × $49,700 (HUD FY2026 Pittsburgh 50% AMI, 3 persons) ÷ 12. |
Renters paying 30%+ of income on rent (ACS) afford_rent_burden · affordability | block group | 1 | observed | percentile ↑ vs. county units | area: housing-costs.geojson → rent_burden_pct | All renters, not just low-income; ACS margins of error are large at block group level. Left out in tracts where more than 30% of residents are enrolled in college, because student households read as low-income. |
Housing + transportation cost share, median-income family (HUD LAI v3) afford_housing_transport · affordability | tract | 0 · context | modeled | linear 45 → 0, 75 → 100 | area: location-affordability.geojson → ht_median_family | Context only (weight 0): modeled for a fixed household, barely varies within the City, and duplicates the transit and jobs access already in Access. CNT's H+T benchmark treats ≤45% of income as affordable. |
Rent growth, last 5 years (Zillow ZORI) afford_rent_growth_5yr · displacement | ZIP | 1 | observed | percentile ↓ vs. county units | area: market-zip.geojson → zori_5yr_pct | Fast rent growth is a displacement pressure (Urban Displacement Project typology uses rent change). |
Displacement Risk Ratio, 2019/20 (Reinvestment Fund) afford_displacement_ratio · displacement | block group | 2 | observed | percentile ↓ vs. county units | area: market-mva.geojson → drr_1920 | Sale-price growth relative to residents' incomes (Reinvestment Fund). Data end 2019/20, so low weight; tract price growth carries the current signal. |
Median home sale price change, 2020–21 to 2024–25 afford_price_growth · displacement | tract | 1 | observed | percentile ↓ vs. county units | table: allegheny_tract_sales_2019_2025.csv → chg_pct_pooled_reliable | Median sale price change from pooled 2020–21 to pooled 2024–25 (county sales file). Blank unless both pools have at least 10 arm's-length sales. |
Eviction filings per 100 renter households, 2025 afford_evictions · displacement | ZIP | 0 · context | observed | percentile ↓ vs. county units | table: pittsburgh_evictions_zip_2025.csv → filings_per_100_renter_hh | Context only (weight 0): Eviction Lab publishes only ZIP-level filings for Allegheny County, and the ZIP value barely relates to the other displacement signals (r = −0.05). |
Home energy burden, households at or below 80% AMI (DOE LEAD 2022) afford_energy_burden · affordability | tract | 1 | modeled | percentile ↑ vs. county units | table: allegheny_energy_burden_tract_2022.csv → energy_burden_lowinc | Energy bills are part of housing cost. Modeled from ACS 2022 PUMS, not utility bills. Left out in tracts where more than 30% of residents are enrolled in college, because student households read as low-income. |
Residents enrolled in college (ACS 2020–24) afford_student_share · affordability | tract | 0 · context | observed | linear 0 → 0, 1 → 100 | table: allegheny_tract_college_enrollment.csv → pct_enrolled_college | Context and flag only. Over 30% triggers the student adjustment: the income-based need indicators are left out for the tract (a methodological choice). Includes dorm residents. |
| Gate: fires when | Cap | Overall × | Flag shown |
|---|---|---|---|
| Displacement Risk Ratio, 2019/20 (Reinvestment Fund) score < 10 | flag only | — | Sale prices outpaced local incomes by 2019/20 (Reinvestment Fund DRR, top 10% of the county): income-restricted homes and tenant protections matter most here |
| Median home sale price change, 2020–21 to 2024–25 score < 10 | flag only | — | Strong recent home-price growth (2020–21 to 2024–25): income-restricted homes and tenant protections matter most here |
| Residents enrolled in college (ACS 2020–24) score ≥ 31 | flag only | — | Over 30% of residents are college students: income-based need measures are left out here because student households read as low-income |
Access to Opportunity
Would new residents reach daily needs? Walking distance to groceries, health care, schools and services, transit service, and jobs reachable by transit.
| Indicator | Geo | Weight | Evidence | Normalization | Input | Why |
|---|---|---|---|---|---|---|
Weekday transit trips within 800 m, distance-weighted access_transit | parcel | 3 | observed | percentile ↑ vs. City parcels | decay_sum: transit-stops.geojson → trips_wd | Transit Score pattern: trips × mode weight × distance decay. |
Walking distance to nearest supermarket access_grocery | parcel | 2 | observed | linear 2400 → 0, 400 → 100 | nearest: places-groceries.geojson | USDA SNAP-authorized supermarkets and super stores only. The broader 'full_grocery' tier included convenience/dollar stores and stale permit rows (round-1 review). Walk Score decay: full credit within 400 m, none beyond 2.4 km. Straight-line distance. |
Walking distance to nearest small grocery store access_small_grocer | parcel | 0.5 | observed | linear 1600 → 0, 400 → 100 | nearest: places-groceries.geojson | SNAP 'Grocery Store' type: smaller grocers that carry staples. |
Shops and restaurants within 800 m access_shops_restaurants | parcel | 2 | observed | percentile ↑ vs. City parcels | count_within within 800 m: commerce-density.geojson | A main-street proxy (WPRDC food-facility and business points). Raised agreement with Walk Score from 0.85 to 0.90 in the round-1 review. |
Walking distance to nearest pharmacy access_pharmacy | parcel | 1 | observed | linear 2400 → 0, 400 → 100 | nearest: places-pharmacies.geojson | Retail pharmacies from the CMS NPPES registry (2026), with closed Rite Aid stores removed. |
Walking distance to nearest school access_school | parcel | 1 | observed | linear 2400 → 0, 400 → 100 | nearest: places-schools.geojson | Proximity only; school quality is deliberately not scored. |
Walking distance to nearest park access_park | parcel | 1 | observed | linear 1200 → 0, 200 → 100 | nearest: parks.geojson | Distance to the nearest park boundary. Tightened (full credit within 200 m, none beyond 1.2 km) because nearly every parcel was near some park. |
Distance to nearest health center, clinic or hospital access_health | parcel | 1 | observed | linear 3200 → 0, 800 → 100 | nearest: places-health-centers.geojson + places-clinics.geojson + places-hospitals.geojson | HRSA health-center sites, NPPES urgent-care/primary-care/community clinics, and hospitals. |
Walking distance to nearest child care access_child_care | parcel | 1 | observed | linear 2400 → 0, 400 → 100 | nearest: places-child-care.geojson | |
Walking distance to nearest library access_library | parcel | 0.5 | observed | linear 2400 → 0, 400 → 100 | nearest: places-libraries.geojson | |
Walking distance to nearest food pantry or walk-up food distribution access_food_assistance | parcel | 0.5 | observed | linear 2400 → 0, 400 → 100 | nearest: places-food-banks.geojson | Greater Pittsburgh Community Food Bank network (Apr 2025). Drive-up distributions are excluded because they are scheduled events, not places you can walk to. |
Distance to nearest dentist access_dentist | parcel | 0.5 | observed | linear 2400 → 0, 400 → 100 | nearest: places-dentists.geojson | OSM + County Assets. No data on which dentists accept Medicaid. |
Walking distance to nearest community center access_community_center | parcel | 0.5 | observed | linear 2400 → 0, 400 → 100 | nearest: places-community-centers.geojson | |
Distance to nearest senior center access_senior_center | parcel | 0.5 | observed | linear 2400 → 0, 400 → 100 | nearest: places-senior-centers.geojson | Matters most for older adults; the older-adult preset raises Access overall. |
Jobs reachable within 30 minutes by transit access_jobs_transit | block group | 2 | modeled | percentile ↑ vs. county units | area: jobs.geojson → transit_jobs_30 | Cumulative-opportunity accessibility (EPA Smart Location Database style). |
Climate & Environment
Would homes here be low-carbon and healthy? Two sub-scores that often pull in opposite directions: carbon (dense, walkable places mean less driving) and local environment (air, heat, tree canopy). Kept separate so the trade-off stays visible.
| Indicator | Geo | Weight | Evidence | Normalization | Input | Why |
|---|---|---|---|---|---|---|
Fine particulate matter (PM2.5), PA percentile climate_pm25 · local_env | block group | 2 | modeled | percentile ↓ vs. county units | area: air-quality.geojson → pm25_pct | EJScreen v2.3 modeled annual exposure, re-ranked within the county. |
Traffic combustion (mean of diesel PM, NO2 and traffic proximity percentiles) climate_traffic_combustion · local_env | block group | 1 | modeled | percentile ↓ vs. county units | area: air-quality.geojson → dslpm_pct,no2_pct,ptraf_pct | Three correlated traffic indicators averaged first so traffic counts once. |
Industrial air toxics (RSEI), PA percentile climate_air_toxics · local_env | block group | 1 | modeled | percentile ↓ vs. county units | area: air-quality.geojson → rsei_air_pct | |
Industrial PM2.5 emissions nearby, distance-weighted (ACHD, ≤2021) climate_industrial_emissions · local_env | parcel | 1 | observed | percentile ↓ vs. City parcels | decay_sum: achd_facilities_latest.csv → pm25_total_tpy | PM2.5 tons/yr (filterable + condensable) from current permitted facilities, full weight within 1 km, fading to zero at 10 km so Clairton Coke Works reaches the Mon Valley neighborhoods. Excludes NRG Cheswick, which stopped generating on March 31, 2022. Emissions, not measured exposure; the inventory ends in 2021. |
Modeled annual household VMT, median-income family (HUD LAI v3) climate_household_vmt · carbon | tract | 2 | modeled | percentile ↓ vs. county units | area: location-affordability.geojson → vmt_median_family | Transportation-carbon proxy. HUD models VMT for a fixed household (median income, 4 people, 2 commuters), so it varies only with location efficiency. Inputs 2012–16, 2010 tracts. |
FEMA NRI heat wave score climate_heat · local_env | tract | 0 · context | modeled | percentile ↓ vs. county units | area: weather-risk.geojson → heat_wave_score | Context only (weight 0). FEMA's National Risk Index score multiplies expected annual loss by a community risk factor built from social vulnerability, so it partly measures who lives there, not just the hazard (round-2 equity review). Parcel-level floodplain and surface-heat indicators carry these hazards instead. |
Summer surface heat, parcel (Landsat 8, 4-scene anomaly vs county median) climate_surface_heat · local_env | parcel (30 m pixel at centroid) | 2 | observed | percentile ↓ vs. City parcels | table: pgh_parcel_lst_canopy.csv → lst_anom_c_4scenes | Mean of (LST − scene county median) over 4 clear summer scenes, 2023–2025. Surface, not air, temperature; ranked, not thresholded. |
Tree canopy around the parcel (block-group mean, NLCD 2021) climate_tree_canopy · local_env | block group | 1 | observed | linear 0 → 0, 50 → 100 | table: allegheny_bg_canopy_impervious_lst.csv → canopy_pct_mean | Block-group mean canopy. The single 30 m pixel at the parcel centroid read 0 for a quarter of parcels (round-1 review). |
Weight presets
| Preset | Demand | Site Feasibility | Affordability | Access to Opportunity | Climate & Environment | Note |
|---|---|---|---|---|---|---|
| equal | 1 | 1 | 1 | 1 | 1 | |
| family | 1 | 1.5 | 1 | 2 | 1 | |
| older_adult | 1 | 2 | 1 | 2.5 | 2 | |
| climate_first | 1 | 1 | 1 | 1.5 | 3 | |
| affordability_first | 1 | 1 | 3 | 1.5 | 1 | Ranks unmet housing need highest; favors neighborhoods where low-income renters are most burdened. |
| market_first | 3 | 1.5 | 0.5 | 1 | 0.5 | Ranks strong markets highest. Correlates negatively with minority share (round-2 equity review), so it steers new housing away from disinvested neighborhoods. |
Zoning, site-availability and hazard multipliers
Legal pathway (m_legal)
Whether current zoning lets you build the brief's mainstream housing types (detached, townhouse, two-unit, three-unit, multi-unit) on this parcel. The overall score is multiplied by the factor for the easiest legal pathway among them. Legality is read from the City use table (§911.02), not estimated.
| Code | Level | × | Note |
|---|---|---|---|
| 0 | Housing allowed by right | 1.00 | |
| 1 | Housing allowed with Zoning Administrator approval | 0.98 | |
| 2 | Housing needs a ZBA special exception | 0.94 | ZBA approved 90% of special exceptions in 2023–26 (n=30), counting only posted decisions. |
| 3 | Housing needs conditional use (Planning Commission + Council) | 0.92 | |
| 4 | Housing not permitted, but the parcel touches a district that allows attached or multi-unit homes | 0.35 | Exceptions happen at district edges: a use variance or a map amendment extending the neighboring district. Since 2015, Council adopted 42 of 49 site rezonings and defeated none (7 held, withdrawn, pending or expired). But few housing use variances are in districts that don't allow housing. |
| 5 | Housing not permitted: needs a rezoning or use variance | 0.20 | Not legally impossible, but the slowest, least certain path. |
| 6 | Planned district: depends on the site's approved plan | 0.96 | |
| 7 | Outside City zoning jurisdiction (Mount Oliver Borough) | 1.00 | |
| 8 | Zoning district not in our use table: verify with the Zoning Administrator | 0.80 | |
| 9 | Hillside (H) district: detached house only, with ZA approval and Site Plan Review | 0.85 |
Site availability (m_availability)
What is on the parcel now. Vacant land and surface parking are the easiest places to add housing; occupied buildings, institutions and large buildings are progressively less likely to be redeveloped; parks, cemeteries, rail and rights-of-way are not development sites. The overall score is multiplied by the factor below.
| Code | What's on the lot | × | Note |
|---|---|---|---|
| 0 | Vacant land or surface parking | 1.00 | |
| 5 | Existing occupied building | 0.90 | Building here means replacing or adding to what's there. Where displacement pressure is flagged, replacing occupied homes risks direct displacement. |
| 6 | Large existing building (20+ apartments, office tower, hotel, shopping center) | 0.70 | Unlikely to be redeveloped for new housing soon. |
| 7 | Institution (university, school, hospital or care home, church, occupied government building) | 0.60 | Institutional land is rarely released for housing; when it is, it goes through master plans (EMI districts) or surplus sales. |
| 3 | Unit in an existing condominium building | 0.50 | Scores describe the building's location. Building new housing here would mean redeveloping the whole building lot. |
| 1 | Park, cemetery or public open land: not an available site | 0.05 | Converting parkland needs court approval (PA Donated or Dedicated Property Act); cemeteries are effectively permanent. |
| 2 | Active railroad: not an available site | 0.05 | |
| 4 | Right-of-way or air rights: not an available site | 0.05 |
Deal-killer hazards (m_hazard)
A few Site gates are deal-killers, not just a low Site score: most of the lot in the floodway, a sliver lot, or mapped mines under anything larger than a house. Capping only the Site pillar let the other four pillars average them away (a fully undermined lot moved the overall about 2%). Those gates carry an `overall` factor that multiplies the overall score, like zoning and availability; the lowest fired factor applies. Hackathon SMEs (2026-09-27) called undermining and environmental conditions up-front deal killers. Undermining gets a mild factor (×0.9) because about 30% of City parcels (43,001 of 142,365) are over mapped mines and the layer gives no depth of cover: it means a mine investigation, not a ban. The factors are value judgments.
| Gate: fires when | Overall × | Flag shown |
|---|---|---|
| Share of lot in the FEMA regulatory floodway score < 51 | 0.20 | Half or more of the lot is in the FEMA regulatory floodway |
| Share of lot in the FEMA regulatory floodway score < 100 | 0.60 | Part of the lot is in the FEMA regulatory floodway |
| Share of lot over mapped mines (City undermined area) score < 51 | 0.90 | Over mapped mines: anything larger than a single house is prohibited until a mine investigation clears it (§906.05) |
| Lot area (for the sliver-lot check) score < 100 AND Site availability (what is on the parcel now) ≠ 3 | 0.30 | Sliver lot under 600 sq ft |
Housing types: legal pathway and physical fit
- rezoning closeness: 1 if a district in the same family allows it (density-suffix change), 0.5 if one step up/down the R1D → R1A → R2 → R3 → RM ladder, 0.2 if only a distant district, 0 if none
- likelihood: Zoning Board relief approval rate in this base district, 2023–26 (all case types); 0.7 where there are no local cases
- 4 levels: 0 Cannot fit · 1 Fits only with major compromises · 2 Fits with minor compromises · 3 Comfortable fit
- the model's probability for each level
- lot area, bounding-rectangle width × depth, district minimum lot size, hazard shares ≥ 1%, all computed in PostGIS/code first
Approval pathways
| Pathway | Who decides | Hearing | Clock | If the City misses it | § |
|---|---|---|---|---|---|
| By right | Zoning staff (BDA review via OneStopPGH) | no | none | n/a | |
| Administrator exception | Zoning Administrator (Administrator Exception) | no | decision 21 days after complete application | City code: deemed denial, may go to ZBA (§922.08.C) | §922.08 |
| Special exception (Zoning Board hearing) | Zoning Board of Adjustment | yes, >=21-day notice | hearing within 45 days of complete application; decision within 45 days of hearing | conflict: City code says deemed denial; PA MPC (2003 ed.) says deemed approval; see sources/pa-dced-2003-01-mpc-908-913-2-deemed-approval.md §908(9) | §922.07 |
| Conditional use (Planning Commission + Council) | Planning Commission recommends, City Council decides | yes, two (PC and Council) | up to 4 x 45 days (~6 months) before deemed denial | conflict: City code says deemed denial; PA MPC (2003 ed.) says deemed approval; see sources/pa-dced-2003-01-mpc-908-913-2-deemed-approval.md §913.2(b)(2); 39 Council CUs recorded as Passed pursuant to Case Law | §922.06 |
| Not permitted (variance or rezoning only) | Only via use variance (ZBA, §922.09 five findings incl. hardship) or rezoning (Council map amendment) | yes | variance as ZBA; rezoning not bounded | variance: conflict: City code says deemed denial; PA MPC (2003 ed.) says deemed approval; see sources/pa-dced-2003-01-mpc-908-913-2-deemed-approval.md §908(9) | §922.09 / map amendment |
| Set by the site's approved plan (planned-unit district) | Planning Commission, through the site's approved unit development plan | yes | not bounded in code read | unknown | §909.02 |
| Mount Oliver Borough (not City zoning) | Mount Oliver Borough | ||||
| unknown |
Typology × district matrix
Zoning Board outcomes by base district (the likelihood term in E9)
| Base district | Cases | Approved | Denied | Approval rate |
|---|---|---|---|---|
| R1D | 101 | 87 | 11 | 86% |
| R1A | 83 | 74 | 7 | 89% |
| R2 | 62 | 46 | 13 | 74% |
| LNC | 49 | 45 | 3 | 92% |
| RM | 31 | 30 | 1 | 97% |
| UI | 23 | 20 | 2 | 87% |
| UNC | 17 | 12 | 3 | 71% |
| EMI | 13 | 11 | 1 | 85% |
| H | 12 | 10 | 1 | 83% |
Only posted decisions are counted, and the rate covers all relief types, not rezonings specifically. It is an approximation of how a district treats requests the code doesn't allow outright.
Can it be built? The verdict and the pencil check
| Color | Check | When |
|---|---|---|
| red | Zoning | Not permitted and no district of similar density allows it |
| yellow | Zoning | Special exception or conditional use; or not permitted but a nearby-density district allows it (rezoning or use variance). Each reason carries its approval clock. |
| green | Zoning | By right or Zoning Administrator approval |
| unknown | Zoning | District not in the use table, planned district, or Mount Oliver |
| red | Site | Half or more floodway; sliver lot under 600 sq ft; park, cemetery, rail or right-of-way |
| yellow | Site | Part floodway; mostly floodplain, 25%+ slope or landslide-prone; recent landslide; over mapped mines (investigation or cover check); condo unit, large building or institution |
| yellow | Width | Lot width minus §903.03 interior side setbacks leaves less than the minimum building width (likely dimensional variance) |
| red / yellow | Fit | Jev rates 'Cannot fit' (red) or below the halfway point (yellow) |
| red / yellow / green | Pencil | Value per unit vs. cost per unit with margin (below) |
| unknown | Data | Missing hazard, sale or rent data. Unknown outranks green, so missing data never reads as buildable. |
Side-setback check (§903.03)
Total interior side setback (both sides, ft) by base district and density suffix. Buildable width = lot width minus this. Attached (party-wall) housing has no interior side setback, so it is skipped. Corner-lot exterior side setbacks and contextual setbacks (§925.06) are not modeled. Lot width is the short side of the lot's oriented bounding rectangle, so irregular lots are approximate. Assumption: about the narrowest practical detached building (a narrow Pittsburgh rowhouse is ~14–16 ft). Below this, a hackathon SME's example (24 ft RM-M lot, two 10 ft setbacks, 4 ft left) says a dimensional variance is likely granted but costs time and money. Source: Pittsburgh Code §903.03 as amended Ord. 10-2025 (eff. 2025-05-07), read on eCode360 2026-09-26: research/sources/ecode360-2026-09-26-pittsburgh-903-03-dimensional-standards.md
| Base district | VL | L | M | H | VH |
|---|---|---|---|---|---|
| R1D | 15 ft | 10 ft | 10 ft | 10 ft | 10 ft |
| R2 | 15 ft | 10 ft | 10 ft | 10 ft | 10 ft |
| R3 | 15 ft | 10 ft | 10 ft | 10 ft | 10 ft |
| R1A | 10 ft | 10 ft | 10 ft | 10 ft | 10 ft |
| RM | 60 ft | 50 ft | 20 ft | 20 ft | 20 ft |
- construction $/sf, editable; presets 150 / 225 / 350
- $37,500 per building, editable
- $30,000 when half the lot is 25%+ slope
- 15% of hard cost
- 10%
| Assumption | Value | Source |
|---|---|---|
| $/sf, production builder | $150 | Hackathon SME (Housing Innovation Alliance), 2026-09-27: high-volume production builders would imply about $150/sf if they entered the City market. Matches NAHB's 2024 national cost survey without its site-work stage ($149/sf; Pittsburgh's RSMeans residential location factor is 1.01). |
| $/sf, typical infill (default) | $225 | Hackathon SME (Housing Innovation Alliance), 2026-09-27: $200–250/sf for single-family infill in the City, varying with builder scale. |
| $/sf, small builder | $350 | Hackathon SME (practitioner), 2026-09-27: $325–375/sf vertical construction, excluding site work; no reliable local public source. |
| Site work per building | $37,500 | Hackathon SME (practitioner), 2026-09-27: $25k–50k for a single-unit City lot (water and sewer taps, grading, sidewalks, landscaping); midpoint. Depends on utility depth, soil, and demolition debris in old basements. |
| Steep-lot adder | $30,000 | Assumption: the low end of a builder blog's $30k–80k hillside site work (research/knowledge/methods/pro-forma.md); applied when half or more of the lot is 25%+ slope. |
| Soft costs | 15% | Assumption: design, permits, fees and carrying costs as a share of hard cost; SMEs named soft costs but gave no figure. |
| Margin | 10% | Assumption: value must beat cost by a margin 'large enough to attract investors and get banks to lend' (hackathon SME, Pro-Housing Pittsburgh); 10% is a placeholder. |
| Rent → value | × 103 | Assumption: value per unit = monthly rent × 12 × (1 − 40% operating costs) ÷ 7% cap rate ≈ 103 × monthly rent. |
| Subsidy floor | 35% | Value judgment: if value covers at least 35% of the cost (with margin) at the user's assumption, call it a subsidy candidate (yellow); otherwise it does not pencil (red). URA's per-unit caps are shown beside the gap for scale; any gap within a cap already clears this floor at realistic costs. At the defaults, red covers about 16% of vacant or occupied parcels for a house, 36% for a duplex and 11% for apartments. A stricter rule (red whenever the gap exceeds URA's cap) would make about 63% of houses and 88% of duplexes red; we did not use it because the value inputs understate new-build value and URA's Rental Gap Program needs 4+ units. |
| URA gap caps | $130,000 sale / $75,000 rent | Shown next to every gap for scale. For-sale: URA For-Sale Development Program, max $130,000 per newly constructed unit, buyers at or below 80% AMI. Rental: URA Rental Gap Program (guidelines amended Aug 2024), max $75,000 per unit at 30% AMI ($50k at 50%, $35k at 60%); URA often waives its caps, and other sources (LIHTC, PHFA) can stack. Read 2026-09-27: research/sources/ura-2026-09-27-rgp-fsdp-guidelines-and-hof-2026-plan.md. How much gap financing a project can get 'can vary wildly' (SME). |
| Unit sizes | single_detached 1×1400 sf, single_attached 1×1400 sf, two_unit 2×1100 sf, three_unit 3×1000 sf, multi_unit 12×850 sf | Unit sizes are assumptions; 1,400 sf is the SME example house. Houses are valued as for-sale homes; two or more units as rentals. |
Values come from existing homes (tract resale prices) and existing rents (ACS block groups, which are noisy: 48 of 265 City block groups have a CV above 30%). Both understate what new construction sells or rents for. City new-build sales run about $370–390/sf, against about $180/sf for all valid sales, roughly 2×, but only 15 of 90 neighborhoods have 5+ new-build comps in 5 years (research/sweeps/r9-revenue-comps-sub-zip.md). No new-build premium is applied, so the check leans toward 'doesn't pencil'. Read it as the appraisal-gap risk, not a verdict on the project.
Permit valuations are not a usable substitute: 220 new 1–2 family City permits (2019–24, deduplicated, assessed living area built after the permit) give a median $104/sf, and the declared value was a median 0.31× the same homes' later sale price (n=63), so permit values understate cost. Reproduce with research/admin/scripts/permit_cost_per_sf.py (research/sweeps/r9-permit-cost-per-sf.md).
Not priced: land, landslide geotechnical work, floodplain elevation, mine investigation, environmental remediation, financing.
How long each approval can take before a building permit, shown with the pathway reason so hearings read as time and carrying cost, not just a probability (hackathon SME, 2026-09-27: variances are usually granted, but the time and expense make lots hard to develop). Code deadlines are maximums from the City code; the rezoning figure is observed.
The AI components and their guardrails
- A System One decision API (TypeSafe's Jev, served via OpenRouter). It returns typed answers with probabilities. There is no free text to parse or hallucinate.
- One score question per housing type (House, Townhouse, Duplex, Triplex, Apartment, Elderly housing, Assisted living (small), Assisted living (mid), Assisted living (large), Personal care (small), Personal care (large), Community home, Multi-suite (limited), Multi-suite (general), Interim housing), asked in a single call against the same facts.
- Facts are computed first in PostGIS and code: lot area, oriented-rectangle width and depth, district minimum lot size, hazard shares. The model does no arithmetic.
- Every type is rated, including ones zoning forbids, because physical fit is what makes a rezoning ask worth pursuing.
- Your pillar weights are not sent: a physical judgment shouldn't move with preferences.
- Answers are cached per (model, facts, types). On timeout (10 s) or a missing key the panel says the fit is unavailable. It never shows a guessed number.
- Google Gemini: gemini-3.5-flash-lite → gemini-3.1-flash-lite → gemini-2.5-flash-lite. If a model errors, or hasn't answered after 4 s, the next one starts too and the first answer wins; each call times out at 12 s.
- Sees only what the panels show for the selected parcel (scores, breakdowns, typology tiles with Jev's site fit, alerts, zoning) plus standing definitions. Each fact has an id, source and as-of date. Without a parcel, it only explains how the tool works.
- Replies must cite fact ids. Citations to ids that weren't provided are removed.
- Number guard: any sentence containing a number that no provided fact states is dropped. Small counting numbers (0–10) and a fraction's percent form (0.81 → 81) are allowed.
- What-ifs are computed, never estimated: the rescore tool reruns E5–E6 with new weights or a preset, and rezoning and vacant-land scenarios are scored by the real scorer ahead of time. Anything else gets "not computed".
- At most 10 turns of history and 3 tool steps per answer. Without a key, it shows the screen's own notes instead.
Every map layer and where it comes from
| Layer | Group | Evidence | Source | As of | One value describes | Caveats |
|---|---|---|---|---|---|---|
License plate readers (ALPR) alpr-cameras | cameras | observed | OpenStreetMap contributors (ODbL), incl. DeFlock mapping deflock.me | OSM snapshot pulled 2026-09-26 | Mapped camera points, positions as placed by volunteer mappers | 3 caveats
|
Live cameras cameras | cameras | observed | 511PA (PennDOT, PA Turnpike), USGS HIVIS, CMU Breathe Cam, WeatherSTEM, EarthCam, PixCams, Pittsburgh Zoo 511pa.com | Feeds are live; camera list built 2026-09-26 | Camera locations; some webcam positions are approximate (noted in the viewer) | 2 caveats
|
Condemned properties condemned-properties | development | observed | City of Pittsburgh condemned and dead-end properties (WPRDC, CC-BY) data.wprdc.org | Updated daily; pulled Sep 2026 | Property locations | 2 caveats
|
New homes & demolitions (permits) permits-activity | development | observed | City of Pittsburgh PLI permits (WPRDC, CC-BY) data.wprdc.org | Issued Jan 2022 – Sep 2026 | Permit locations | 2 caveats
|
Impervious surface impervious | environment | observed | MRLC National Land Cover Database percent developed impervious 2021 (public domain) mrlc.gov | 2021 | 30 m grid | 1 caveats
|
Surface heat (2020) surface-heat | environment | observed | City of Pittsburgh urban heat island layer: 2020 mean land surface temperature tiles.arcgis.com | 2020 composite | Satellite grid covering the county | 2 caveats
|
Tree canopy tree-canopy | environment | observed | USFS / MRLC National Land Cover Database tree canopy cover 2021 (public domain) mrlc.gov | 2021 | 30 m grid | 1 caveats
|
City landslide-prone & undermined overlays city-hazard-overlays | hazard | policy | City of Pittsburgh zoning hazard overlays (Zoning Code Ch. 906), City ArcGIS services1.arcgis.com | Current City layers (pulled Sep 2026) | City of Pittsburgh only | 1 caveats
|
City steep-slope overlay (25%+) city-steep-slopes | hazard | policy | City of Pittsburgh zoning hazard overlays (Zoning Code Ch. 906), City ArcGIS services1.arcgis.com | Current City layers (pulled Sep 2026) | City of Pittsburgh only | 2 caveats
|
Flood zones flood-zones | hazard | observed | FEMA National Flood Hazard Layer (effective FIRMs) hazards.fema.gov | Effective FIRM panels (dates vary by panel) | Mapped flood zone polygons; check parcel overlap, not just its center | 3 caveats
|
Landslide damage sites (FEMA aid) landslide-public-assistance | hazard | observed | Allegheny County landslide public-assistance sites (County ArcGIS) services1.arcgis.com | Pulled Sep 2026 (event dates not published in the layer) | Damage site points | 2 caveats
|
Landslide incidents (county roads) landslide-incidents | hazard | observed | Allegheny County Public Works landslide records services1.arcgis.com | Edited Sep 2025 | Incident points on county-maintained roads | 2 caveats
|
Landslide-prone areas landslide-susceptibility | hazard | observed | USGS-era landslide susceptibility mapping (1970s–80s), via Allegheny County GIS services1.arcgis.com | County layer edited Jul 2018; underlying mapping decades old | Mapped susceptibility polygons; check parcel overlap, not just its center | 2 caveats
|
Mine subsidence risk zone mine-subsidence | hazard | observed | PA DEP Mine Subsidence Insurance, subsidence risk (mining confirmed) gis.dep.pa.gov | PA DEP MSI service | Broad risk zones | 2 caveats
|
Serious traffic crashes serious-crashes | hazard | observed | PennDOT reportable crashes, Allegheny County (WPRDC, CC0) data.wprdc.org | 2023–2025 (2025 file updated Sep 2026) | Crash locations | 2 caveats
|
Steep slopes slope | hazard | observed | USGS 3D Elevation Program (3DEP), slope computed on the fly elevation.nationalmap.gov | 3DEP service dated 2026-08-25 | ~1–10 m elevation grid, resampled to the zoom level | 2 caveats
|
Tornado paths (1950–2025) tornado-paths | hazard | observed | NOAA Storm Prediction Center tornado paths (public domain) spc.noaa.gov | 1950–2025 | Recorded tracks (straight start→end lines for older records) | 2 caveats
|
Undermined areas (coal mines) mined-out-areas | hazard | observed | PA DEP mined-out areas, underground coal gis.dep.pa.gov | PA DEP District Mining Operations layer | Mine footprints compiled from historic mine maps | 2 caveats
|
Air quality air-quality | heat | observed | EPA EJScreen v2.32, via the Public Environmental Data Partners mirror (EPA took EJScreen offline in 2025) services2.arcgis.com | EJScreen v2.32; indicator years vary | Census block group average, not this parcel | 2 caveats
|
Car dependence & housing cost (LAI) location-affordability | heat | observed | HUD / DOT Location Affordability Index v3 services.arcgis.com | LAI v3 (built on 2012–2016 ACS inputs; HUD's latest release) | Census tract (2010 boundaries) | 3 caveats
|
Children's elevated blood lead child-blood-lead | heat | observed | Allegheny County Health Department, Elevated Blood Lead Level Rates (WPRDC, CC0) data.wprdc.org | Pooled 2015–2020 (dataset updated May 2026) | Census tract (2010 boundaries) | 4 caveats
|
Code violations (last 24 months) code-violations | heat | observed | City of Pittsburgh PLI/DOMI/ES violations (WPRDC, CC0); housing units from ACS 2024 5-year data.wprdc.org | Last 24 months, pulled Sep 2026 | Census block group rate (city only) | 3 caveats
|
Economic mobility (Opportunity Atlas) opportunity-atlas | heat | observed | Opportunity Insights / U.S. Census Bureau, The Opportunity Atlas opportunityinsights.org | Children born 1978–83, measured as adults | Census tract (2010 boundaries) | 2 caveats
|
Eviction filings 2025 evictions | heat | observed | Princeton Eviction Lab, Eviction Tracking System (Pittsburgh); renter households from ACS 2024 5-year evictionlab.org | Filings Jan–Dec 2025 | ZIP code (ZCTA), not this parcel | 3 caveats
|
Home internet (ACS) home-internet | heat | observed | U.S. Census Bureau ACS 2024 5-year, table B28002 (via Census Reporter) censusreporter.org | ACS 2020–2024 | Census tract estimate (2020 boundaries), not this parcel | 2 caveats
|
Housing cost burden (CHAS) chas-cost-burden | heat | observed | HUD Comprehensive Housing Affordability Strategy (CHAS) 2018–2022, Table 8 huduser.gov | CHAS 2018–2022 (released Dec 2025) | Census tract share (2020 boundaries), not this parcel | 3 caveats
|
Housing voucher use housing-vouchers | heat | observed | HUD Housing Choice Vouchers by Tract services.arcgis.com | Vouchers through Dec 2025 | Census tract share (2020 boundaries), not this parcel | 2 caveats
|
Income & housing cost housing-costs | heat | observed | U.S. Census Bureau, ACS 2024 5-year (2020–2024), via Census Reporter censusreporter.org | ACS 2024 5-year release | Census block group estimate, not this parcel | 3 caveats
|
Jobs & transit access jobs | heat | observed | U.S. Census Bureau LEHD LODES8 WAC 2023 (public domain); UMN Accessibility Observatory, Access Across America: Transit 2024 (CC BY-NC 4.0) lehd.ces.census.gov | Jobs 2023; transit access 2024 | Census block group total, not this parcel | 4 caveats
|
Legal pathway by housing type legal-pathway | heat | policy | City of Pittsburgh Zoning Code §911.02 use table, transcribed by the research team; zoning from PGHWebZoning ecode360.com | Code as of 2026-09-26 | City of Pittsburgh zoning district (city only; suburbs have their own codes) | 6 caveats
|
Life expectancy (2010–15) life-expectancy | heat | observed | CDC / NCHS U.S. Small-Area Life Expectancy Estimates Project (USALEEP) cdc.gov | Deaths 2010–2015 | Census tract (2010 boundaries) | 2 caveats
|
Market type & displacement risk market-mva | heat | observed | Reinvestment Fund Market Value Analysis 2021 and Displacement Risk Ratio, for URA / Allegheny County (WPRDC, CC0) data.wprdc.org | MVA 2021 (2017–19 sales); DRR through 2019/20 | Census block group (2010 boundaries) | 3 caveats
|
Neighborhood health (CDC PLACES) health-outcomes | heat | observed | CDC PLACES, census tract estimates (2024 release) cdc.gov | PLACES 2024 release (mostly 2022 BRFSS) | Census tract estimate (2020 boundaries), not this parcel | 2 caveats
|
Prices & rents by ZIP market-zip | heat | observed | Allegheny County property sales (WPRDC, CC0); Zillow Observed Rent Index (Zillow Research) zillow.com | Valid sales Jan 2024 onward; ZORI through Aug 2026 | ZIP code (ZCTA); not neighborhoods | 2 caveats
|
Safety (reported) safety | heat | observed | City of Pittsburgh police blotter, UCR Part I (WPRDC); Allegheny County homicide incidents (ACHD / Medical Examiner); population from ACS 2024 5-year data.wprdc.org | City crime Dec 2020 – Nov 2023 (blotter ends); homicides 2016–2022 and 2024 (no 2023 layer) | Census tract rate (2020 boundaries), not this parcel | 3 caveats
|
Social vulnerability & child opportunity equity | heat | observed | CDC/ATSDR Social Vulnerability Index 2022 (public domain); Child Opportunity Index 3.0, diversitydatakids.org atsdr.cdc.gov | SVI 2022; COI 2021 data year | Census tract rank (2020 boundaries), not this parcel | 3 caveats
|
Vacant addresses (USPS) usps-vacancy | heat | observed | HUD/USPS vacant address data (WPRDC, CC0) data.wprdc.org | 2023 Q4 | Census tract share (2020 boundaries), not this parcel | 2 caveats
|
Walkability (EPA) walkability | heat | observed | U.S. EPA National Walkability Index (Smart Location Database) epa.gov | Inputs circa 2018–2019 | Census block group (2020) | 2 caveats
|
Weather risk weather-risk | heat | observed | FEMA National Risk Index services.arcgis.com | NRI December 2025 | Census tract rating (2020 boundaries), not this parcel | 3 caveats
|
Zoning: residential density allowed residential-zoning | heat | policy | PGHWebZoning (City of Pittsburgh), transcribed by the research team ecode360.com | 2026-09-26 | City zoning district (city only; Mount Oliver Borough uses its own code) | 2 caveats
|
Lead service lines lead-service-lines | infrastructure | observed | Pittsburgh Water (PWSA) service line material services5.arcgis.com | PWSA layer, edited Sep 2026 | One point per service address (PWSA service area only) | 4 caveats
|
Sewer lines sewer-lines | infrastructure | observed | Allegheny County sewer lines (3 Rivers Wet Weather / LBs export) services1.arcgis.com | 2012 export (last edited Jan 2018) | Pipe segments; loads for the visible area at zoom 15+ | 2 caveats
|
Transit stops transit-stops | infrastructure | observed | Pittsburgh Regional Transit stops (WPRDC, CC-BY) data.wprdc.org | Updated 2026-09-22 (GTFS feed 2606, service from 2026-06-28) | Stop points; heatmap below zoom 12 is weighted by weekday trips | 2 caveats
|
City-owned property city-owned-land | land | observed | City of Pittsburgh city-owned property (WPRDC, CC-BY) data.wprdc.org | Updated daily; pulled Sep 2026 | Parcel locations | 2 caveats
|
Long-term tax delinquency tax-delinquent | land | observed | City of Pittsburgh and school district property tax delinquency (WPRDC, CC-BY) data.wprdc.org | Pulled Sep 2026 | Parcel locations, shown from zoom 14 | 3 caveats
|
Upcoming tax sales treasury-sales | land | observed | City of Pittsburgh treasurer sales (WPRDC; license not specified) data.wprdc.org | Next sale Oct 2, 2026 | Property locations | 2 caveats
|
Vacant buildings (USPS, City) vacant-buildings | land | observed | City of Pittsburgh, USPS vacancy flags by parcel (Vacant_USPS_Feb_24), joined to City parcel records services1.arcgis.com | USPS snapshot Feb 2024 | Parcel centroids, City of Pittsburgh only | 2 caveats
|
Vacant lots vacant-lots | land | observed | Allegheny County Office of Property Assessments via WPRDC (vacant-land use codes) data.wprdc.org | Assessments as of Sep 2026 | Parcel centroids, all of Allegheny County | 3 caveats
|
800 ft care-facility spacing (partial) care-facility-spacing | legal | policy | Research team, from PA DHS licensed personal care / assisted living and CMS nursing homes; rule from Zoning Code §911.04 ecode360.com | Facilities as of 2026-09-26 | 800 ft circles, City of Pittsburgh | 2 caveats
|
City Council land-use votes (2000–26) council-land-use-actions | legal | observed | City of Pittsburgh Legistar (City Council), compiled and geocoded by the research team pittsburgh.legistar.com | 2000 – Sep 2026, pulled 2026-09-26 | Action locations, City of Pittsburgh | 4 caveats
|
Senior & supportive housing (existing) senior-supportive-housing | legal | observed | PA DHS provider directory, PA DOH / CMS nursing homes, HUD Multifamily, HUD LIHTC, HACP (compiled by the research team) humanservices.dhs.pa.gov | Pulled 2026-09-26 | Facility locations, City of Pittsburgh only | 4 caveats
|
Where each housing type got permitted (2019–26) permits-by-type | legal | observed | City of Pittsburgh OneStopPGH permits and Development & Construction Projects (compiled by the research team) data.wprdc.org | Permits May 2019 – Sep 2026, pulled 2026-09-26 | Permit locations, City of Pittsburgh only | 4 caveats
|
Zoning Board decisions: housing (2023–26) zba-decisions-housing | legal | observed | City of Pittsburgh ZBA decisions (pittsburghpa.gov and Internet Archive), coded by HouseHack 2026-09-26 pittsburghpa.gov | Decisions 2023 – Aug 2026, pulled 2026-09-26 | Case addresses, City of Pittsburgh | 4 caveats
|
Zoning Board decisions: other (2023–26) zba-decisions-other | legal | observed | City of Pittsburgh ZBA decisions (pittsburghpa.gov and Internet Archive), coded by HouseHack 2026-09-26 pittsburghpa.gov | Decisions 2023 – Aug 2026, pulled 2026-09-26 | Case addresses, City of Pittsburgh | 4 caveats
|
Access to Opportunity pillar-access | pillar | value | HouseHack pillar scores (pillars.config.json, default weights) github.com | 2026-09-27.1 | Distance-weighted mean of nearby City of Pittsburgh parcels, drawn as hexagons (~170 m across, ~85 m when zoomed in), not one parcel | 5 caveats
|
Affordability pillar-afford | pillar | value | HouseHack pillar scores (pillars.config.json, default weights) github.com | 2026-09-27.1 | Distance-weighted mean of nearby City of Pittsburgh parcels, drawn as hexagons (~170 m across, ~85 m when zoomed in), not one parcel | 5 caveats
|
Climate & Environment pillar-climate | pillar | value | HouseHack pillar scores (pillars.config.json, default weights) github.com | 2026-09-27.1 | Distance-weighted mean of nearby City of Pittsburgh parcels, drawn as hexagons (~170 m across, ~85 m when zoomed in), not one parcel | 5 caveats
|
Demand pillar-demand | pillar | value | HouseHack pillar scores (pillars.config.json, default weights) github.com | 2026-09-27.1 | Distance-weighted mean of nearby City of Pittsburgh parcels, drawn as hexagons (~170 m across, ~85 m when zoomed in), not one parcel | 5 caveats
|
Overall pillar-overall | pillar | value | HouseHack pillar scores (pillars.config.json, default weights) github.com | 2026-09-27.1 | Distance-weighted mean of nearby City of Pittsburgh parcels, drawn as hexagons (~170 m across, ~85 m when zoomed in), not one parcel | 5 caveats
|
Site Feasibility pillar-site | pillar | value | HouseHack pillar scores (pillars.config.json, default weights) github.com | 2026-09-27.1 | Distance-weighted mean of nearby City of Pittsburgh parcels, drawn as hexagons (~170 m across, ~85 m when zoomed in), not one parcel | 5 caveats
|
Bank branches places-banks | places | observed | FDIC BankFind branch locations api.fdic.gov | FDIC index Sep 2026 | Branch locations | 2 caveats
|
Bike share (POGOH) places-bike-share | places | observed | POGOH station information (GBFS feed) pittsburgh.publicbikesystem.net | Snapshot Sep 2026 | Station locations | 1 caveats
|
Child care places-child-care | places | observed | PA DHS child care providers (data.pa.gov) data.pa.gov | Updated daily; pulled Sep 2026 | Provider locations | 1 caveats
|
City pools & rec centers places-citiparks | places | observed | Citiparks facilities (City of Pittsburgh ArcGIS) services1.arcgis.com | Pulled Sep 2026 | Facility locations, City only | 2 caveats
|
Colleges & universities places-colleges | places | observed | NCES EDGE postsecondary school locations nces.ed.gov | 2023–24 | Campus locations | 1 caveats
|
Community centers places-community-centers | places | observed | OpenStreetMap contributors (ODbL) merged with Allegheny County Assets (WPRDC) openstreetmap.org | OSM pulled Sep 2026; Assets entries date from 2017–2020 | Listed locations | 2 caveats
|
Community health centers places-health-centers | places | observed | HRSA health center service delivery sites data.hrsa.gov | HRSA daily file, Sep 2026 | Service site locations | 2 caveats
|
Dentists places-dentists | places | observed | OpenStreetMap contributors (ODbL) merged with Allegheny County Assets (WPRDC) openstreetmap.org | OSM pulled Sep 2026; Assets entries date from 2017–2020 | Listed locations | 3 caveats
|
Drug & alcohol treatment places-treatment | places | observed | PA Department of Health licensed drug & alcohol facilities (PASDA) mapservices.pasda.psu.edu | Dec 2025 release | Facility locations | 1 caveats
|
EMS stations places-ems | places | observed | Allegheny County EMS agencies (ConnectGovs GIS) + City of Pittsburgh EMS stations + OpenStreetMap (ODbL) services.arcgis.com | County list Feb 2024; City layer and OSM Sep 2026 | Agency bases, clipped to the county | 2 caveats
|
Farmers markets places-farmers-markets | places | observed | WPRDC farmers markets (CC0) data.wprdc.org | Updated Aug 2026 | Market locations | 2 caveats
|
Fire stations places-fire | places | observed | Allegheny County fire departments (ConnectGovs GIS), City of Pittsburgh fire stations, and OpenStreetMap (ODbL) services.arcgis.com | County list Jan 2024; City layer and OSM Sep 2026 | Station locations, clipped to the county | 2 caveats
|
Food pantries & distributions places-food-banks | places | observed | Greater Pittsburgh Community Food Bank partner programs (hosted by Pittsburgh Regional Transit) services3.arcgis.com | Data gathered Apr 2025 | Program locations | 2 caveats
|
Grocery stores places-groceries | places | observed | USDA FNS SNAP authorized retailers merged with ACHD food permits (deduplicated) services1.arcgis.com | SNAP list Sep 2026; ACHD permits as of 2025 | Store locations | 4 caveats
|
Hospitals places-hospitals | places | observed | PA Department of Health licensed hospitals (PASDA) mapservices.pasda.psu.edu | DOH Hospitals, Nov 2025 | Facility locations, Allegheny County | 4 caveats
|
Laundromats places-laundromats | places | observed | OpenStreetMap contributors (ODbL) merged with Allegheny County Assets (WPRDC) openstreetmap.org | OSM pulled Sep 2026; Assets entries date from 2017–2020 | Listed locations | 3 caveats
|
Libraries places-libraries | places | observed | Allegheny County libraries (Allegheny County GIS) services1.arcgis.com | Edited Dec 2024 | Library locations | 1 caveats
|
Low food access (USDA) food-access | places | observed | USDA ERS Food Access Research Atlas 2025 ers.usda.gov | 2025 edition (store and ACS inputs roughly 2019–2021) | Census tract (2020) | 2 caveats
|
Magisterial district courts places-courts | places | observed | Allegheny County Magisterial District Courts (ConnectGovs GIS) services.arcgis.com | Edited Dec 2023 | Court office locations | 2 caveats
|
Nursing homes places-nursing-homes | places | observed | PA Department of Health nursing homes (PASDA) mapservices.pasda.psu.edu | Sep 2026 release | Facility locations | 2 caveats
|
Other food retail places-food-other | places | observed | USDA FNS SNAP authorized retailers merged with ACHD food permits (deduplicated) services1.arcgis.com | SNAP list Sep 2026; ACHD permits as of 2025 | Store locations | 2 caveats
|
Parks & greenways parks | places | observed | Allegheny County GIS: municipal parks, county park boundaries, greenways services1.arcgis.com | Municipal parks and greenways edited Apr 2026; county parks Jun 2023 | Park polygons; measure distance to the nearest edge, not the center | 2 caveats
|
Pharmacies places-pharmacies | places | observed | CMS NPPES NPI Registry (pharmacy organizations) npiregistry.cms.hhs.gov | Registry pulled Sep 2026 | Pharmacy locations (geocoded addresses) | 3 caveats
|
Playgrounds (City) places-playgrounds | places | observed | City of Pittsburgh playgrounds (WPRDC, CC-BY) data.wprdc.org | Pulled Sep 2026 | Playground locations, City only | 1 caveats
|
Police stations places-police | places | observed | Allegheny County municipal police (ConnectGovs GIS) + OpenStreetMap (ODbL) + PA State Police stations (PASDA) services.arcgis.com | County list Jan 2024; OSM Sep 2026; PSP Mar 2025 | Station locations, clipped to the county | 3 caveats
|
Post offices places-post-offices | places | observed | OpenStreetMap contributors (ODbL) merged with Allegheny County Assets (WPRDC) openstreetmap.org | OSM pulled Sep 2026; Assets entries date from 2017–2020 | Listed locations | 2 caveats
|
Regional trails trails | places | observed | Allegheny County regional trails (county planning) services1.arcgis.com | Edited Jan 2025 | Trail segments | 1 caveats
|
Restaurants & shops (density) commerce-density | places | observed | Allegheny County Health Dept food facility permits (WPRDC, CC0) data.wprdc.org | Permits as of 2025 | Density of ~11k licensed restaurants and convenience/retail food stores | 2 caveats
|
School performance (PA Future Ready) school-quality | places | observed | PA Department of Education, Future Ready PA Index 2024–25 futurereadypa.org | 2024–25 school year | School locations (cyber schools excluded) | 4 caveats
|
Schools places-schools | places | observed | Allegheny County Schools (Allegheny County GIS) services1.arcgis.com | Edited Mar 2026 | School locations | 2 caveats
|
Senior centers places-senior-centers | places | observed | Allegheny County Assets (WPRDC, CC0) data.wprdc.org | Registry updated Sep 2026; many underlying sources date from 2017–2020 | Listed locations | 2 caveats
|
Subsidized housing subsidized-housing | places | observed | HUD: LIHTC database, Public Housing Buildings, Multifamily Assisted Properties services.arcgis.com | LIHTC Dec 2024; public housing and assisted multifamily Jul 2026 | Property / building locations, clipped to the county | 3 caveats
|
Urgent care & other clinics places-clinics | places | observed | CMS NPPES NPI Registry (clinic taxonomies) npiregistry.cms.hhs.gov | Registry pulled Sep 2026 | Clinic locations (geocoded addresses) | 3 caveats
|
1937 redlining map (HOLC) holc-1937 | policy | observed | Mapping Inequality, Nelson et al., University of Richmond Digital Scholarship Lab (CC BY-SA), via WPRDC dsl.richmond.edu | 1937 | Historic appraisal areas (1937 city and some inner suburbs) | 2 caveats
|
City zoning overlays & historic districts city-zoning-overlays | policy | policy | City of Pittsburgh zoning overlays and historic districts (City ArcGIS) services1.arcgis.com | Pulled Sep 2026 | Overlay districts | 2 caveats
|
Community organizations (RCOs) rcos | policy | observed | City of Pittsburgh Registered Community Organizations (City ArcGIS) services1.arcgis.com | Edited Aug 2026 | RCO service areas (they can overlap) | 1 caveats
|
Health professional shortage areas health-shortage-areas | policy | policy | HRSA Health Professional Shortage Areas (federal designations) data.hrsa.gov | Updated daily; pulled Sep 2026 | Designated service areas that touch Allegheny County | 3 caveats
|
Subsidy designation areas designation-areas | policy | policy | HUD: Qualified Census Tracts 2026, Difficult Development Areas 2026, Opportunity Zones huduser.gov | QCT/DDA 2026 (edited Sep 2025); Opportunity Zones designated 2018 | Tracts (QCT, OZ) and ZIP areas (DDA) | 2 caveats
|
Dataset catalog
| Dataset (publisher) | Source / endpoint | Vintage | License | Used in |
|---|---|---|---|---|
| Allegheny County parcel boundaries (Allegheny County GIS, via WPRDC) | data.wprdc.org (~585k parcels; imported into the team's Neon PostGIS database, reprojected from EPSG:2272) | Sept 2026 | WPRDC (county data) | Parcel outlines on the map; parcel selection |
City of Pittsburgh ParcelsPublic (City of Pittsburgh) | CITY/ParcelsPublic/FeatureServer/0 (142,635 features, 142,365 distinct PINs; private owners already anonymized as "Private") | edited 2026-09-21 | City open data | Pillar "parcel spine" (every scored parcel), vacant-building address join, lot area |
| Parcel centroids with census geographies (Allegheny County, via WPRDC) | data.wprdc.org (585,387 rows; 2020 tract and block-group codes, verified 99.994% match) | March 2025 | CC0 | Parcel → tract / block-group crosswalk for every pillar indicator; parcel-level heat and canopy sampling |
City zoning districts PGHWebZoning (City of Pittsburgh Dept. of City Planning) | CITY/PGHWebZoning/FeatureServer/0 (1,069 polygons, field zon_new); also WPRDC data.wprdc.org | edited 2026-09-22 | City open data | pittsburgh-zoning.geojson base layer, residential-zoning, legal matrix join, permit and ZBA district joins |
City neighborhoods PGHWebNeighborhoods | CITY/PGHWebNeighborhoods/FeatureServer/0 (90 polygons) | edited 2026-07-02 | City open data | Permit and ZBA neighborhood joins |
| City boundary | CITY/City_Boundary/FeatureServer/0 | – | City open data | Clipping City-only layers |
| Allegheny County boundary | COUNTY/Allegheny_County_Boundary/FeatureServer/0; TIGERweb tigerweb.geo.census.gov (GEOID 42003) | current | County / public domain | Clipping every county-wide layer |
| Census tracts, block groups (2020) and ZCTAs (U.S. Census Bureau) | Census Reporter geometry API api.censusreporter.org (1,062 block groups) and 140|05000US42003 (394 tracts); TIGERweb ZCTA tigerweb.geo.census.gov | 2020 geography | Public domain | Every tract / block-group / ZIP choropleth |
| Census tracts (2010 geography) | tigerweb.geo.census.gov | 2010 | Public domain | Opportunity Atlas, life expectancy and blood-lead layers (2010-tract data) |
| 2020↔2010 tract relationship file; 2010 Gazetteer tract file (U.S. Census Bureau) | www2.census.gov ; www2.census.gov | 2020 / 2010 | Public domain | Early population-change estimate (superseded by §2.6 household growth) |
| Basemap: CARTO Dark Matter and Positron vector styles, incl. 3D building extrusions | basemaps.cartocdn.com ; basemaps.cartocdn.com (buildings from the building source-layer, OpenStreetMap data) | live | CARTO terms + ODbL | App basemap; 3D buildings (Mat's 3d-buildings branch) |
| Basemap: OpenStreetMap raster tiles | tile.openstreetmap.org | live | ODbL; OSM tile usage policy | Alternate basemap |
| U.S. Census Geocoder | geocoding.geo.census.gov and /geocoder/geographies/onelineaddress (benchmark Public_AR_Current) | live | Public domain | Geocoding pharmacies, clinics, senior/care facilities |
| OpenStreetMap Nominatim | nominatim.openstreetmap.org | live | ODbL; Nominatim usage policy | App address search; fallback geocoding for 29 pharmacies |
| National Flood Hazard Layer, flood hazard zones (FEMA) | hazards.fema.gov (county bbox; 9,501 polygons kept after dropping "minimal hazard") | effective FIRMs, current | Public domain | flood-zones; pillar gates (floodway, floodplain) |
| National Risk Index, census tracts (FEMA) | services.arcgis.com (inland flood, heat wave, cold wave, winter weather, strong wind, landslide, ice storm, tornado ratings) | NRI Dec 2025 | Public domain | weather-risk; climate pillar |
| 3D Elevation Program slope, computed on the fly (USGS) | elevation.nationalmap.gov (raster function Slope Degrees, remapped to 15–25% and ≥25%) | service dated 2026-08-25 | Public domain | slope-raster |
Steep slopes ≥25% PGHWebSlope25 (City) | CITY/PGHWebSlope25/FeatureServer/0 (1,714 polygons) | edited 2018-05-31 | City open data | city-steep-slopes; pillar gate (steep slope share) |
Landslide-prone areas PGHWebLandslideProne (City) | CITY/PGHWebLandslideProne/FeatureServer/0 (37 polygons) | edited 2024-12-19 | City open data | city-hazard-overlays; pillar gate |
Undermined areas PGHWebUndermined (City) | CITY/PGHWebUndermined/FeatureServer/0 (47 polygons) | edited 2018-04-27 | City open data | city-hazard-overlays; pillar flag |
| Landslide susceptibility (Allegheny County GIS; flags consistent with 1970s–80s USGS Pomeroy mapping, provenance inferred) | COUNTY/Landslide_Prone_Areas/FeatureServer/0 (7,242 polygons; 6,792 with a hazard flag) | edited 2018-07-19 | Not stated | landslide-susceptibility; pillar gate |
| Landslide incidents on county roads (Allegheny County Public Works) | COUNTY/Landslides_DPW/FeatureServer/0 (115 points) | edited 2025-09-24 | Not stated | landslide-incidents |
| Landslide public-assistance sites (Allegheny County) | COUNTY/Landslide_Public_Assistance/FeatureServer/0 (86 points) | edited 2023-10-20 | Not stated | landslide-public-assistance |
| Mined-out areas, underground coal (PA DEP) | gis.dep.pa.gov (997 polygons in the county bbox) | current | PA public data | mined-out-areas |
| Mine Subsidence Insurance risk, mining confirmed (PA DEP) | gis.dep.pa.gov (raster export) | current | PA public data | mine-subsidence-raster |
| Tornado paths 1950–2025 (NOAA Storm Prediction Center) | spc.noaa.gov (44 tracks touching the county) | through 2025 | Public domain | tornado-paths |
| Urban heat island, 2020 mean land surface temperature tiles (City of Pittsburgh) | tiles.arcgis.com (display only; no values) | 2020 | City open data | surface-heat-raster |
| Landsat 8 Collection 2 Level-2 surface temperature (USGS; served by Microsoft Planetary Computer) | STAC planetarycomputer.microsoft.com collection landsat-c2-l2; data API /api/data/v1/item/bbox/...npy (band lwir11 + qa_pixel). Scenes: LC08_L2SP_017032_20250810_02_T1, LC08_L2SP_017032_20240823_02_T1, LC08_L2SP_017032_20230618_02_T1, LC08_L2SP_017032_20230602_02_T1 | 2023–2025 summers | Public domain (USGS Landsat) | Pillar indicators: parcel and block-group land surface temperature (4-scene anomaly composite) |
| NLCD 2021 tree canopy cover (USFS / MRLC) | mrlc.gov ; WMS mrlc.gov (layer nlcd_tcc_conus_2021_v2021-4); WCS mrlc.gov and /geoserver/mrlc_display/wcs (coverage mrlc_display__nlcd_tcc_conus_2021_v2021-4) | 2021 | Public domain | tree-canopy-raster; pillar canopy indicators |
| NLCD 2021 percent developed impervious (MRLC) | WMS layer NLCD_2021_Impervious_L48; WCS coverage mrlc_download__NLCD_2021_Impervious_L48 | 2021 | Public domain | impervious-raster; pillar impervious indicator |
| EPA EJScreen v2.32, state percentiles by block group (EPA; via the Public Environmental Data Partners mirror after EPA took EJScreen offline in 2025) | services2.arcgis.com (PM2.5, ozone, NO2, diesel PM, traffic proximity, RSEI air toxics) | v2.32 (indicator years vary) | Public domain (EPA data; mirror) | air-quality; climate pillar air indicators. Mirror homes: pedp-ejscreen.azurewebsites.net , screening-tools.com ; the original ejscreen.epa.gov was offline |
| ACHD point-source emissions inventory (Allegheny County Health Dept, via WPRDC) | data.wprdc.org (resource 1ab77bb5-5684-430e-bdda-fb401167fb6a, 16,768 rows, 58 current facilities) | 2010–2021 (latest year 2021) | WPRDC | Pillar indicator: nearby industrial emissions (achd_facilities_latest.csv) |
| Water service line material, lead (Pittsburgh Water / PWSA) | PWSA/PGH2O_Water_Service_Line_Material/FeatureServer/0 (80,876 service addresses) | edited 2026-08-31 | Not stated; PWSA accuracy disclaimer | lead-service-lines; pillar flag |
| Sewer lines, county-wide (Allegheny County GIS; 3 Rivers Wet Weather "LBs" export) | COUNTY/Pittsburgh_Sewers/FeatureServer/0 (125,128 segments, 86 municipal systems) | 2012 export | Not stated | sewer-lines (loaded by viewport) |
| Pittsburgh Regional Transit stops with scheduled trips (PRT, via WPRDC) | data.wprdc.org ; file data.wprdc.org (6,389 stops) | GTFS feed 2606, updated 2026-09-22 | CC BY | transit-stops; access pillar transit indicator |
| Access Across America: Transit 2024, jobs reachable by transit (University of Minnesota Accessibility Observatory) | conservancy.umn.edu (PA file, block groups, 30 / 45 minutes) | 2024 | CC BY-NC 4.0 | jobs (transit_jobs_30/45); access pillar |
| POGOH bike-share stations (POGOH, GBFS feed) | pittsburgh.publicbikesystem.net (60 stations) | live | GBFS public feed | places-bike-share |
| PennDOT reportable crashes, Allegheny County (PennDOT, via WPRDC) | data.wprdc.org (2025 resource c6bedb17-2d23-49b1-843a-8f6b41e5e5c3; 2024 4c016b4c-59f0-45ca-981c-718c784b3462; 2023 96777349-57df-48fb-a1d7-8384786fe71a) | 2023–2025 | CC0 | serious-crashes (killed-or-seriously-injured, 1,174) |
| American Community Survey 5-year (U.S. Census Bureau, via the Census Reporter API) | api.censusreporter.org (human-readable: censusreporter.org ; table pages such as censusreporter.org) — tables B19013 (median household income), B25064 (median gross rent), B25077 (home value), B25070 (rent burden), B25002/B25004 (vacancy), B25003 (tenure), B25001 (housing units), B28002 (internet), B01001/B01003 (age, population), B25010 (household size), B11001 (household type), B14007 (school enrollment), B26001 (group quarters) | ACS 2020–2024 | Public domain | housing-costs, home-internet; pillar demand, need and affordability indicators; college-enrollment adjustment |
| Comprehensive Housing Affordability Strategy, CHAS (HUD) | huduser.gov (tract Table 8) + data dictionary huduser.gov ; landing page huduser.gov | 2018–2022 (released Dec 2025) | Public domain | chas-cost-burden; need pillar |
| FY2026 income limits (HUD) | huduser.gov (Pittsburgh HMFA, fips 4200399999; MFI $110,400); also the HUD USER API huduser.gov (needs a HUD USER token; the xlsx was used) | FY2026 | Public domain | hud_fy2026_pittsburgh.json (affordability context) |
| FY2026 Fair Market Rents and Small Area FMRs (HUD) | huduser.gov ; huduser.gov (393 ZIPs) | FY2026 | Public domain | pittsburgh_safmr_fy2026.csv |
| Designated mandatory Small Area FMR areas (HUD) | huduser.gov (Pittsburgh HMFA designated 2016, implemented 4/1/2018) | Aug 2024 list | Public domain | Methodology note (vouchers use ZIP-level SAFMRs) |
| FY2026 Multifamily Tax Subsidy Project (LIHTC) income limits (HUD) | huduser.gov ; huduser.gov | FY2026 | Public domain | hud_fy2026_pittsburgh.json |
| Location Affordability Index v3 (HUD / DOT) | HUD/Location_Affordability_Index_v3/FeatureServer/0 + methodology files.hudexchange.info (Table 11 household profiles); hudexchange.info ; hudgis-hud.opendata.arcgis.com | 2012–2016 ACS inputs; 2010 tracts | Public domain | location-affordability (VMT, housing + transportation cost); pillar indicators |
| Qualified Census Tracts 2026, Difficult Development Areas 2026, Opportunity Zones (HUD) | HUD/QUALIFIED_CENSUS_TRACTS_2026/FeatureServer/0; HUD/Difficult_Development_Areas_2026/FeatureServer/0; HUD/Opportunity_Zones/FeatureServer/13; landing huduser.gov | 2026 (OZ 2018 designations) | Public domain | designation-areas |
| LIHTC properties (HUD) | HUD/LIHTC/FeatureServer/0; huduser.gov | data edited 2024-12-09 | Public domain | subsidized-housing; senior housing |
| Public Housing Buildings and Developments (HUD) | HUD/Public_Housing_Buildings/FeatureServer/0; HUD/Public_Housing_Developments/FeatureServer/0 | edited 2026-07-21 | Public domain | subsidized-housing; senior housing (HACP units) |
| Multifamily Properties – Assisted; Section 202; Section 811 (HUD) | HUD/MULTIFAMILY_PROPERTIES_ASSISTED/FeatureServer/0; HUD/HUD_Section_202_Properties/FeatureServer/0; HUD/Section_811_Properties/FeatureServer/21 | edited 2026-07-21 | Public domain | subsidized-housing (incl. HAP contract expirations); senior-supportive-housing |
| Housing Choice Vouchers by tract (HUD) | HUD/Housing_Choice_Vouchers_by_Tract/FeatureServer/0 | edited 2026-07-21 | Public domain | housing-vouchers |
| Housing Authority of the City of Pittsburgh communities (HACP) | hacp.org (16 senior communities) | read 2026-09-26 | Web page | senior-supportive-housing |
| Low-Income Energy Affordability Data (LEAD) Tool, 2022 (U.S. DOE) | data.openei.org (file "PA AMI Census Tracts 2022.csv"); DOI 10.25984/2504170; units per Scheier & Kittner, Nature Communications 2022 | ACS 2022 basis | CC BY 4.0 | Pillar energy-burden indicator |
| Eviction Tracking System, Pittsburgh (Princeton Eviction Lab; filings collected by Legal Services Corporation with CMU CREATE Lab) | eviction-lab-data-downloads.s3.amazonaws.com (Pittsburgh rows run 01/2020–12/2025, ZIP level); pages evictionlab.org , evictionlab.org | 2025 filings | Eviction Lab terms | evictions (ZIP); pillar displacement indicator |
| Market Value Analysis 2021 and Displacement Risk Ratio 2021 (Reinvestment Fund for URA / Allegheny County, via WPRDC) | data.wprdc.org (package f669d677-c9e2-4d2f-b16f-c9ab5a4f3d10) — MVA GeoJSON .../resource/ec09f5ad-f43e-4f06-af3a-65641c2818dc/download/mva.geojson; DRR shapefile .../resource/3a648531-15d7-4fc0-aba0-611968b92435/download/pitts_allegheny_drr2021.zip; dictionary .../resource/45fe19b5-26bd-455e-aae7-c4b99f30946d/... | 2017–2019 sales; 2014–2020 DRR | CC0 | market-mva; demand and displacement indicators |
| Property sale transactions (Allegheny County, via WPRDC) | Resource 5bbe6c55-bce6-4edb-9d04-68edeb6bf7b1, data.wprdc.org (503,747 rows; filtered to VALID SALE, dwellings, ≥ $10,000) | 2012–Sept 2026 | CC0 | market-zip (median sale price); allegheny_tract_sales_2019_2025.csv; demand pillar turnover |
| Zillow Observed Rent Index, ZIP (Zillow Research) | zillow.com ; ZORI files.zillowstatic.com (55 Allegheny ZIPs, Aug 2026); ZHVI files.zillowstatic.com | monthly through 2026-08-31 | Zillow Research terms | market-zip; demand pillar rent growth |
| USPS vacant addresses by tract (HUD/USPS, via WPRDC) | data.wprdc.org (2023-Q4 used) | 2023 | CC0 | usps-vacancy; demand pillar |
| Property assessments (Allegheny County Office of Property Assessments, via WPRDC) | data.wprdc.org (API resource 65855e14-549e-4992-b5be-d629afc676fa; bulk CSV resource 9a1c60bd-f9f7-4aba-aeb7-af8c3aaa44e5) | as of 2026-09-01 | CC0 | vacant-lots (75,982 vacant-land parcels); dwelling filter for tract sales |
USPS-vacant parcels Vacant_USPS_Feb_24 (City of Pittsburgh) | CITY/Vacant_USPS_Feb_24/FeatureServer/0 (4,686 parcels; 4,677 on the map), joined to ParcelsPublic addresses | Feb 2024 snapshot; edited 2026-05-28 | City open data | vacant-buildings |
| City-owned property (City of Pittsburgh, via WPRDC) | data.wprdc.org (resource e1dcee82-9179-4306-8167-5891915b62a7, 12,477 parcels; 12,454 on the map) | updated daily (2026-09-26) | CC BY | city-owned-land |
| City and school property tax delinquency (City of Pittsburgh, via WPRDC) | data.wprdc.org (resource ed0d1550-c300-4114-865c-82dc7c23235b) | 2026-09-24 | CC BY | tax-delinquent |
| Treasurer sales (City of Pittsburgh, via WPRDC) | data.wprdc.org (resource 6b2aa631-26e0-4d02-abe0-7fb87707210c, 96 parcels) | 2026-09-24 | Not specified | treasury-sales |
| Condemned and dead-end properties (City of Pittsburgh PLI, via WPRDC) | data.wprdc.org (resource 0a963f26-eb4b-4325-bbbc-3ddf6a871410, 3,569) | daily | CC BY | condemned-properties |
| PLI / DOMI / ES code violations (City of Pittsburgh, via WPRDC) | data.wprdc.org (resource 70c06278-92c5-4040-ab28-17671866f81c; last 24 months aggregated per block group) | daily | CC0 | code-violations |
| County real estate tax delinquency; mortgage foreclosure filings (Allegheny County, via WPRDC) | data.wprdc.org (resources b81a8a22-… 2025, 96e9d6b2-… cumulative); data.wprdc.org (859bccfd-0e12-4161-a348-313d734f25fd) | 2026-09 | CC0 | Researched and handed off; not on the map (need a parcel-centroid join) |
| 2020 Census redistricting data, PL 94-171, Pennsylvania (U.S. Census Bureau) | www2.census.gov (H1 occupied units, P1 population; tract level) | April 2020 | Public domain | Pillar household-growth indicator (allegheny_tract_household_growth_2020_2024.csv) |
| LEHD Origin-Destination Employment Statistics, LODES8 (U.S. Census Bureau) | WAC lehd.ces.census.gov and ..._2019.csv.gz; RAC .../pa/rac/pa_rac_S000_JT00_2023.csv.gz; OD .../pa/od/pa_od_main_JT00_2023.csv.gz and pa_od_aux_JT00_2023.csv.gz; crosswalk .../pa/pa_xwalk.csv.gz | 2019 and 2023 | Public domain | jobs; demand pillar job growth (allegheny_jobs_demand_bg_2023.csv) |
| Quarterly Census of Employment and Wages, Allegheny County (BLS) | data.bls.gov (and 2026/1) | 2025 Q4 | Public domain | Context statistic (county jobs and wages) |
| New residential construction permits (City of Pittsburgh PLI, via WPRDC) | data.wprdc.org (resource f4d1177a-f597-4c32-8cbf-7885f56253f6, 65,378 permits, 2019-06 → 2026-09) | daily | CC BY | permits-activity; pgh_new_residential_permits_classified.csv (keyword-classified housing type; demand-pillar new-construction indicator, labeled an assumption); raw rows in pgh_new_construction_permits_raw.csv |
| Social Vulnerability Index 2022 (CDC / ATSDR) | services3.arcgis.com (394 tracts); atsdr.cdc.gov | 2022 | Public domain | equity |
| Child Opportunity Index 3.0 (diversitydatakids.org, via a third-party ArcGIS mirror) | services7.arcgis.com (392 tracts) | 2021 data year | diversitydatakids terms | equity |
| The Opportunity Atlas (Opportunity Insights / U.S. Census Bureau) | opportunityinsights.org ; 2010→2020 tract crosswalk opportunityinsights.org ; opportunityinsights.org | 1978–83 birth cohorts; 2010 tracts | Public | opportunity-atlas |
| HOLC 1937 residential security map, Pittsburgh (Mapping Inequality, University of Richmond; via WPRDC) | data.wprdc.org (full-detail version: resource e17b6d76-4060-4691-be66-2edc367d87b8, papittsburgh1937.geojson); dsl.richmond.edu | 1937 | CC BY-SA | holc-1937 |
| Food Access Research Atlas 2025 (USDA ERS) | gisportal.ers.usda.gov (394 tracts; 32 low-income / low-access); ers.usda.gov | 2025 edition | Public domain | food-access |
| National Walkability Index (U.S. EPA, Smart Location Database) | geodata.epa.gov (1,100 block groups); epa.gov | ~2019 inputs | Public domain | walkability |
| Census college enrollment and group quarters (ACS B14007, B26001) | Census Reporter, as in §2.4 | ACS 2020–2024 | Public domain | Pillar student-household adjustment (allegheny_tract_college_enrollment.csv) |
| PLACES: census tract estimates, 2024 release (CDC) | data.cdc.gov (382 tracts); cdc.gov | 2024 release | Public domain | health-outcomes |
| U.S. Small-Area Life Expectancy Estimates, USALEEP (CDC / NCHS) | ftp.cdc.gov (357 Allegheny tracts); cdc.gov | 2010–2015 | Public domain | life-expectancy |
| Health Professional Shortage Areas: primary care, dental, mental health (HRSA) | gisportal.hrsa.gov (layers 2, 6, 10, 11); data.hrsa.gov ; bulk file data.hrsa.gov | updated daily | Public domain | health-shortage-areas (7 areas) |
| Health center service delivery and look-alike sites (HRSA) | data.hrsa.gov (35 active Allegheny sites); download page data.hrsa.gov | 2026-09-26 | Public domain | places-health-centers; access pillar |
| Hospital General Information, star ratings and ER flag (CMS Care Compare) | data.cms.gov (18 Allegheny hospitals) | dataset modified 2026-07-22 | Public domain | places-hospitals (CMS rating, emergency flag) |
| Licensed hospitals (PA Department of Health, via PASDA) | PASDA_DOH/6 ("DOH Hospitals 202511", 26 in Allegheny) | Nov 2025 | PA public data | places-hospitals |
| Licensed drug and alcohol treatment facilities (PA DOH, via PASDA) | PASDA_DOH/3 ("202512", 70 in Allegheny) | Dec 2025 | PA public data | places-treatment |
| Nursing homes (PA DOH, via PASDA and data.pa.gov) | PASDA_DOH/12 ("202609", 52 in Allegheny); data.pa.gov | Sept 2026 | PA public data | places-nursing-homes; senior-supportive-housing |
| Nursing home provider information, certified beds (CMS) | data.cms.gov (state = PA) | modified 2026-08-01 | Public domain | senior-supportive-housing |
| NPPES NPI Registry: pharmacies and clinics (CMS) | npiregistry.cms.hhs.gov (organization NPIs; Pharmacy taxonomies; Urgent Care, FQHC, Primary Care and Community Health clinic taxonomies; 112 Allegheny ZIPs) | live, 2026-09-26 | Public domain | places-pharmacies (275; Rite Aid removed), places-clinics (69); access pillar |
| Elevated blood lead level rates (Allegheny County Health Dept, via WPRDC) | data.wprdc.org (tract resource 8432f1ad-c5bf-447f-b34b-160d8ee063b6; 2015–20 column only; neighborhood resource 4e215bd5-7e83-4cd2-ae48-4de5dc29910c; Lead Data Guide a8f69277-6328-4421-a508-8b2100d753e3); ACHD testing page alleghenycounty.us | 2015–2020 | CC0 | child-blood-lead |
| Police incident blotter, UCR-coded archive (Pittsburgh Bureau of Police, via WPRDC) | data.wprdc.org (resource 044f2016-1dfd-4ab0-bc1e-065da05fca2e, 340,996 incidents; last 3 years to 2023-11) | ends Nov 2023 | CC BY | safety (violent / property per 1,000, City tracts) |
| Homicide incidents 2007–2022 and 2024 (Allegheny County, Medical Examiner locations) | COUNTY/AC_Homicide_Incidents_2007_2022/FeatureServer/2; COUNTY/2024_Homicides_in_Allegheny_County/FeatureServer/59 (victim fields dropped; aggregated per tract) | 2007–2022, 2024 | Not stated | safety (homicides per 10k) |
| PennDOT crashes | See §2.3 | 2023–2025 | CC0 | serious-crashes |
| SNAP-authorized retailers (USDA Food and Nutrition Service) | services1.arcgis.com (839 in Allegheny) | edited 2026-09-17 | Public domain | places-groceries (329), places-food-other (1,257); access pillar |
| Geocoded food facilities and inspection history (Allegheny County Health Dept, via WPRDC) | Facilities resource 112a3821-334d-4f3f-ab40-4de1220b1a0a (data.wprdc.org); inspections 2014–2025 resource 4ea730d8-2bf9-4783-b0a5-b41ed687097e; package data.wprdc.org | as of 2025 (inspections to 2025-07-31) | CC0 | Grocery merge (stale-record filter); commerce-density |
| Allegheny County Assets (WPRDC aggregator) | data.wprdc.org (resource 5c7825d2-6814-40c7-aefe-3d0f3d6f22e7, 32,001 assets; sources mostly 2017–2020) | modified 2026-09-21 | CC0 | places-senior-centers; merged into post offices, laundromats, dentists, community centers |
| OpenStreetMap amenities via the Overpass API | overpass-api.de and overpass.kumi.systems (4 tiles, clipped to the county; 2,329 features) | OSM data as of 2026-05-31 | ODbL | Post offices, laundromats, dentists, community centers, police and EMS additions, fire-station cross-check |
| Bank branches (FDIC BankFind) | api.fdic.gov (364 Allegheny branches) | index built 2026-09-25 | Public domain | places-banks |
| Food assistance programs (Greater Pittsburgh Community Food Bank; hosted by PRT) | services3.arcgis.com (163 sites; 162 on the map) | April 2025 | Not stated | places-food-banks; access pillar |
| Farmers markets (Allegheny County, via WPRDC) | data.wprdc.org (resource 0d99978a-ccf6-4315-af5a-a95acec87a9f, 69) | 2026-08-01 | CC0 | places-farmers-markets |
| Child care providers (PA Department of Human Services, data.pa.gov) | data.pa.gov (718 providers) | updated daily | Public | places-child-care; access pillar |
| Allegheny County Schools (Allegheny County GIS) | COUNTY/Allegheny_County_Schools/FeatureServer/0 (411) | edited 2026-03-27 | Not stated | places-schools; access pillar |
| Future Ready PA Index 2024–25 (PA Department of Education) | School Fast Facts futurereadypa.org ; performance futurereadypa.org ; glossary futurereadypa.org | 2024–25 | Public | school-quality (275 schools) |
| Postsecondary school locations (NCES EDGE) | nces.ed.gov (37); nces.ed.gov | 2023–24 | Public domain | places-colleges |
| Libraries (Allegheny County GIS) | COUNTY/Libraries/FeatureServer/0 (72) | edited 2024-12-04 | Not stated | places-libraries; access pillar |
| Municipal police departments; designated EMS agencies; fire departments; magisterial district court offices (ConnectGovs) | CG/Police_Departments_Allegheny_County/FeatureServer/0; CG/EMS_Departments_Allegheny_County/FeatureServer/0; CG/Fire_Departments_Allegheny_County/FeatureServer/0; CG/Magisterial_District_Judges_Office_Locations/FeatureServer/0 | 2023-12 to 2024-02 | Not stated | places-police (122), places-ems (58), places-fire (252), places-courts (46) |
| City fire stations and EMS medic stations (City of Pittsburgh) | CITY/Fire_Station/FeatureServer/0; CITY/EMS_Station/FeatureServer/0 | 2024-05 | City open data | places-fire, places-ems |
| Pennsylvania State Police stations (PSP, via PASDA) | mapservices.pasda.psu.edu | March 2025 | PA public data | places-police |
| Parks, county parks, greenways (Allegheny County GIS) | COUNTY/Allegheny_County_Municipal_Parks_New/FeatureServer/0 (752); COUNTY/ParkBoundaries/FeatureServer/0 (10); COUNTY/Allegheny_County_Greenways_New/FeatureServer/0 (13) | 2026-04-08 | Not stated | parks; access pillar |
| Regional trails (Allegheny County planning) | COUNTY/Regional_Trails_(PUBLIC)/FeatureServer/0 (3,193 segments; 3,192 on the map) | 2025-01-02 | Not stated | trails |
| City playgrounds (City of Pittsburgh, via WPRDC) | data.wprdc.org (resource 47350364-44a8-4d15-b6e0-5f79ddff9367, 125) | 2022-12 | CC BY | places-playgrounds |
| Citiparks pools and recreation centers (City of Pittsburgh) | CITY/Citipark_Facilities/FeatureServer/1 (rec centers), /2 (pools) | 2022–2026 | City open data | places-citiparks |
| Registered Community Organizations (City of Pittsburgh) | CITY/PGHWebRCO/FeatureServer/0 (45; contact fields dropped) | edited 2026-08-05 | City open data | rcos |
| Pittsburgh Zoning Code, Title Nine, incl. §911.02 use table (City of Pittsburgh, published by General Code eCode360) | ecode360.com (§911.02); print views https://ecode360.com/print/PI6865?guid= 45475424 (Art. IV), 45476514 (Art. V), 45479638 (Art. IX); TOC ecode360.com and ecode360.com ; other sections read directly (e.g. ecode360.com , ecode360.com , ecode360.com); SP-10 Appendix PDF (eCode360 attachment 336977) | legislation through 2026-09-16 | Code of record | typology-district-matrix.csv, special-district-residential-permissions.csv, use-definitions.csv; legal-pathway-plan, residential-zoning layers; pillar legal multiplier |
| Zoning Code use classifications handout (City DCP) | pittsburghpa.gov | – | City document | Use-size thresholds for senior and care housing |
| Zoning overlays and historic districts (City of Pittsburgh) | CITY/InclusionaryHousingOverlayDistrict/FeatureServer/0, CITY/PGHWebParkingReductionOverlay/FeatureServer/0, CITY/PGHWebMajorTransitBuffer/FeatureServer/0, CITY/Multi_Unit_Zoning_Districts/FeatureServer/0, CITY/PGHWebCHDHistoricDistricts/FeatureServer/0, CITY/PGHWebZoningOverlays/FeatureServer/0 | 2026 | City open data | city-zoning-overlays (608 features) |
| Suburban municipal zoning (each municipality's GIS; several listed in PRT's registry) | Penn Hills services5.arcgis.com · Bethel Park services7.arcgis.com · Monroeville services9.arcgis.com · Mt. Lebanon services8.arcgis.com · Whitehall services8.arcgis.com · Upper St. Clair services6.arcgis.com · Dormont services6.arcgis.com · Moon services8.arcgis.com · McCandless services1.arcgis.com | 2026 | Not stated (municipal) | suburban-zoning (5,872 polygons) |
| Zoning Board of Adjustment decisions (City of Pittsburgh DCP) | Decision PDFs under pittsburghpa.gov (1,362 PDF links), found via the Wayback Machine CDX API web.archive.org and the archived ZBA page (253 links); agenda page pittsburghpa.gov ; board page pittsburghpa.gov | 2023–Aug 2026 (476 decisions) | Public records | zba-decisions layer and outcome tables |
| City Council land-use matters (Pittsburgh City Council, Legistar) | Legistar Web API webapi.legistar.com (284 matters, 2000–2026-09-26); pittsburgh.legistar.com ; attachments on pittsburgh.legistar1.com | 2000–2026 | Public records | council-land-use-actions (183 geocoded) |
| Planning Commission minutes 2020–2025 (City DCP) | pittsburghpa.gov (one PDF per year) | 2020–2025 | Public records | planning-commission-actions-parsed.csv |
OneStopPGH permit records OSPI_H (City of Pittsburgh) | pghbridgis.pittsburghpa.gov | pulled 2026-09-26 | City data | permits-by-type (1,088 new-housing permits, days to issue) |
| Development & Construction Projects v2 (City of Pittsburgh; legacy, stale) | CITY/Development_Construction_Projects_v2/FeatureServer/0 | 2020–2023 (edited 2023-09-11) | City open data | permits-by-type (144 legacy records) |
| Allegheny County parcels MapServer (Allegheny County GIS) | gisdata.alleghenycounty.us | current | County data | Parcel matching for Council actions |
| PA DHS Human Services Provider Directory; Licensed Personal Care Homes (PA DHS) | humanservices.dhs.pa.gov (Office of Long-Term Living, Allegheny); data.pa.gov | 2026-09-22 | Public | senior-supportive-housing; care-facility-spacing (800 ft rule) |
| 511PA traffic cameras (PennDOT) | 511pa.com (still images); camera list from the site's data endpoint 511pa.com (DataTables query parameter, 100 rows per page), which yields 210 PennDOT stills (image /map/Cctv/<id>, ~60 s) plus 8 PA Turnpike HLS feeds; video URLs via 511pa.com (PennDOT streams on pa-se1.arcadis-ivds.com returned 401, so stills are used) | — | 511PA terms | cameras |
| PA Turnpike traffic cameras (Pennsylvania Turnpike Commission) | paturnpike.com ; camera API https://www.paturnpike.com/traveling/traffic-cameras/getbyroadway?roadwayId= (needs header X-Requested-With: XMLHttpRequest; in-county roadways I-76 ef2829cb-fea1-4083-af4c-9bfbd85b8568 and PA-576 2e8b2a93-1f81-4fed-8919-58b33b638eb8; CloudFront streams are Referer-gated) (HLS streams on CloudFront, played through the app's same-origin proxy) | — | PA Turnpike terms | cameras |
| USGS HIVIS river cameras (USGS) | camera registry api.waterdata.usgs.gov (needs an api-key header; the public key embedded in the HIVIS web app is used and isn't reproduced here); 2 cameras in Allegheny; apps.usgs.gov ; apps.usgs.gov (images https://usgs-nims-images.s3.amazonaws.com/720/<camId>/<camId>_newest.jpg) | — | Public domain | cameras |
| Breathe Cam industrial smoke cameras (CMU CREATE Lab) | breathecam.org ; list breathecam.org ; embedded as https://breathecam.org/#s=<id> (braddock2, westmifflin2, accan2, cementcam) | — | CREATE Lab terms | cameras |
| WeatherSTEM Allegheny sky cameras (WeatherSTEM) | allegheny.weatherstem.com ; allegheny.weatherstem.com (station list allegheny.weatherstem.com ; snapshots https://images.weatherstem.com/skycamera/allegheny/<handle>/cumulus/snapshot.jpg; the pitt camera has been frozen since 2024 and is excluded) | — | WeatherSTEM terms | cameras |
| EarthCam: Pittsburgh (Troy Hill) and The Andy Warhol Museum FigmentCam / ChurchCam | earthcam.com ; warhol.org ; earthcam.com | — | EarthCam terms; re-streaming is forbidden, so the pages are embedded as sandboxed iframes | cameras |
| PixCams bald eagle and red-tailed hawk nest cams (U. S. Steel, Duquesne Light; YouTube embeds) | pixcams.com and related pages; 7 YouTube live embeds: U. S. Steel eagles 2CP8QA_xKx4, 9njkml1oQRQ, uxzRXhKshow, a83Y5shllLg, dDIfhPXn_-c; hawk jUS-CaVPNYU; Hays eagle yPq9aNukckQ | — | Owner terms | cameras |
| Pittsburgh Zoo & Aquarium penguin and cheetah cams (Ozolio) | pittsburghzoo.org ; .../cheetah-webcam/ (Ozolio embeds EMB_QVKU00000674 penguin, EMB_ODOJ00000679 cheetah) | — | Owner terms | cameras |
| Discover the Burgh North Side skyline cam (Nest) | discovertheburgh.com | — | Owner terms | cameras |
| PPG Place plaza cam | ppgplace.com ; StarDot image 96.69.79.178 (HTTP, served through the app proxy) | — | Owner terms | cameras |
| W3SLL personal weather station cam (Squirrel Hill) | wx.w3sll.net ; image wx.w3sll.net (HTTP, served through the app proxy) | — | Owner terms | cameras |
| Camp Guyasuta cam (WeatherBug, via the Webcam Galore cache) | image images.webcamgalore.com (~30 min refresh); its former page webcamgalore.com returned 404 on 2026-09-27 | — | Owner terms | cameras |
| Automatic license plate reader locations (OpenStreetMap contributors, incl. DeFlock mapping) | Overpass extract saved as inputs/cameras/alpr.json (956 OSM features; ~225 Flock Safety). Query: nwr["man_made"="surveillance"] and nwr["surveillance:type"] in bbox 40.19,-80.37,40.68,-79.68, out center tags, clipped to the TIGERweb county polygon (GEOID 42003). Tags carry manufacturer, operator and direction; deflock.me | — | ODbL | alpr-cameras (locations only, no feeds) |
Licenses, attribution and runtime services
Attribution obligations
| Source | License / terms | What we must do |
|---|---|---|
| OpenStreetMap (basemap tiles, 3D buildings in CARTO tiles, Overpass extracts, Nominatim search, ALPR locations, post offices, laundromats, dentists, community centers, police/EMS additions) | ODbL 1.0 | Show "© OpenStreetMap contributors" with a link to openstreetmap.org. Share-alike applies to derived databases we redistribute. Respect the tile and Nominatim usage policies (low volume, identifying User-Agent). |
| CARTO basemaps (Dark Matter, Positron) | CARTO basemap terms | Show "© CARTO" next to the OSM credit. |
| Mapping Inequality (HOLC 1937 redlining) | CC BY-SA 4.0 | Credit "Mapping Inequality, Nelson et al., University of Richmond Digital Scholarship Lab". Derived redistribution must stay CC BY-SA. |
| UMN Accessibility Observatory, Access Across America: Transit 2024 | CC BY-NC 4.0 | Credit UMN; non-commercial use only. Fine for the hackathon; a commercial pilot would need permission. |
| DOE LEAD Tool 2022 | CC BY 4.0 | Credit "U.S. DOE Low-Income Energy Affordability Data (LEAD) Tool, 2022 update". |
| WPRDC datasets | CC0 or CC BY (varies by dataset; listed per row below) | For CC BY rows, credit the publishing agency and WPRDC. |
| Zillow Research (ZORI) | Zillow Research data terms | Credit "Zillow Research". Aggregates only. |
| Child Opportunity Index 3.0 | diversitydatakids.org terms (free with attribution) | Credit diversitydatakids.org. Note that we read a third-party ArcGIS mirror. |
| Princeton Eviction Lab (Eviction Tracking System) | Eviction Lab data terms | Credit "The Eviction Lab at Princeton University". |
| Live camera feeds | Each owner's terms; feeds are embedded or proxied, never re-hosted | Credit the operator in the viewer (the app does this per camera). |
| Everything else in this document | U.S. federal public domain, or state/county/city open data with no stated license | Credit the publisher. Where "not stated" appears, no license string was published. |
AI models and runtime services
| Service | How it is used | Endpoint |
|---|---|---|
| Jev ("TypeSafe") decision model, served through OpenRouter | Site-fit scores per housing type (with confidence) shown in the typology panel and cited by the chat companion; outputs are labeled "assumption", not evidence | openrouter.ai (model set by the SYSTEM_ONE_MODEL environment variable). About Jev: typesafe.ai ; dev.to ; press: marktechpost.com , tomshardware.com |
| Google Gemini API | Chat companion (tool calling over the scoring model) and read-aloud voice | generativelanguage.googleapis.com |
| Neon Postgres + PostGIS | Hosts the ~585k county parcels for viewport queries | Neon (serverless Postgres) |
| Microsoft Planetary Computer | STAC search and pixel extraction for Landsat surface temperature | planetarycomputer.microsoft.com ; /api/data/v1 |
| Census Reporter API | ACS tables and census geometries without an API key | api.censusreporter.org |
| Overpass API | OpenStreetMap extracts | overpass-api.de ; overpass.kumi.systems |
| Socrata catalog API | Discovering data.pa.gov and data.cdc.gov datasets | api.us.socrata.com |
| ArcGIS Online search | Discovering public feature services | arcgis.com |
Legal-feasibility datasets built by the team
| File | Primary sources |
|---|---|
care-facility-spacing-800ft.geojson | PA DHS / DOH facility records; Zoning Code §911.04 spacing rule (800 ft) |
council-land-use-actions.csv | Legistar Web API (webapi.legistar.com/v1/pittsburgh/matters), Allegheny County parcels MapServer, Census geocoder |
council-land-use-actions.geojson | Legistar Web API (webapi.legistar.com/v1/pittsburgh/matters), Allegheny County parcels MapServer, Census geocoder |
pathways.csv | Zoning Code Ch. 922 procedures (eCode360) |
permits-by-typology-district.csv | Derived from permits-new-residential |
permits-new-residential.geojson | OneStopPGH OSPI_H, WPRDC PLI permits, City Development_Construction_Projects_v2, PGHWebZoning, PGHWebNeighborhoods |
senior-and-group-housing.geojson | PA DHS provider directory, data.pa.gov personal care homes and nursing homes, CMS nursing home provider info, HUD MF-Assisted / 202 / 811 / LIHTC / Public Housing, HACP communities, City boundary, PGHWebZoning, Census geocoder |
typology-district-matrix-wide.csv | Zoning Code §911.02 (eCode360), live distinct zon_new query on PGHWebZoning |
typology-district-matrix.csv | Zoning Code §911.02 (eCode360), live distinct zon_new query on PGHWebZoning |
zba-decisions.csv | ZBA decision PDFs on pittsburghpa.gov, located via the Wayback Machine CDX API and the archived ZBA page; geocoded |
zba-decisions.geojson | ZBA decision PDFs on pittsburghpa.gov, located via the Wayback Machine CDX API and the archived ZBA page; geocoded |
zba-outcomes-by-district-typology.csv | Derived from zba-decisions |
Assumptions register
Method assumptions
| Area | Assumption | Where |
|---|---|---|
| Scoring | Missing data is excluded and the remaining weights renormalized; it is never filled with a guess at indicator level. | score.ts · E3 |
| Scoring | A pillar with too little data counts as that pillar's City 25th-percentile score, so missing data is never rewarded. | pillars.config.json · impute |
| Scoring | Pillar scores are floored at 1 inside the geometric mean so one zero doesn't zero the overall. | overall.floor |
| Scoring | All pillar weights default to 1. Equal weights are a starting point, not a finding; presets show other value sets. | pillars[].weight |
| Zoning | The overall zoning factor uses the easiest pathway among the five mainstream housing types unless the user picks one type in the panel; senior and group housing are scored separately in the typology panel. | legal.typologies · legalLevel |
| Scoring | Deal-killer hazards (floodway, sliver lot, mapped mines) multiply the overall score; the lowest factor applies. Mines get a mild ×0.9 because about 30% of City parcels are over mapped mines and the layer has no depth of cover. | overall.hazard_multiplier |
| Verdict | The worst reason sets the verdict color; unknown outranks green so missing data never reads as buildable. Mines are yellow (investigation needed), not red. | verdict.ts |
| Verdict | A lot is flagged for a likely setback variance when its width minus the §903.03 interior side setbacks leaves under 14 ft. Width is the short side of the oriented bounding rectangle; corner-lot exterior setbacks are not modeled. | verdict.side_setbacks |
| Pencil | Houses are valued at the tract's median resale price (close to an appraiser's comps); 2+ units at capitalized block-group rent. Both describe existing stock and understate new-build value, so the check leans pessimistic. | pencil.value_bias |
| Pencil | Soft costs 15%, margin 10%, rent-to-value ×103 (40% operating costs, 7% cap rate) and the 35% subsidy floor are our assumptions; construction $/sf and site cost come from hackathon experts and are editable. | pencil.* |
| Zoning | A parcel within 30 m of a district that allows attached or multi-unit homes is treated as a border case (×0.35 instead of ×0.2). | legal.border_m |
| Zoning | Where a district has no local Zoning Board cases, the approval likelihood is a neutral 0.7. | typology-panel.tsx · E9 |
| Zoning | Rezoning closeness uses a simple density ladder R1D → R1A → R2 → R3 → RM; non-residential districts count as distant (0.2). | typology-panel.tsx · E9 |
| Zoning | Rules are a simplified transcription of §911.02 / §903.03 (post-May-2025 minimum lot sizes). Anything not encoded shows as unknown, never guessed. | site-fit.ts |
| Site fit | Lot width and depth come from the parcel's minimum oriented bounding rectangle, which overstates buildable area on irregular lots. | parcels.ts · typologyFit |
| Site fit | Hazard shares under 1% of the lot are not mentioned to the model. | site-fit.ts · buildSiteState |
| Site fit | Ratings with confidence below 0.3 (House: 0.2) are shown but flagged for review; the thresholds were tuned on observed answers (~0.3–0.55). | site-fit.ts · REVIEW_CONFIDENCE |
| Data | Area indicators (tract, block group, ZIP) are assigned to every parcel inside that area. They describe the neighborhood, not the lot. | every area indicator |
Indicators labeled assumption or value judgment
| Indicator | Evidence | Weight | Why |
|---|---|---|---|
New homes permitted within 800 m, 2019–26 (log units) demand_new_construction | assumption | 1.5 | Revealed demand: builders are building nearby. Counts homes, not permits, on a log scale so one 224-unit building counts more than one house but doesn't swamp everything, and includes apartment buildings, which the City files as 'Commercial'. Unit counts are parsed from permit text (assumption where missing: 1). Several permits on one parcel (phases, trades) count once, at the largest unit count. |
Market Value Analysis type (A strongest … J most distressed) demand_market_strength | value | 0 | Default weight 0: rewarding strong markets steers housing away from distressed neighborhoods. Available for users who choose to weigh it. |
Median gross rent vs. rent affordable at 50% AMI (3-person household) afford_rent_vs_ami | assumption | 0 | Context only (weight 0): rent relative to AMI measures how expensive the market is, not how many households are struggling (round-1 review). 1242.5 = 30% × $49,700 (HUD FY2026 Pittsburgh 50% AMI, 3 persons) ÷ 12. |
Shown for context, weight 0 (not scored)
Data traps we found and handled
- ACHD's food-facility "open" list still includes closed businesses (Blockbuster, Ames, Eckerd). A facility is kept only if it was inspected in the last ~2 years; test accounts are filtered out.
- Rite Aid closed every store by Sept 2025 but still appears in NPPES under Rite Aid, Thrift Drug and Eckerd; these are removed.
- USDA SNAP retailer records repeat some stores; they are deduplicated.
- ACHD blood-lead 2021–24 columns have no published definition and run 5–10× the county rate; only pooled 2015–20 is used.
- County sales for 2018–19 have far fewer "valid sale" codes than later years; 2020 is the baseline.
- City police incident-level data ends in Nov 2023; crime is not used in any score.
- Census tracts starting 98xxxx are special-use (parks, airport); percent changes there are blanked below ~100 households.
- ZIP-based filters leak across the county line, so every layer is clipped to the county polygon.
- DOE LEAD tenure codes are REN/OWN, not RENT.
- Pittsburgh has been a mandatory HUD Small Area FMR area since 2018-04-01; SAFMR, not metro FMR, is the rent benchmark.
What this tool can't tell you
Methodology references and sources not used
Composite-indicator standards and index designs we followed
- [01]oecd.org 9789264043466-en.pdf
- [02]knowledge4policy.ec.europa.eu 10-step-pocket-guide-to-composite-indicators-and-scoreboards
- [03]wipo.int wipo-pub-2000-2023-appendix3-en-â-appendix-ii-full-version-â
- [04]hdr.undp.org hdr2023-24_technical_notes.pdf
- [05]hdr.undp.org hdrp201101.pdf
- [06]oecdbetterlifeindex.org better-life-initiative
- [07]web.archive.org better-life-initiative
- [08]oecd.org oecd-better-life-index.html
- [09]livabilityindex.aarp.org faqs
- [10]livabilityindex.aarp.org methods-sources
- [11]treasurer.ca.gov CTCAC-HCD-2025.pdf
- [12]eclass.hua.gr 12.GIS based multicriteria decision analysis a survey of the
- [13]vpp.sbuf.se How to make decision AHP.pdf
- [14]en.wikipedia.org TOPSIS
- [15]en.wikipedia.org PROMETHEE
- [16]asprs.org 1995_may_539-547.pdf
- [17]ideas.repec.org v41y2009i12p1513-1523.html
- [18]climateprogramportal.org cejst-technical-support-document.pdf
- [19]oehha.ca.gov calenviroscreen40reportf2021.pdf
- [20]nationalacademies.org 8
- [21]ideas.repec.org v168y2005i2p307-323.html
- [22]arxiv.org 1104.3009
- [23]smaa.fi tervonen-phd.pdf
- [24]pmc.ncbi.nlm.nih.gov PMC10986280
- [25]huduser.gov PittsburghPA-CHMA-24.pdf
- [26]alleghenycounty.us 2021-mva-executive-summary.pdf
- [27]reinvestment.com market-value-analysis
- [28]data.wprdc.org market-value-analysis-2021
- [29]zillow.com market-heat-index-methodology-34057
- [30]yorku.ca malczewski00.pdf
- [31]oregon.public.law oar_660-008-0005
- [32]california.public.law government_code_section_65583.2
- [33]leginfo.legislature.ca.gov codes_displaySection.xhtml?lawCode=GOV§ionNum=65583.2
- [34]law.cornell.edu 60.3
- [35]huduser.gov bg_chas.html
- [36]htaindex.cnt.org method-2022.pdf
- [37]portland.gov download
- [38]portland.gov gentrification_displacement_typology_analysis_2018_10222018.
- [39]github.com udp_replication_project_methodology_10.16.2020-converted.pdf
- [40]github.com displacement-typologies
- [41]reinvestment.com measuring-displacement-risk-in-gentrifying-neighborhoods
- [42]treasurer.ca.gov opportunity-map-methodology.pdf
- [43]treasurer.ca.gov CTCAC-HCD-2026-Opportunity-Map-Memo-10-20-25.pdf
- [44]docs.huduser.gov AFFH-T-Data-Documentation-AFFHT0007-August-2024.pdf
- [45]docs.huduser.gov AFFH-T-Data-Documentation-AFFHT0004-November-2017.pdf
- [46]ris.utwente.nl Geurs-accessibility.pdf
- [47]pmc.ncbi.nlm.nih.gov PMC3547595
- [48]walkscore.com methodology.shtml
- [49]walkscore.com transit-score-methodology.shtml
- [50]epa.gov national_walkability_index_methodology_and_user_guide_june20
- [51]diversitydatakids.org COI 3.0 Technical Documentation 20260803_0.pdf
- [52]atsdr.cdc.gov EJI_2024_Technical_Documentation.pdf
- [53]fema.gov fema_national-risk-index_methodology-hazards-overview.pdf
- [54]missionknox.org Appendix_4.3-FEMA_Scoring_Matrix-1.pdf
- [55]fema.gov fema_national-risk-index_technical-documentation.pdf
- [56]law.cornell.edu appendix-G_to_part_58
- [57]airnow.gov technical-assistance-document-for-reporting-the-daily-aqi
- [58]tandfonline.com 01944361003766766
- [59]lincolninst.edu 2038_1360_LP2010-ch07-Land-Use-and-Vehicle-Miles-of-Travel-i
- [60]pmc.ncbi.nlm.nih.gov PMC2801183
- [61]carbonleadershipforum.org the-embodied-carbon-benchmark-report
Researched but not used, and why
| Source | Why it isn't used |
|---|---|
PWSA sewersheds with combined-sewer overflow volume (PWSA/Sewersheds/FeatureServer/0, 485 polygons) | Researched as a sewer-stress proxy; the map shows sewer lines instead |
ALCOSAN interceptors and outfalls (https://services8.arcgis.com/vXrmg6iOl1pzNz4z/arcgis/rest/services/ALCOSAN_Collection_Network_Assets_LOCKED_Public/FeatureServer/4, ALCOSAN_Outfalls_LOCKED/FeatureServer/2) | Regional context only |
County sewer and water authority boundaries (COUNTY/Allegheny_Sewer, COUNTY/Allegheny_Water) | Context only |
County "2100 projections for SFHA" (COUNTY/2100_Projections_for_SFHA_NEW/FeatureServer/0) | Offered as an optional future-flood layer; not integrated |
City residential lot dimensions (CITY/Parcels_Exp_02052025_Residential_Lot_Dimensions/FeatureServer/0) and ETHOS lot suitability (CITY/ETHOS_Lot_Suitability/FeatureServer/0) | Provided to the pillar work; ETHOS scores are City composites, used only as a cross-check |
County business district streets (CITY/Business_District_Streets/FeatureServer/0) | Optional; not integrated |
MSI "possible mining" zones (PA DEP MSI_SubsidenceRiskMiningPossible) | Only the "confirmed" zones are mapped |
| CDC PLACES social-needs measures (housing insecurity, utility shutoff, transportation) | Empty for Pennsylvania in the 2024 and 2025 releases (stated as a data gap) |
| ACHD 2021–2024 blood-lead columns | No published definition; inconsistent with ACHD's own county rate (~3.1% in 2023) |
U.S. DOT BTS National Transportation Noise Map (maps.bts.dot.gov) | Service unreachable on 2026-09-26 |
County WIC offices (COUNTY/WICOffices) | No usable names |
| Postal_Service_Vacant_Parcels (City; a Regrid export) | Contains owner names and mailing addresses; excluded for privacy and licensing |
| Homeless and domestic-violence shelter locations | Deliberately excluded (DV shelter locations are confidential) |
| Allegheny County DHS landlord/tenant dashboard (tableau.alleghenycounty.us) | Tableau view only; no downloadable tract data |
| FBI Crime Data Explorer | Needs an API key and agency-to-municipality matching |
WPRDC air quality: monitor readings, sensor locations, forecasts, inversions, 2011 PM2.5 (data.wprdc.org , resource b646336a-deb4-4075-aee4-c5d28d88c426; data.wprdc.org ; data.wprdc.org ; data.wprdc.org) | Monitors too sparse to vary by parcel; forecasts aren't site characteristics; 2011 PM2.5 superseded by EJScreen |
| EPA facility points (EMEF, geopub.epa.gov) and PA DEP eMapPA extraction (gis.dep.pa.gov) | Probed during integration; the ACHD inventory was used instead |
WPRDC parcel-level lead hazard file (resource 2ddfd798-b71a-4f78-bc17-8c54c6a30511) | The map uses PWSA's newer address points instead |
City individual historic properties (CITY/PGHWEBCHDIndividialProperties/FeatureServer/0) | Researched for the legal work; historic districts are mapped instead |
City parks PGHWebParks, TPL ParkServe priority areas (CITY/TPL_ParkServe_ParkPriorityAreas/FeatureServer/0), county park hiking trails (COUNTY/Allegheny_County_Trails/FeatureServer/0) | County-wide park layers were used instead |
County municipal boundaries (COUNTY/Allegheny_County_Municipal_Boundaries/FeatureServer/0), ConnectGovs fire districts (CG/Allegheny_County_Fire_Districts/FeatureServer/0) | Context only |
City Police_Incidents_Blotter layer | Stale (2023); the WPRDC archive was used |
HUD CHAS on ArcGIS (HUD/ACS_5YR_ESTIMATES_CHAS_TRACT/FeatureServer/1) and the 2017–21 dictionary | 2013–2017 vintage; the 2018–2022 files were used |
| Esri Landsat Level-2 ImageServer (landsat.imagery1.arcgis.com, utility.arcgis.com proxy) | Requires a token; Microsoft Planetary Computer was used instead |
| OpenFreeMap tiles (tiles.openfreemap.org) | Recommended in early research; the app uses CARTO Positron / Dark Matter and OSM raster tiles instead |
| Census Bureau API (api.census.gov) | Keyless requests are redirected to its missing-key page (checked 2026-09-27); Census Reporter was used instead |
| Municode (library.municode.com ; api.municode.com) | The City's zoning GIS links each district to its eCode360 section, so the legal work used eCode360; the Municode library is a JavaScript app that wasn't scraped |
| Allegheny County Housing Needs Assessment (alleghenycounty.us) and the City of Pittsburgh Housing Needs Assessment (January 2022; pittsburghpa.gov ; implementation engage.pittsburghpa.gov) | The County assessment is listed in the organizer data catalog; both are too aggregated for parcel scoring and are used as policy context |
CDC PLACES 2025 release (data.cdc.gov yjkw-uj5s GIS format, cwsq-ngmh long format) | For Pennsylvania tracts it carries only 5 measures (dental visits, teeth lost, short sleep, colon and mammography screening; checked 2026-09-27), none of the health outcomes the layer shows, so the 2024 release is used |
| Water-lead context pages cited in answers: pgh2o.com , gettheleadoutpgh.org , amwater.com , alcosan.org | Background for the lead and sewer layers |
| Allegheny County eviction analyses: analytics.alleghenycounty.us ; analytics.alleghenycounty.us | Context; no tract-level download |
| Legal references consulted by the legal-feasibility work: PA Municipalities Planning Code (dep.state.pa.us); Babst Calland, "The devil is in the details and the deemed approval deadlines" (babstcalland.com) | Background for deemed-approval and hearing timelines |
Source manifest: DATA_SOURCES.md (low-level data session, compiled 2026-09-27).