October 29, 2025
Banishing ghost and zombie buses

October 29, 2025
Banishing ghost and zombie buses
October 29, 2025
Banishing ghost and zombie buses
Ghost and zombie buses—the ones that never show up or appear unexpectedly—leave riders frustrated and in the dark. At Swiftly, we build tools that help agencies banish them and make real-time transit data accurate and reliable, even when things go off-script. The result: Fewer stranded and confused riders and a more trustworthy transit experience!
What keeps agencies—and riders—up at night?
Ghost and zombie buses are nightmares for transit agencies and their riders. Few things are more frustrating than waiting for a bus that never comes or being surprised by one that wasn’t supposed to. Ghost and zombie buses are more than just operational hiccups; they break the promise that public transit makes to riders: You’ll know when your bus is coming.
And when that promise is broken, riders notice. Just search #GhostedByTheBus on X (formerly Twitter) or Google, and you’ll see stories like:
- “I've been #GhostedByTheBus, waiting an hour in the snow for the [route name] which never showed up, despite [the app] saying it should have come and gone thrice.”
- “It says it's coming, then it says delays, then it pops up again like [3] minutes, then you'll be waiting, then it'll say 10 minutes, 15 minutes, you'll be waiting like an hour.”
- “Was the 6:45am [bus] canceled? I’ve been standing out here in the cold for 20 minutes now and can barely feel my hands.”
- “Ghosted by the 5:51pm [bus]. Just want to go home. 🙁”
Request a demo
Get started ghost busting!
What are ghost and zombie buses?
👻 Ghost bus
A bus that a rider expects to arrive but doesn’t. The app shows a bus arriving in 5 minutes, but as the countdown hits zero, the bus disappears and fails to show up, leaving riders stranded and uncertain.
🧟 Zombie bus
A bus that a rider doesn’t expect but arrives as a surprise. The app shows that the next bus is 20 minutes away, yet one shows up in 5 minutes, leaving riders guessing rather than planning.
Both situations shake rider trust in real-time data and make transit feel unreliable.
Why do they happen?
The root of ghost and zombie buses lies in the common limitations of traditional CAD/AVL systems.
- No service adjustments: The system does not have comprehensive information about service adjustments like trip cancellations or detours. This might be because entering this information into the CAD/AVL system is too difficult and time-consuming.
- Unreliable tracking: The system does not accurately track all buses. This might be because of onboard hardware issues.
- Missing assignment: The system does not have comprehensive information about vehicle-to-trip assignments (a prerequisite for tracking). This might be because the vehicle operator did not or could not log in.
How does this create a terrible rider experience?

How Swiftly banishes ghost and zombie buses
At Swiftly, we have built a suite of tools designed to eliminate ghost and zombie buses by addressing the root causes.
🛠️ Create and manage service adjustments with ease
Swiftly makes it fast and easy for agency staff to create and manage Service Adjustments. Trip cancellations, additions, detours, and stop closures can be entered into the Swiftly Dashboard in seconds. We also support the automatic ingestion of adjustments for seamless integration with existing systems. We continue to evolve this capability with support for complex scenarios, including recurring detours, multi-route detours, temporary stops, and partial trip cancellations.
Agencies can also create templated rider alerts with helpful context—such as why service was adjusted and where to catch an alternative bus.
In the last 12 months, Swiftly's customers have entered and managed:
- +750k canceled trips
- +127k detours—impacting millions of trips
- +7k stop closures
Once entered, Swiftly instantly reflects these changes in real-time data for riders. As a result, riders experience:
- No ghost buses from unreported cancellations, detours, or stop closures
- No zombie buses from uncommunicated added trips

👀 Detect issues before riders do
Swiftly’s Issues in Live Operations tool gives agencies early warning of disruptions across the network. With real-time insights, operations teams can respond to issues before riders are affected—by resolving the issue directly or creating a service adjustment:
- A trip is unexpectedly missing due to a mechanical failure → Create a trip cancellation
- A bus is running off-route after encountering unexpected construction → Create a detour
This proactive approach ensures that real-time data accurately reflects real-world conditions.
🤖 Fix missing or incorrect assignments
Swiftly Auto-Assigner automatically matches unassigned vehicles to scheduled trips, ensuring that these buses are properly tracked and real-time data is available. Auto-Assigner can also correct for cases when the operator logs in to the wrong block or run. This results in:
- No zombie buses from an operator not logging in
- No ghost or zombie buses from an operator logging in incorrectly to the wrong block
🌐 Ensure reliable tracking with multiple GPS sources
Swiftly can ingest GPS data from multiple sources—including CAD/AVL systems, onboard routers, and GPS pucks—for the same vehicle. This redundancy ensures accurate tracking, even if one source fails. Result:
- No zombie buses from broken or unreliable hardware
A better rider experience with Swiftly

By addressing the root causes of ghost and zombie buses, Swiftly equips agencies with the tools they need to keep real-time information accurate and reliable—even when things go off-script. Whether it’s a last-minute detour, a missed login, or a hardware failure, Swiftly ensures that riders get real-time transit data they can count on.
The result is fewer stranded and confused riders and a more trustworthy transit experience!
The rich text element allows you to create and format headings, paragraphs, blockquotes, images, and video all in one place instead of having to add and format them individually. Just double-click and easily create content.
Last Name, Agency

What’s a Rich Text element?
What’s a Rich Text element?
What’s a Rich Text element?
What’s a Rich Text element?
What’s a Rich Text element?
The rich text element allows you to create and format headings, paragraphs, blockquotes, images, and video all in one place instead of having to add and format them individually. Just double-click and easily create content.
Last Name, Agency
Static and dynamic content editing
A rich text element can be used with static or dynamic content. For static content, just drop it into any page and begin editing. For dynamic content, add a rich text field to any collection and then connect a rich text element to that field in the settings panel. Voila!
How to customize formatting for each rich text
Headings, paragraphs, blockquotes, figures, images, and figure captions can all be styled after a class is added to the rich text element using the "When inside of" nested selector system.
- text goes here
- text goes here
- text goes here
- text goes here
- text goes here
- text goes here





