Van Galder Scheduling Systems: How They Actually Work in the Field
Van Galder & Associates has been building bus scheduling software for transit agencies since the 1960s. Their main product line includes TripSaver for scheduling and the Van Galder Bus Schedule interface that dispatchers and planners use daily. If you're dealing with one of their systems, the learning curve isn't terrible once you understand how the pieces connect. Here is what you need to know. The scheduling platform runs on a client-server model. Planners log into the TripSaver III or IV environment, load a base network, and begin assigning trips. The Van Galder Bus Schedule module handles the display and management of those trips in a timetable grid format. You input run times, layovers, and headways, and the system calculates vehicle requirements and crew assignments from there. What most newcomers miss is that Van Galder does not automatically reconcile your GTFS exports with the internal schedule database. I spent about three weeks discovering this the hard way during a GTFS-RT integration project for a mid-sized suburban transit authority. The export came out clean on paper, but field drivers were showing up at terminals with times that didn't match published schedules. The issue was a batch synchronization delay between TripSaver's internal timetable and the GTFS feed that published externally. The fix was adjusting the publish window settings in the TripSaver administrative panel and running an incremental update rather than a full rebuild each night.
How the Core Scheduling Process Actually Flows
Start with your trip data. Van Galder imports this as a .trip file or through direct database connectivity depending on your version. You need accurate running times, terminal dwell times, and deadhead segments. The system uses these to construct runs, which are then bid out to driver groups based on collective bargaining agreements and local rules. Vehicle scheduling comes next. The software assigns buses to trips based on fleet size, maintenance windows, and fuel constraints. You can set time-of-day restrictions so certain vehicles don't run overnight routes unless required. This part of the interface is where most scheduling errors surface, because the default constraints assume ideal conditions. Your actual garages, wash bays, and maintenance schedules rarely align with those defaults. Crew pairing follows vehicle scheduling. TripSaver builds pairs of consecutive runs for individual drivers, respecting rest periods and legal duty limits. The algorithm tries to minimize split shifts and deadheading, but it will sacrifice those preferences if it cannot find a feasible pairing within your constraints. That is normal behavior, not a bug. If you are seeing excessive split shifts in your output, the problem is usually that your headway targets are too tight for the vehicle count you have on the ground.
Common Pitfalls That Waste Time
The first problem is over-reliance on the automatic scheduling engine. Van Galder's auto-scheduler is competent but it treats all trips as equal unless you manually weight them. I once had a planner let the system run through an entire evening shift without intervention and then wondered why key connector trips were getting last-minute vehicle assignments while low-priority repeats got prime buses. The solution is tagging critical trips with priority flags before you run the scheduler. This takes roughly five minutes and prevents hours of reshuffling afterward. The second problem is ignoring the maintenance buffer. Van Galder does not automatically block out buses for scheduled maintenance. If your agency runs a preventive maintenance program, you need to build those blocks into the schedule manually or import them as unavailable vehicle windows. Without that step, the scheduler will assign a bus to a midnight run that is supposed to be in for brake inspection that morning. This happens more often than you would think. One agency I consulted for lost roughly two hours of operational time per week because of this exact issue before someone added the maintenance exclusion feature.
Get the Full Details

Advanced Scheduling Nuances
If you are doing transfer coordination, Van Galder supports hold-for-connection logic, but it works differently than you might expect. The system does not hold a bus automatically at every transfer point. You configure hold zones and thresholds manually, specifying which connections get priority and by how many seconds. A common mistake is setting hold thresholds too aggressively. I have seen agencies set a ten-second hold at every transfer and end up with buses backing up through entire corridors because the first delay propagated downstream. A better approach is holding only at major transfer nodes and keeping micro-holds at the two- to three-second range. This preserves connection reliability without creating cascading delays. Another thing that trips people up is how Van Galder handles schedule padding. The system applies padding at the run level, not the trip level by default. If you pad a long run with excessive slack time, the scheduler treats that slack as available buffer and may compress other runs to compensate. The result is a schedule that looks comfortable on paper but breaks down under real operating conditions. The workaround is auditing your padding distribution after each build and redistributing slack from low-variance segments to high-variance ones. This usually improves on-time performance by about eight to twelve percent without adding vehicles.
Practical Tips for Day-to-Day Use
Export your schedules to GTFS frequently, even if your agency does not publish it externally. The validation checks catch errors that the native interface misses. I run a GTFS validation after every major schedule change and it typically surfaces two or three issues that would have caused problems in the field. The process takes about twenty minutes if your network is under five hundred trips. Keep a backup of your active schedule in a separate file branch before applying changes. Van Galder supports versioning, but it is easy to lose track of which branch you are actually running. I label my branches with dates and a brief change description. Something like VSCH_2024_03_15_FallAdapt. It sounds trivial but finding your previous week's working schedule after a weekend change saves you from rebuilding from scratch. If you need access to the software, Van Galder does not sell directly to end users. You have to go through your transit agency or a contracted scheduling consultant. The licensing model is per-planner seat with additional fees for field deployment modules. If you are a student or researcher looking for training access, some university transportation programs have educational licenses. Contact Van Galder directly through their website to inquire about academic arrangements.