Subway Accessibility in the blaise-website Portfolio: A Pointer, a Gallery, and a Cross-Walk
Appendix artifact

UPSTREAM_REFERENCE.md

Download
manuscripts/UPSTREAM_REFERENCE.md·4.0 KB·markdown

Upstream reference

This showcase mirrors the April 2026 vintage of the NYC subway accessibility analysis published as the canonical CASESTUDY of the subway-access v0.5.0 library. The 15 figures and the headline numbers inlined in this package are pre-rendered snapshots — they are not recomputed by the notebooks here.

The runnable pipeline that produces them lives upstream:

  • Library: random-walks/subway-access — typed Python toolkit for reproducible NYC subway accessibility analysis. Version 0.5.0 ships the factor-factory engine-audit Appendix D and the jellycell reporting bridge.
  • Example pipeline: examples/accessibility-change-over-time/main.py is the entry point that fetches the MTA + ACS data, runs the factor-factory / DiD / spatial pipeline, and emits the figures and tables embedded here.
  • Upstream CASESTUDY: docs/CASESTUDY.md in the upstream repo.
  • FOIL request template: see §3.5 of the upstream CASESTUDY — the request chases the 56 missing station upgrade dates from the MTA Key Station Program.

Regenerating against a later vintage

To regenerate against fresh data (e.g., later MTA snapshots or the 2024–2028 ACS vintage):

git clone https://github.com/random-walks/subway-access
cd subway-access/examples/accessibility-change-over-time
uv sync --extra factor-factory --extra tearsheets
python main.py

The output figures, tables, and CASESTUDY.md land in reports/ under the upstream example directory. To refresh this wrapper:

  1. Replace artifacts/figures/figure-*.png with the regenerated figures (keep the filenames — notebook 02 inlines by exact path).
  2. Update the headline-numbers dict at the top of notebooks/01_context_and_pointer.py to reflect the new vintage.
  3. If any numerical result drifts enough to invalidate the cross-walk row, update notebooks/03_cross_walk.py accordingly.
  4. Re-run pnpm showcase:run showcase-subway-accessibility/notebooks/*.py and pnpm showcase:render showcase-subway-accessibility to refresh the rendered HTML catalogue.

FOIL request gap (data provenance caveat)

Of the 157 currently accessible NYC subway stations, 101 have ADA upgrade years traced to MTA press releases, Governor's announcements, MTA Capital Program records, Wikipedia station articles, and news coverage spanning 1987–2026. The remaining 56 — primarily Key Station Program stations from the 1990s–2010s — use a deterministic hash-based fallback because per-station completion records are not publicly documented at time of publication. A FOIL request to the MTA for the complete Key Station Program completion schedule would close this gap and enable fully credible DiD identification.

A minimal FOIL request template:

To: FOIL Officer, Metropolitan Transportation Authority
Re: FOIL request — Key Station Program completion schedule

Under Article 6 of the Public Officers Law, I request records
identifying the completion date (month and year) of each subway
station ADA upgrade performed under the Key Station Program
(1994–2020). For each station, please provide:

  - Station name and complex ID
  - ADA completion date (month / year)
  - Funding source (Key Station Program, Capital Program cycle, other)
  - Primary accessibility feature completed (elevator, ramp, etc.)

Electronic records (spreadsheet or CSV) preferred. If records are
maintained across multiple offices, please coordinate the response.

Sincerely,
<name> <affiliation>

Version pinning

This wrapper depends on subway-access >= 0.5, < 0.6 via the packages/python-showcase/pyproject.toml [subway-access] optional extra. The pin intentionally excludes 0.6 because the CASESTUDY numbers and figure set are expected to refresh at that minor version. When 0.6 ships, bump the pin and re-run the regeneration recipe above.