Philadelphia route planner

Station to station on the Broad Street Line, the Market-Frankford Line and the Norristown High Speed Line: which train to board, how many stops, where you change and roughly when you arrive.

Plan your trip

Pick where you are starting, where you are going, the kind of day and the time you want to leave. The planner works out which train to board, how many stops it is, where you change and roughly when you get there — and it gives you more than one way when the network has one: the quickest, the one with the fewest changes, and the express against the local where that choice exists.

It runs on the published schedule for all 70 stations on the Broad Street Line, Market–Frankford Line, and Norristown High Speed Line, read from the open feed and recomputed from scratch. It is not live departure information, and nothing on this page pretends to be.

Trips people actually make

Worked out with the same calculation as the planner above, for a weekday. Where the network gives you a real choice, the second option is named too.

FromToOn boardStopsChangesWhich train
15th St/City Hall69th Street Transit Center15 min100L all stops
15th St/City HallFrankford Transit Center26 min160L all stops
69th Street Transit CenterFrankford Transit Center41 min260L all stops
Drexel Station at 30th Street8th-Market4 min30L all stops
Fern Rock Transit CenterWalnut-Locust20 min70B Express
also: With the Broad-Ridge Spur
Fern Rock Transit CenterNRG Station40 min210B Local
also: Quicker on board, with a change
Fern Rock Transit Center8th-Market19 min70B Broad-Ridge Spur
also: With the Express
NRG Station15th St/City Hall12 min70B Local
8th-Market69th Street Transit Center18 min120L all stops
Norristown Transit Center15th St/City Hall44 min311M all stops then L all stops
69th Street Transit CenterNorristown Transit Center28 min210M all stops
Frankford Transit CenterDrexel Station at 30th Street28 min170L all stops
One line, three different trainsThe Broad Street Line is where this matters. Fern Rock Transit Center to Walnut-Locust is 27.8 min on the Local and 19.8 min on the Express, for the same fare on the same track — and on a Sunday the Express does not run at all, so that trip is only available the slow way. The planner knows which of the three you are looking at, and says so.

Local, Express and the Spur: the five ways trains run

Three lines, five patterns. That is the single most useful thing to understand about riding here, and it is why a planner that only knew about “lines” would give you the wrong answer: a train on the Broad Street Line might stop at all 22 stations, at 8 of them, or leave the main tracks altogether and head for 8th-Market.

PatternFull nameStationsEnd to endRuns betweenDays it runs
B LocalBroad Street Line Local2240 minFern Rock Transit Center → NRG StationMon–Fri, Sat, Sun, and Holiday
B ExpressBroad Street Line Express820 minFern Rock Transit Center → Walnut-LocustMon–Fri
B Broad-Ridge SpurBroad-Ridge Spur819 minFern Rock Transit Center → 8th-MarketMon–Fri and Sat
L all stopsMarket-Frankford Line All Stops2741 min69th Street Transit Center → Frankford Transit CenterMon–Fri, Sat, Sun, and Holiday
M all stopsNorristown High Speed Line Local2228 min69th Street Transit Center → Norristown Transit CenterMon–Fri, Sat, Sun, and Holiday
One station loses its service completelyChinatown is served only by the Broad-Ridge Spur, so on Sunday and Holiday service there is no train there at all — not a reduced service, none. The planner will tell you that instead of routing you somewhere you cannot get to.

End-to-end times are the full run of each pattern in the schedule, southbound or eastbound. “Days it runs” is read from the service calendar, not assumed.

Changing between lines: three complexes, no published time

There are exactly three places where you can change from one line to another, and all three are a single station complex with free transfer inside — you do not pay twice. But the lines use different platforms in all three, so there is a walk, and that is where the honest gap in this planner is.

The time that walk takes is not published. There is no transfer file in the open feed, and the walkway data that does exist gives distances inside a few complexes rather than times. So the planner counts it as zero and tells you so, every time, instead of adding a tidy three minutes that would look exactly like a measurement.

ComplexLinesWhat you actually doTime to changeStep-free access
15th St/City HallB LDifferent platforms, one station complex, free transfer insideNot published — so not countedStep-free on some platforms only
69th Street Transit CenterL MDifferent platforms, one station complex, free transfer insideNot published — so not countedStep-free access
8th-MarketB LDifferent platforms, one station complex, free transfer insideNot published — so not countedStep-free access
The platform signs do not all say the same thingAt 15th St/City Hall the signage on the Broad Street Line platforms says City Hall and the Market-Frankford Line platforms say 15th Street. The schedule data treats it as one station with one name, and so do we — but if you are standing there looking for the name you typed into the planner, that is why you cannot see it.

Walking connections that are not transfers

