Methods & Sources

Study area

All analysis is restricted to parcels whose centroid falls within 1 mile of San José Diridon Station (37.3292, −121.9036) — 5,279 parcels, ~1,420 acres.

Both the 1-mile buffer and all areas are computed in California State Plane Zone 3 (EPSG:2227, US survey feet), the data’s native projection and a locally accurate one. We deliberately do not buffer in Web Mercator (EPSG:3857): at Diridon’s latitude (~37.3°), Web Mercator inflates projected distances by 1/cos(lat) ≈ 1.26, so a “1-mile” (1,609 m) Web-Mercator buffer is really only ~0.8 mile on the ground. Using State Plane (1 mile = 5,280 ft) keeps the radius honest and avoids a bulk reprojection step that can fail on some PROJ installs.

Capacity

For each parcel we compute theoretical zoned capacity = lot acreage × maximum dwelling units per acre.

Maximum densities come from the City’s own code, not assumptions:

Zone Max du/ac Source
Urban Village (UV), Transit Residential (TR) 250 Title 20, Table 20-136
Urban Residential (UR) 95 Title 20, Table 20-136
Mixed-Use Commercial (MUC) 50 Title 20, Table 20-136
Mixed-Use Neighborhood (MUN) 30 Title 20, Table 20-136
Urban Village Commercial (UVC) 0 (no residential) Title 20, Table 20-136
Downtown (DC) 350 (conservative cap) Envision 2040 General Plan Downtown designation allows up to 800 du/ac

San José’s urban-village districts generally set a minimum density; the maximum for UV/TR/UR is the top of the Table 20-136 range. Downtown (DC) density is governed by the Envision 2040 General Plan Downtown designation and the Diridon Station Area Plan rather than a Title 20 du/ac figure; the General Plan permits up to 800 du/ac in the Downtown core. We deliberately apply a conservative 350 du/ac cap — high-rise towers at 800 du/ac are rare in practice, and height/FAR, FAA surfaces, and historic constraints bind well before that ceiling — so the Downtown capacity here understates the legal envelope rather than overstating it.

Benchmarks. The memo compares the envelope against two yardsticks, both scoped to the same 1-mile geography (output/tables/benchmarks.csv):

  • Existing homes (~12,800) — ACS 2019–2023 tract housing units apportioned by each tract’s share of land area inside the ring. Areal apportionment assumes units are evenly spread within a tract; a parcel-level count would require the county assessor’s per-parcel unit file, which is a paid product.
  • Planned homes (~34,300) — the City’s Growth Areas 2040 polygons (Downtown, the DSAP, and six urban villages intersect the ring), each area’s planned-housing program apportioned by its share of land inside the ring (per-area detail: output/tables/growth_areas_in_ring.csv). Two adjustments: the DSAP polygon lies mostly inside the Downtown growth area, so its footprint is subtracted from Downtown’s geometry before apportioning (no double counting); and the amended DSAP (2021) program of ~12,900 homes is substituted for the pre-amendment figure (2,710) still carried in the layer. Comparing a single plan area’s program against the whole ring’s envelope would overstate the gap — this apportionment keeps plan and envelope on the same geography. The layer is fetched once from the City’s ArcGIS service and cached (data/raw/sj_growth_areas_2040.geojson) so the analysis reproduces offline.

Soft sites (soft-site capacity)

A soft site is a high-capacity parcel that is currently vacant, surface parking, or barely built — i.e., where new homes can realistically go. The ideal measure (assessor improvement-to-land value ratio) is not openly published for Santa Clara County; it is a paid bulk-data product. We therefore use an open, reproducible proxy: building-footprint coverage from OpenStreetMap. For each parcel we sum the footprint area of buildings clipped to the lot, divide by lot area, and flag parcels with < 15% coverage as soft sites. Where OSM records building:levels, a rough built-FAR is also computed.

This is an underbuilt / vacant proxy, not a true existing-FAR measure: it sees ground coverage, not floors. “Soft-site capacity” is the gross zoned capacity on these underbuilt parcels — it is not net of the existing units already on them (most soft sites are non-residential — surface lots, parking, low-rise commercial — but we do not subtract existing units parcel by parcel). The 15% threshold is a choice; capacity is stable across reasonable thresholds:

Coverage threshold Soft-site capacity
< 5% ~34,200
< 10% ~37,600
< 15% (used) ~42,500
< 20% ~50,400
< 25% ~53,900

