Axl × Chicago

Chicago Rail Atlas

Explore Chicago station by station: the geography of eight rail lines, local ridership history, and current service information.

A familiar stop. A changing city. A new way to see the places that connect your Chicago.

Find your station
08 rail lines2018–2026 ridershipStation by station
Eight Chicago rail lines, traced from actual CTA route geometryHarlem/LakeDempster-SkokieAshland/63rdForest Park95th/Dan Ryan54th/CermakCottage GroveO'HareHowardMidwayLindenKimballN ↑
Actual route geometry · North up
Animated route traces, not live train positions
Chicago in motion / An interactive atlas

Every station.
A different story.

Follow the geography of the “L”, then look beneath the route. Choose a station to see how its recorded entries changed, month by month.

Geographic networkRed Line
N ↑
18th (Pink Line)35th-Bronzeville-IIT (Green Line)35th/Archer (Orange Line)43rd (Green Line)47th (Green Line)47th (Red Line)51st (Green Line)54th/Cermak (Pink Line)63rd (Red Line)69th (Red Line)79th (Red Line)87th (Red Line)95th/Dan Ryan (Red Line)Adams/Wabash (Brown, Green, Orange, Pink & Purple lines)Addison (Blue Line)Addison (Red Line)Addison (Brown Line)Argyle (Red Line)Armitage (Brown & Purple lines)Ashland (Green & Pink lines)Ashland (Orange Line)Ashland/63rd (Green Line)Austin (Blue Line)Austin (Green Line)Belmont (Blue Line)Belmont (Red, Brown & Purple lines)Berwyn (Red Line)Bryn Mawr (Red Line)California (Pink Line)California (Blue Line)California (Green Line)Central (Green Line)Central (Purple Line)Central Park (Pink Line)Cermak-Chinatown (Red Line)Cermak-McCormick Place (Green Line)Chicago (Brown & Purple lines)Chicago (Blue Line)Chicago (Red Line)Cicero (Pink Line)Cicero (Green Line)Cicero (Blue Line)Clark/Division (Red Line)Clark/Lake (Blue, Brown, Green, Orange, Purple & Pink lines)Clinton (Blue Line)Clinton (Green & Pink lines)Conservatory (Green Line)Cottage Grove (Green Line)Cumberland (Blue Line)Damen (Brown Line)Damen (Pink Line)Damen (Blue Line)Damen (Green Line)Davis (Purple Line)Dempster (Purple Line)Dempster-Skokie (Yellow Line)Diversey (Brown & Purple lines)Division (Blue Line)Forest Park (Blue Line)Foster (Purple Line)Francisco (Brown Line)Fullerton (Red, Brown & Purple lines)Garfield (Green Line)Garfield (Red Line)Grand (Red Line)Grand (Blue Line)Granville (Red Line)Halsted (Green Line)Halsted (Orange Line)Harlem (Blue Line - O'Hare Branch)Harlem (Blue Line - Forest Park Branch)Harlem/Lake (Green Line)Harold Washington Library-State/Van Buren (Brown, Orange, Purple & Pink lines)Harrison (Red Line)Howard (Red, Purple & Yellow lines)Illinois Medical District (Blue Line)Indiana (Green Line)Irving Park (Blue Line)Irving Park (Brown Line)Jackson (Blue Line)Jackson (Red Line)Jarvis (Red Line)Jefferson Park (Blue Line)Kedzie (Pink Line)Kedzie (Green Line)Kedzie (Orange Line)Kedzie (Brown Line)Kedzie-Homan (Blue Line)Kimball (Brown Line)King Drive (Green Line)Kostner (Pink Line)Lake (Red Line)Laramie (Green Line)LaSalle (Blue Line)LaSalle/Van Buren (Brown, Orange, Purple & Pink lines)Lawrence (Red Line)Linden (Purple Line)Logan Square (Blue Line)Loyola (Red Line)Main (Purple Line)Merchandise Mart (Brown & Purple lines)Midway (Orange Line)Monroe (Blue Line)Monroe (Red Line)Montrose (Blue Line)Montrose (Brown Line)Morgan (Green & Pink lines)Morse (Red Line)North/Clybourn (Red Line)Noyes (Purple Line)O'Hare (Blue Line)Oak Park (Blue Line)Oak Park (Green Line)Oakton-Skokie (Yellow Line)Paulina (Brown Line)Polk (Pink Line)Pulaski (Green Line)Pulaski (Pink Line)Pulaski (Blue Line)Pulaski (Orange Line)Quincy/Wells (Brown, Orange, Purple & Pink lines)Racine (Blue Line)Ridgeland (Green Line)Rockwell (Brown Line)Roosevelt (Red, Orange & Green lines)Rosemont (Blue Line)Sedgwick (Brown & Purple lines)Sheridan (Red Line)South Boulevard (Purple Line)Southport (Brown Line)Sox-35th (Red Line)Thorndale (Red Line)UIC-Halsted (Blue Line)Washington (Blue Line)Washington/Wabash (Brown, Green, Orange, Purple & Pink lines)Washington/Wells (Brown, Orange, Purple & Pink lines)Wellington (Brown & Purple lines)Western (Blue Line - Forest Park Branch)Western (Orange Line)Western (Blue Line - O'Hare Branch)Western (Pink Line)Western (Brown Line)Wilson (Red & Purple lines)

Select a point to explore. Scroll normally; enable “Move map” to pan and zoom.

Circle area follows station entriesFlow animation is schematic, not trainsScheduled geography · 2026-08-06
Station entries / A closer reading

Explore the full monthly record, then compare the same months across two years. Every value counts entries at this station, including all lines that serve it.

The full monthly recordMonthly station entries · January 2018–June 2026

One point per month. A gap means no reported data; a point at zero means zero recorded entries. June 2026 is the last published month in this capture.

Compare the same months
Read the complete monthly comparison table

Both series use the same zero baseline. Missing months are marked with a dash. Comparisons use matching months; partial years never stand in for a complete year.

A city, over time

Your old stop.
Your next journey.

Start with a station you know. Compare its busiest months, follow the changes across years, or open the real stop in your preferred maps app. The station card keeps its history beside the practical information you need to use it today.

Choose any of the eight lines or explore the full network. Stations shared by several services carry all their route colors. The glowing paths follow published rail geometry; their motion is an illustration of the network, while arrival predictions and service alerts have their own timestamps.

This is my independent project. Data provided by Chicago Transit Authority. It is neither made nor endorsed by CTA.

The project behind the atlas

From one line
to a whole city.

My CTA Red Line Ridership: 2018–2023 publication began with one of Chicago’s defining routes. This atlas extends that subject into an interactive view of the rail network, with a new analysis of official station-entry data and route geometry.

My relationship to Chicago is personal as well as analytical. I had an established life here, and I would love to return. Read my Chicago chapter →

Original publication and this edition

The original public Kaggle record identifies the publication and its date, February 5, 2025. Its current public notebook response contains no substantive code or output. The calculations in this atlas are a new, reproducible analysis of the official data; they are not presented as recovered results from the original notebook.

Sources & interpretation

Know what the numbers mean.

Station entries and comparisons

Monthly totals sum daily entries for each station ID from the Chicago station-entry dataset. The available series runs from January 2018 through June 2026. These are entries, not unique people, complete journeys, or ridership attributable to a particular line at a shared station.

Partial years are marked. Year-over-year comparisons use the same available months in both years. Missing observations remain missing; they are not converted into zero ridership. Current line membership provides a way to browse stations, not a reconstruction of every historical service pattern.

Route geometry and accessibility

The paths come from CTA’s published GTFS schedule data, captured September 5, 2026 from the August 6 package. Shapes include direction and branch variations. The interactive street map uses geographic coordinates, with north up by default. Streets, buildings, and place labels come from OpenStreetMap through OpenFreeMap and OpenMapTiles, rendered with MapLibre. Zooming closer magnifies the available vector detail; it does not create new survey measurements. The optional 3D view uses building heights supplied by that map source.

Station names, coordinates and accessibility fields come from the official station list. An accessibility designation describes station infrastructure. Check current elevator alerts before relying on an accessible journey.

Current service information

Service status comes from CTA’s Customer Alerts API. Available arrival predictions come from its Train Tracker API. A failed feed is shown as unavailable. Scheduled geography and animated route traces never substitute for live observations.

Official train arrival tools · Official service and elevator alerts