Three pairs of stations sit close enough together to look like an interchange on a map, and are not one. There is no passage between them: you come up to the street, walk, and pay a new fare going back down. The planner leaves them out of its network on purpose, because offering them as a transfer would be offering a trip that does not exist.

They are still worth knowing about — sometimes walking the block beats going round by Center City:

StationOther stationApartRough walk
13th Street LWalnut-Locust B0.28 mi (0.45 km)about 7 min on the surface
13th Street LRace-Vine B0.35 mi (0.56 km)about 9 min on the surface
5th Street/Independence Hall LChinatown B0.37 mi (0.59 km)about 10 min on the surface

Distances are measured between the station coordinates in the open data. The walk is an estimate from that straight line, not a routed footpath: straight-line distance × 1.3 at 80 m a minute, which is the same method this site uses for walking distances everywhere else.

How this planner works, and what it leaves out

The travel time is the time on board: the running time of every segment between two consecutive stations on the pattern you are actually riding, added up from the station where you get on to the station where you get off. That sum is worth checking rather than trusting, because on many networks it comes out short: here it does not. End to end the Market–Frankford Line takes 41 min and the Broad Street Line Local takes 40 min measured as whole trips, and adding the segments one by one gives the same figure to the second, on all five patterns.

What is not in the number, and why:

  • Waiting on the platform. That depends on what time you arrive at the station. Every leg of the result shows how often a train comes in that part of the day, and the first and last train from your station; the whole table is on the schedule page.
  • The time it takes to change platforms. This one is not an omission, it is an absence: the open feed carries no transfer times at all, and the operator does not publish a table of them either. We leave it out and say so, rather than filling in a plausible three minutes that would look like a fact.
  • Delays and service changes. This is the planned schedule. Of the three lines only the Norristown High Speed Line has live arrival data at all, so a planner that claimed to know where the trains are right now would be making it up.

A time after midnight belongs to the night of the day you picked: the schedule writes the last Broad Street Line departure as 12:04 am (next day), and the last train of the night anywhere on the network leaves at 2:16 am (next day). Cutting those back to midnight would delete the late service altogether.

Questions people ask

No. The planner gives you the time on board, from boarding to getting off, as the schedule has it. How long you stand on the platform depends on when you get there, so instead of guessing, every leg of the result tells you how often a train comes at that time of day and when the first and last train from your station run. The full picture is on the schedule page.
Because that number is not published anywhere. The open feed has no transfer file at all, and the walkway data that does exist only gives distances inside a handful of complexes, not times. Putting “three minutes” there would be an invention dressed up as a fact. What we can tell you — that the two lines use different platforms and that the change is free because it is one station complex — is in the result every time.
They are three ways trains run along the same line, not three lines. The Local stops at all 22 stations. The Express stops at only 8 of them and, because it skips the rest, it is genuinely faster: 19.8 min instead of 27.8 min from Fern Rock Transit Center to Walnut-Locust. The Broad-Ridge Spur leaves the main tracks after Broad-Girard and runs to Chinatown and 8th-Market, which no other pattern serves — and it is worth knowing that it calls at only 8 stations on the way, so it is already quicker than the Local before it ever leaves the main line. The planner picks between all three for you and names the alternative when there is one.
Because you do not change platforms. Going from the Express to the Local on the Broad Street Line means staying exactly where you are and waiting for the one behind it on the same track. There is no walk and no second fare. What it does cost you is that wait, which is why the result gives you the interval of the train you are getting on instead of a transfer time.
Yes, and it matters more here than in most cities: Express and Broad-Ridge Spur do not run on a Sunday at all. Change the day and the planner rebuilds the whole network from the patterns that actually run, so a Sunday result never puts you on a train that is not there. The four kinds of day the schedule publishes are weekdays, Saturday, Sunday and holiday service.
No. This is the planned schedule, pulled from the open feed and recomputed daily. We measured what live data actually exists line by line: only the Norristown High Speed Line publishes arrivals at all, and the other two publish none. A planner that promised to know where the trains are right now would be lying about two thirds of the network.
Because it is closed. It appears in the operator’s own station inventory but no train has called there in the whole period the schedule covers, so it is not in the planner and not in the station count. On the Market–Frankford Line, 13th Street and 8th-Market are now next to each other. There is a page about the closed station if you want the detail.
No — it is being careful. There are three pairs of stations within 600 metres of each other that are not linked underground: you would have to come up to street level, walk, and pay again. Treating them as a transfer would hand you a trip that does not exist, so they are not in the graph. They are listed on this page as walking connections instead, with the distance, so you can decide for yourself.
No. One ride is $2.90 wherever you are going, and the line-to-line complexes are inside the paid area, so changing trains there costs nothing extra. The free-transfer allowance — 2 more boardings inside 2 hours of the first tap — is what you need when you carry on by another service, and it only comes with two of the four ways of paying. The fare page has the rest.