Developability floor. About half of the soft-site capacity (~21,900 units, 219 of 351 parcels) sits on parcels with zero detected building footprint — some genuinely vacant or surface parking, some likely rail, station, or civic land carrying Downtown zoning. Excluding all zero-footprint parcels gives a conservative floor of ~20,600 units; the defensible range is therefore ~20,600–42,500. A parcel-level ownership/use screen would tighten this.

Top soft sites (audit). The largest soft sites driving the total are listed below so a reviewer can judge developability directly (full list: output/tables/top_soft_sites.csv). All are Downtown (DC) except where noted; “verify” marks zero-footprint parcels that need an ownership/use check.

Parcel ID APN Zone Acres Built coverage Capacity Note
579060 25923024 DC 9.5 0.1% 3,329 underbuilt
44410 25927027 DC 6.8 11.1% 2,394 underbuilt
342811 25928041 DC 5.4 0.0% 1,872 verify
1000002155 25938142 DC 4.4 0.0% 1,532 verify
47117 26135027 DC 4.3 0.0% 1,492 verify
1000026169 25942086 DC 2.5 0.2% 886 underbuilt
44823 25941… DC 2.1 0.5% 722 underbuilt
363884 25928045 DC 1.8 0.4% 632 underbuilt
47118 26135014 DC 1.8 0.0% 618 verify
1000002078 46746080 DC 1.7 13.8% 610 underbuilt

The largest sites are small (1–10 acres) and concentrated in the Downtown core; five of the top fifteen are zero-footprint parcels flagged for verification. (APNs are reproduced verbatim from the City’s parcel file, including one malformed source value.)

Equity & displacement vulnerability

Tract indicators are from the ACS 2019–2023 5-year estimates, joined to the City’s official Equity Index (1–5; higher = higher priority). For the 1-mile station-area tracts we build a transparent, flag-based vulnerability measure, with cut-points set at the citywide median so they are defensible rather than arbitrary:

  • Renter-majority — % renters above the citywide median
  • Rent-burdened — % rent-burdened renters above the citywide median
  • Transit-dependent — % households without a vehicle above the citywide median
  • Low-income — median household income below the citywide median (this flag keeps the score from inverting on income: without it, affluent renter-heavy downtown tracts can out-score genuinely low-income tracts)
  • Equity-priority — Equity Index score ≥ 4

vulnerability_score = sum of the five flags (0–5); a tract is high vulnerability at 3+ and moderate at 2. Soft-site capacity is then attributed to each parcel’s tract by GEOID.

Because the flags use citywide-median cut-points, “higher vulnerability” is a deliberately inclusive class (9 of the 13 station-area tracts qualify). The strictest available lens — the City’s own Equity Index ≥ 4 — flags only one station-area tract, and about 6% of soft-site capacity falls in such equity-priority tracts. Read the two together: ~22% of capacity touches broadly-vulnerable tracts, ~6% touches the City’s highest-priority equity tracts.

Two scope notes: (1) the “who lives here” profile uses whole tracts that intersect the 1-mile ring (population/housing-unit weighted), not tract populations clipped to the buffer — so it describes the surrounding neighborhoods, not only residents inside the exact ring. (2) “Transit-dependent” in the vulnerability score is operationalized as no-vehicle households; the memo separately reports transit-commute share as a descriptive statistic.

Caveats

  • Theoretical, not a forecast. Zoned capacity is an upper bound on what the code permits, not a prediction of what will be built. Market feasibility, parcel assembly, and entitlement are out of scope.
  • Soft sites are a proxy. Footprint coverage flags underbuilt land but cannot distinguish a developable surface lot from a civic/transport parcel or protected open space; some zero-coverage parcels (e.g., the station and rail right-of-way) inflate the gross Downtown figure and are why the net number is treated as a ceiling.
  • Vulnerability ≠ predicted displacement. The flags identify exposure, not outcomes.
  • ACS margins of error apply to all tract estimates, especially small tracts.

Data sources

  • City of San José Open Data — parcels, zoning districts, Equity Index census tracts, affordable rental housing (https://data.sanjoseca.gov)
  • San José Municipal Code Title 20 (Zoning), Ch. 20.55, Table 20-136
  • Diridon Station Area Plan (amended 2021) & General Plan land use designations
  • ACS 2019–2023 5-year estimates via pygris / Census API
  • OpenStreetMap building footprints (© OpenStreetMap contributors, ODbL)

Reproducibility

The full pipeline is four scripts run in order (02→05): code/02_diridon_capacity.pycode/03_diridon_equity.pycode/04_diridon_figures.pycode/05_diridon_interactive.py. Each writes its outputs to output/tables/ and output/maps/, which this memo reads.