THE CITY, IN PERSPECTIVE
Every station.
A different rhythm.
Explore years of subway demand.
Follow current subway arrival predictions.
Real sources. Visible timestamps.
SPARK → POSTGRESQL / LIVE SERVICE ANALYTICS
What the pipeline has processed
Connecting to the analytical database…
This is a new live-serving period. The earlier archival processing gap is still unresolved. Counts describe prediction observations, not passengers.
CURRENT ARRIVAL INFORMATION
Checking arrival updates…
Choose a route to explore its arrival predictions. Counts describe scheduled or underway trips in recent updates; they are not passenger counts.
Update times and route coverage
Updated: within 60 seconds · Recent: 1–2 minutes · Overdue: older than 2 minutes. Movement requires updates within 60 seconds.
01 / STATION ATLAS
Find the pulse of a place
HISTORICAL DEMAND / EXPLAINED
Three ways to read demand
02 / HISTORICAL WEEKDAY PATTERN
When New York moves
All dates: 13 Jan 2017–14 Oct 2026 · grouped by weekday and hour · New York time
Cumulative totals across the loaded period; unequal weekday coverage can affect comparisons. Hover or focus for values.
03 / DAILY FINGERPRINT
A year in motion
Every square is a day of estimated subway entries
Blank cells have no loaded observation. Partial years stay partial.
FOLLOW THE DATA
From MTA to analysis
Checking measured Spark progress…
The arrival map reads Kafka-published snapshots. Tableau reads historical Spark exports. Train updates do not contain passenger counts and do not change historical ridership totals.
04 / ASK THE OBSERVATORY
Questions meet evidence.
Curated-data answers, with scope and limitations.
Answers are calculated from project data. This is a focused question panel, not a general-purpose AI assistant.