UPSTREAM_REFERENCE.md
Downloadmanuscripts/UPSTREAM_REFERENCE.md·4.0 KB·markdownUpstream 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.pyis 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.mdin 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:
- Replace
artifacts/figures/figure-*.pngwith the regenerated figures (keep the filenames — notebook 02 inlines by exact path). - Update the headline-numbers dict at the top of
notebooks/01_context_and_pointer.pyto reflect the new vintage. - If any numerical result drifts enough to invalidate the cross-walk
row, update
notebooks/03_cross_walk.pyaccordingly. - Re-run
pnpm showcase:run showcase-subway-accessibility/notebooks/*.pyandpnpm showcase:render showcase-subway-accessibilityto 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.