The planner compares any Chicago-area rail trip as it is today against how it would work with the proposed CrossTowner tunnel (plus the CTA Red Line Extension, which is under construction). Type or pick a start and end, and it shows both trips side by side.
Where the numbers come from
Every trip is computed in advance with r5r, the R interface to Conveyal R5 — an open-source transit routing engine used by transportation planners. Because the set of rail stations is fixed, we precompute the travel time between every pair of stations ahead of time and ship the results as static data. That's why the site is instant: your browser is looking up a precomputed answer, not routing live.
- Today — present-day CTA trains and buses, Metra, and Pace, from the agencies' published schedules (GTFS).
- With CrossTowner + Red Line Extension — the same present-day service, plus the proposed CrossTowner X-routes (X1–X6) and the under-construction Red Line Extension, on their proposed schedules.
How we handle walking to and from stations
A trip is more than the train ride — you have to walk to the first station and from the last one. Here's how that's estimated:
- Your typed address (or a picked example) is turned into a point on the map.
- We find the nearest rail stations to each end of your trip (up to a few candidates).
- The walk to each station is estimated from the straight-line distance, multiplied by 1.3 to approximate real streets (you rarely walk in a perfectly straight line), then divided by a walking speed of 2.75 mph (4.43 km/h).
- If the nearest station is more than a 20-minute walk away, that end is considered out of reach and the trip isn't shown.
- The total is
walk to station + train time + walk from station, and the planner keeps the fastest combination.
The 2.75 mph figure is a deliberately unhurried pace grounded in US walking-speed studies, so estimates aren't rosy. The train time itself (station to station) also includes any transfers and waiting, computed by R5 from the actual schedules.
Walking that happens between stations
The station-to-station time R5 gives us is measured between two station points, but R5 is free to walk you from that point to a different station nearby if that's genuinely the faster trip — and to walk you between stations at a transfer. That walking is already inside the total; what the step list now does is name it. So a trip whose time is looked up under "Morse" may tell you to walk over to Rogers Park and board there, and a trip that rides to Cermak-Chinatown will say plainly that McCormick Place is a 20-odd-minute walk from that platform rather than pretending you've arrived.
Those in-trip walks are R5's own street-network times, stored leg by leg alongside the ride times, so the steps add up to the total at the top of the card. The one walk still estimated straight-line is the one between your own address and a station: R5 measures from a station point, and your front door isn't in its network. Note also that the 20-minute walking limit applies to each walk separately, not to the trip as a whole, so a trip can legitimately contain more than 20 minutes of walking in total.
The waiting time shown
The headline number is a median over a 30-minute window around the departure, while the leg-by-leg detail comes from a single departure at the top of the hour. Waiting is what differs between those two — the walking and the riding don't change — so the wait shown against each train is whatever the total has left over once the walking and riding are accounted for. Read it as a typical wait for that trip, not as the wait you'd get by arriving at exactly 8:00.
Which route it shows in the future scenario
In the future scenario, when more than one reasonable trip exists, the planner prefers the CrossTowner route even if it's a little slower. Specifically: among all the options that are within 12 minutes of the fastest, it picks the one that spends the most time on a CrossTowner X-route. If no near-fastest option uses an X-route, it simply shows the fastest trip.
This reflects a real rider's likely choice — most people will take a direct CrossTowner train over a marginally quicker trip that adds a transfer to a bus — and it keeps the future card focused on what the tunnel changes. The travel time shown is always the time of the trip actually displayed, so the number and the route always match.
Getting to O'Hare's terminals
O'Hare is a special case. Its terminals aren't rail stations, and two very different rail nodes serve them: the CTA Blue Line "O'Hare" station, right in the terminal core, and "O'Hare Transfer" (Metra and the proposed CrossTowner) out at the Multi-Modal Facility (MMF) — one end of the airport's Airport Transit System (ATS) people mover. Where you end up depends on which you take, so instead of forcing every airport trip onto one station, the planner lets you pick your terminal (1, 2, 3, 5, or the MMF) and then routes to both stations, adding the time it takes to reach your terminal from each. Each network uses whichever station serves it — the Blue Line today, the CrossTowner in the future scenario — which is a fairer head-to-head than the older behavior of snapping every O'Hare trip to a single station.
The ATS isn't in our schedule data, so we model the trip from each station to each terminal as a fixed number of minutes: the ATS wait (about half of its 3–5 minute headway), the ride (~2.5 min per hop along the T1–T2–T3–T5–MMF line, which the CDA times end-to-end at 10 minutes), and a short platform walk. The terminal-core walk times from the Blue Line are hand estimates, not street-routed. These assumptions are debatable — that's the point of publishing them here.
| Destination | from Blue Line "O'Hare" (terminal core) | from "O'Hare Transfer" (MMF) |
|---|---|---|
| Terminal 1 | 9 (walk) | 13 (ATS) |
| Terminal 2 | 5 (walk) | 11 (ATS) |
| Terminal 3 | 8 (walk) | 9 (ATS) |
| Terminal 5 | 12 (walk + ATS) | 6 (ATS) |
| MMF / O'Hare Transfer | 14 (walk + ATS) | 3 (walk) |
Reaching the South Shore Line
The South Shore Line (NICTD's electric interurban to northwest Indiana and South Bend) isn't in the precomputed matrices — it runs east, outside the six-county grid the routing engine covers. Rather than rebuild the whole network, the planner grafts it on: it recognizes when your origin or destination is a South Shore station, routes you through a station that both the CrossTowner/Metra network and the South Shore serve, and then rides the South Shore the rest of the way.
The transfer happens at whichever shared hub gives the fastest overall trip — the primary one is
55th–56th–57th St. in Hyde Park (where a CrossTowner rider meets the South Shore without
backtracking downtown), with the downtown Metra Electric stops (Millennium, Van Buren, Museum Campus) as
alternates. The South Shore portion — its in-vehicle minutes and how often trains run — comes straight from
NICTD's published GTFS schedule. A trip is therefore time to the hub (from the matrix) + a short
platform transfer + the South Shore leg (typical wait + ride). Because the South Shore itself is
identical today and in the scenario, the CrossTowner comparison shows exactly one thing: how much faster you
can reach the hub — the tunnel never speeds up the South Shore itself.
Two honest caveats. First, morning service is uneven and modeled with a typical wait of about half the headway: trains toward Indiana run roughly hourly at 8 AM (so a ~30-minute wait), while trains toward Chicago run every ~30 minutes. Second, the Indiana stations are regional park-and-rides reached by car or bus, so the planner treats your endpoint as being at the station rather than adding a walk to it. The new Monon (Munster/Dyer) branch is reached with a timed transfer at Hammond Gateway.
Departure time
Trips are precomputed for a single weekday departure — 8 AM. The result is a median over a 30-minute departure window, so a single lucky (or unlucky) connection doesn't skew it.
Where you can travel
Trips must start and end within the six Metra-service counties: Cook, DuPage, Lake, Kane, McHenry, and Will. Addresses outside that area are declined — with one exception, the South Shore Line stations in Indiana (see above), which route in via a shared transfer hub.
Data sources
- Transit schedules: published GTFS feeds from CTA, Metra, and Pace, plus NICTD's South Shore Line GTFS for the Indiana connection.
- Streets and walking: OpenStreetMap.
- Station locations & rail lines: Chicago Cityscape's place database, which includes data from Transit Explorer.
- CrossTowner service: a synthetic GTFS feed built from Star:Line Chicago's published CrossTowner map and schedule assumptions. The Red Line Extension is modeled on its planned stations and frequencies.
What to keep in mind
- The CrossTowner lines are proposals with schedules provided by Star:Line Chicago. The Red Line Extension is under construction, but no schedule has been published, so we assume a frequency (10-minute headways from 7 AM to 10 PM and 15-minute headways at other times).
- The future scenario is additive: it adds the new lines on top of some of today's service without restructuring existing routes.
- Times reflect ordinary weekday service. Game-day and special-event buses (which the transit agencies don't always publish in their schedule data) are not included.
- No fares, crowding, or reliability are modeled.
- South Shore Line trips are grafted onto the network at a shared transfer hub rather than routed end-to-end, and use a typical (half-headway) wait for the infrequent morning service — see “Reaching the South Shore Line” above.
Your privacy
Trips are computed in your browser from precomputed data. To learn which trips people care about most, we log each planned trip's origin and destination stations and its two travel times — but not the address you type: only the nearest rail station to each end is recorded, never your exact location. If you choose to enter your email, it's saved only so Build the Tunnel can reach you.
One exception: when a search finds no rail trip (both ends are too far from any station), we also keep the places you entered and their map coordinates, so we can see and map where the rail network is missing and where new service would help. This applies only to searches that return no trip — a successful trip is still logged with stations only, never the typed place or its coordinates.
Your browser also stores a random, anonymous ID (a UUID in local storage) that's sent with each logged trip, so we can gauge roughly how many people use the planner and how many trips each looks up. It isn't tied to your identity and isn't shared with other sites; clearing your browser storage resets it.
Each logged trip also notes how you arrived (the site that linked you here and any campaign tags in the link) and a coarse device type (phone, tablet, or desktop), so we can understand the planner's reach. None of this identifies you.
Credit
Made by Steven Vance, using the Star:Line Chicago CrossTowner map and synthetic
schedule as input to Conveyal R5 trip-planning software. This tool is otherwise unaffiliated with Star:Line
Chicago. Fuller technical documentation lives in the project's analysis/METHODOLOGY.md.