Home
subway-access

subway-access

stable

NYC subway accessibility — stations, outages, and tract-level need

v0.5.1Released 2026-04-21·Python
pip install "subway-access[factor-factory,tearsheets]"
AccessibilityCivic TechGeospatialNYCOpen DataPythonTransit

What It Is#

subway-access measures neighborhood-level access to accessible subway service using official MTA and Census sources, cached snapshots, and a transparent analysis pipeline. Euclidean catchments serve as the baseline, with OSM walking-network isochrones available as an advanced comparison layer.

Why It Exists#

ADA flags on stations answer one question; policy and equity work needs another: which areas are poorly served in practice when outages, distance, and demographics are in the picture? This package is a reusable toolkit toward that question.

What Ships in 0.5#

Core pipeline — fetch MTA stations and ADA status, elevator/escalator availability history, and ACS tract-level demographics for a selected study area. Cache reusable snapshot bundles and run analysis from the CLI (subway-access fetch-snapshot, subway-access analyze-snapshot).

Engine-audit appendix (new in 0.5) — primary CASESTUDY numbers are protected; a subway-access lazy bridge into factor-factory cross-checks the same panel against TWFE / Callaway-Sant'Anna / RD-robust / Moran's I and publishes the results as Appendix D. Directional agreement is the confirmation target; any discrepancy is surfaced, not papered over.

Factor pipeline — class-based Factor / Pipeline system with seven built-in factors: NeedScore, Coverage, GapScore, NearestStationDistance, NearestStationTravelMinutes, StationCount, and ReliabilityWeightedCoverage. Custom factors via subclassing with an extensible extras slot for external data.

Temporal panel infrastructure — multi-vintage ACS fetcher for longitudinal demographics, station ADA upgrade timeline construction via build_upgrade_timeline(), geographic panel dataset builder (tract x year), treatment/control group splitting, and distance-based spatial weights with a PySAL bridge.

SDK surface — 10 public modules with 123 public symbols: models, io, analysis, factors, helpers, export, pipeline, temporal, cli, and more.

Study areas are selected through nyc-geo-toolkit. Seven self-contained examples ship under examples/, including accessibility-change-over-time (full research pipeline with factor analysis, temporal panel, and auto-generated reports) and network-access-comparison (Euclidean vs OSM walking network).

Ecosystem Fit#

Sits beside nyc311 as another NYC open-data workflow: shared geography from nyc-geo-toolkit, econometric engines via the factor-factory bridge, reproducible tearsheets via jellycell. Domain logic and exports specific to transit accessibility and reliability live here.

The Subway Accessibility Gaps case study is the canonical showcase — 493 stations, 2,317 tracts, reliability-weighted coverage, spatial autocorrelation.

Related Posts

This showcase is a portfolio wrapper, not a re-implementation. The canonical NYC subway ADA-accessibility analysis lives upstream in the [`subway-access`](https://github.

Spatial EquityMoran's IOLS + HC1Euclidean CatchmentReliability-Weighted Coveragesubway-accessfactor-factoryjellycell