In this Operational Oculi, I decided that I’d take a quick break from garage walkthroughs and begin to tackle the subject of how a public transportation schedule is made. Some terms that I am going to try to define today are “running time”, “layover”, and “cycle”. I am hoping that this post (along with my others coming up later) will give you an appreciation for why your bus arrives at a certain time (and how in most cases it’s not random).



Almost every route in the area has an “inbound” and an “outbound” direction. Even routes like the MBTA 201 and 202, which for the most part are loops, run “outbound” and “inbound” (and change directions at a given point in the route). At most times of the day, especially during rush hour, most people want to travel only one of those two directions. This can prove to be challenging, since there is a bigger demand for service in one direction than the other. Transit agencies strive to keep their buses comfortably full at all times. Since buses can’t just magically spawn at the places that they are needed, equal service is usually given to both directions of the route. This isn’t always the case, and we’ll go over those special cases some other time.



For the purposes of this post, we’ll assume that every route has its own buses that run back and forth on it. In another post, I’ll try to explain what “interlining” means and how most buses will run several routes in a given day. However, there are plenty of routes on the MBTA and elsewhere that follow this model of having their own buses that run back and forth and don’t run on any other routes (such as the 111 and 352). In order to build a schedule, you need to determine: a) how often the bus should come (the headway), and b) how long it will take from Point A to Point B (running time). The running time heavily influences the headway; it can affect how quickly a bus can do a round trip and therefore how frequently the bus can come. On routes that aren’t interlined, the running time is probably one of the biggest factors of what can determine a headway to ensure that service runs on time and also frequently, efficiently utilizing all of the buses that could be given to run that particular service.

Running time is calculated by taking archived, real-time data from buses, discarding outlier sets of data (that one day two weeks ago when traffic was gridlocked shouldn’t be built into the schedule), and finding the median amount of time from there. It is a very delicate science to assign running time: too little running time and the bus runs late, too much running time and the driver will drive slower than is necessary to avoid running early. This is where layover time can come in handy. Layover time is the time between when the bus arrives at its destination until the time it has to leave on its next trip. Layover time is crucial to keeping buses on schedule. The MBTA requires a minimum of 20% layover time after every trip (so, for a 25 minute one-way trip, 5 minutes must be designated as layover time. This means that during the 25 minute trip, the bus can be delayed up to 5 minutes and still be able to leave in time for its next trip. The scheduled running time for a round trip plus layover on each end is called the cycle time.

So let’s try to apply all of this into an example route. Let’s say that there’s a route 63, running from Alewife Station in Cambridge, to Central Square, Waltham, running via Waverley Square in Belmont. Running time data suggests that the trip takes 25 minutes on Saturdays. Service every 30 minutes has been deemed optimal. We can determine the minimum layover time by taking 20% of the 25 minute running time, which is five minutes. Adding up the running time in both directions, plus two six minute layovers on each end, means that we have a 60 minute minimum cycle time on this route. This works out perfectly, since 60 is divisible by the 30 minute headway that we were striving for. The cycle time divided by the headway equals the number of buses required to run the service. Since 60/30 = 2, two are required to run the service. Most of the time however, the optimal headway is not evenly divisible by the cycle time. In these cases, three things could happen: the layover time could increase, the headway could change, or the route could interline with another route. The last scenario mentioned has become increasingly common, and I hope to get the interlining post that I mentioned earlier up in the near future.

That’s it for this post. Please be sure to stay tuned for more posts from Miles and some more stuff by me in the future!