📟Using America’s Worst Transit App🤦🏼‍♂️

NJ Transit’s official app is packed with amazing tools that will turn your phone into a straphanger’s swiss army knife. As for accessing those tools, well let’s just say it feels like one of those surreal psychology experiments in the 60s before they had ethics boards. That’s why I made this complete guide, to get you on the bus, instead of on the phone with customer service.

For trains, this is easy. Just put in your origin and destination and voila! Buses, as usual, are more complicated. From Home, tap Buy Tickets->Bus and you’ll be confronted with two confusing buttons. Route & Zone and Origin & Destination. Origin and destination looks like the more user friendly one, but it’s actually super hard to use.

Open it up, and you’re asked to select an origin out of a suspiciously limited list of places. But let’s say you pick “New Brunswick”.



This is the list of possible destinations you’ll see. To me, it looks like a botched attempt to figure out how many zones you’re traveling without having to explain that fare zones exist (lest your brain explode). If you can’t find where you’re going, try that other button. Route & Zone.

So, you open it up. You look for your route. Aaaand, it’s not on the list. (If it is, skip one paragraph ahead.) What’s going on?? You’re gonna be so mad when I tell you. Remember that zip code they made you put in when making your profile? Once you’ve done that, Route & Zone will only show you buses in North Jersey or South Jersey (depending on which the zipcode is in). This also affects the options in Origin & Destination. So to fix it, you have to tap the profile circle in the top left, then tap User Profile, then change the zip code to one closer to the route you’re trying to ride. There is sadly no way to turn the madness off and just see all the buses in New Jersey. Once again, NJT dutifully keeping your brain from exploding.

Okay, so you’ve got your route. Now you need to put in how many zones you’re traveling. If you’re not sure, consult one of my route guides. Or outside New Brunswick, look at the map or table on the pdf/paper bus schedule. Count the number of zone boundaries crossed and add 1. It’s not as high-tech. But trust me, it’s easier.

Once you’ve bought your ticket, you’ll find it in My Tickets. (Bus tickets last 15 minutes once activated, so don’t activate until you see the bus.) On the ticket, it will show the number of the route you purchased it for. But I’ll let you in on a little secret: It doesn’t matter which route the ticket’s for. A 2 Zone Intrastate ticket on one route will get you 2 zones on any intrastate trip.

In fact, I only ever purchase tickets on one route, the 317. It’s 19 zones long and travels interstate, so it’s all I need. But there’s another more, shall I say, devious reason I do this.

As you might know, there are two separate bus fare systems on NJT: North Jersey (more expensive) and South Jersey (slightly cheaper). But if you buy a 2 Zone Intrastate ticket for a South Jersey route, when displayed to the driver, it just says 2 Zone Intrastate, allowing you to buy the South Jersey one for 30¢ less. Muahahaha! It’s their fault for making it so easy.

Also, if I’m ever traveling with a friend, having all my tickets for one bus lets me pay both our fares.

As you might know, NJ Transit provides live location data for buses, which can be used by third party apps like Transit. However, the connection between the apps and the gps data feed seems awfully patchy, so if you’re not seeing the little realtime waves on your departure, there’s a good chance you can still see your bus’s location in the NJ Transit app instead.

Under Home, tap MyBus->Routes. Then pick your route, pick your direction, and then pick your stop out of a massive dropdown with no search bar. Then, you’ll see a departure board. Click a departure, and finally you get to a map where you can see all the buses moving along the route. You can also tap on the stops and see their departure boards, or search for other routes and stops.

Okay, but then why in the heck did they make you do an entire Buzzfeed quiz just to see the map in the first place? Beats me. But here’s the trick. It doesn’t matter which direction, stop or departure you click on. Just click the first one that pops up and that will get you to the map. (If it says “Stop Not Found”, scroll down and tap some other random stop.)

There is, however, a quicker way. On every bus stop sign, there’s an ID number. Open MyBus, select Stop, type in that magic number, and you’ll jump right ahead to the departure board. If your stop is one of the sad, unmarked ones, just click on it in the map to see the number. (Make sure you’re clicking on the right side of the street.) If you’re a commuter, you’ll have that number memorized in no time.

You can be forgiven for thinking that the way to view schedules is by clicking the giant Schedules button on the home screen. You should actually ignore that button. It’s another useless mega-menu of vague geographic areas and random locations designed for trains, with buses as an afterthought. Instead, tap Rider Tools->Bus Timetables. Not only do you get the pdfs. The app has its own pdf viewer. Now that’s classy.

For NJ Transit’s official trip planning tool, tap  Rider Tools->Trip Planner. This trip planner is not exactly top notch, considering it doesn’t have a map, so the input and output are fully text based. However, it does one useful thing that Transit can’t do, and that is showing you how many zones you’re traveling on each leg.


For a demonstration, let’s take a weekend trip from New Brunswick to Lakewood. We’re traveling 2 zones and then 7. The trip planner also shows the cost of the trip ($6.95), but it does so in a very unhelpful way. It takes the $2.55 for the 818, 75¢ for the transfer and $3.65 for the override fare on the 139, adding them all into one useless number. I bet the programmer who made this thought they were helping. Now to be fair, you can subtract $2.55 and 75¢ to get the override fare, but you may find it easier to just do it manually. Here’s a demonstration.

First, we’re traveling 2 zones on the 818, so under the North Jersey fare system, our first ticket will cost $2.55. Then, when we board the bus, we’ll ask for a transfer ticket for $0.75. Once we board the 139 in Old Bridge (which also has North Jersey fares), we use the transfer ticket to pay for the first zone. We’re traveling 7 zones to Lakewood, so that’s 6 override zones. Overrides are calculated by subtracting $1.60 from what the 7 zones would have cost if purchased as a ticket. $5.25-$1.60=$3.65, so that’s your override fare. Don’t like math? I made an override fare table just for you!

Tying together all these problems, I see two themes. First, the app tries to simplify things for people by restricting information, like only showing bus routes in your region or showing the fare as one number. But it ends up backfiring by leaving people unable to understand what’s really going on. Second, it applies train logic to buses by forcing riders to pick from discrete stops to access realtime or schedules. What riders really need is an interface that acknowledges the continuous nature of bus routes, instead of asking them to pick a “station”.

So if you’re reading this, NJ Transit. You’ve got a long way to go with this app. Like, 19 zones long. But if you care about people being able to use your service, I know you can do it. And when you finally get around to fixing America’s worst transit app, I can’t wait to take this page down.