The Real Transit Map
Loading map data...
Station Information
Click on a station or route for details
Select a station or route line to view detailed information about service patterns, housing costs, and accessibility features.
Methodology
1. Data Collection
- Listing data. We pulled every long-term, unfurnished one-bedroom listing published on RentHop between 1 February and 30 April of 2024 and 2025.
- Station geography. Subway stop coordinates, line designations, ADA status and CBD flag came from the MTA GTFS Static feed and NYC Open Data.
- Service metrics. Rush-hour headways, off-peak headways and daily train counts were computed directly from GTFS timetables for the same calendar window.
- Sampling radius logic. We started with an 800 m buffer around each station and kept expanding to a maximum of 2,000 m until we captured at least 20 unique, non-duplicated listings.
- Imputation. Where even the 2,000 m radius yielded <20 listings, median rents and YoY change were imputed to the borough average and flagged with
imputation_note
.
2. Cleaning & Normalization
- Prices were converted to plain numbers and stored as
median_2024
andmedian_2025
(USD). - Year-over-year growth was stored as a proportion in
yoy_change
. - Service headways were rounded to whole minutes; train counts were summed into
total_weekday_trains
,total_weekend_trains
, andtotal_evening_trains
. - Every record carries a WGS-84 point geometry for direct mapping.
3. Scoring Framework
Each station receives a five-part score that rolls up to a 0-100 Value Score:
Component | Max pts | Logic |
---|---|---|
Affordability | 40 | Linear scaling: best score to the lowest borough-relative rent, worst to the highest. |
Frequency | 25 | Based on the tightest scheduled peak headway. |
Volume | 15 | Scaled on weekday train count. |
Connectivity | 10 | 5 pts per route, capped at two. |
Amenities | 10 | 5 pts for ADA access, 5 pts for CBD location. |
The HTML template exposes the same breakdown in each info card and cites the full formula.
4. Color Ramps & Symbol Sizes
Thresholds that drive the Leaflet styling are hard-coded in CSS custom properties. For example, rent circles shift from green to red at $2,000, $2,325, $2,725, $3,500, $4,205 and $4,750, mirroring the variables --threshold-rent-*
. Station marker radii grow when weekday trains cross 100, 200, 300 and 400 trains (--threshold-trains-*
). Separate ramps handle headway quality, Value Score tiers and YoY change direction.
5. Outputs
- Dataset. The cleaned, enriched records were saved as a GeoJSON-compatible array—August-2025-Data.json—so the front-end can load it with a single fetch.
- Interactive map. new-datamap-final.html uses Leaflet, d3-format and vanilla JS modules to draw the network, apply color ramps, show a sliding info card, and toggle thematic layers. All thresholds match the CSS tokens above to ensure visual and numeric consistency.