Introducing Predictions v2: More Accurate Ferry Delay Forecasts

4 min read

Building an app to predict ferry delays is challenging enough when the ferries themselves are unpredictable. It becomes even harder when the source data from Washington State Ferries is equally unreliable. After 18 months of intensive development, I'm excited to announce Predictions v2, a complete overhaul of the delay prediction system that delivers much better results. The updates will be released over the coming days.

Phase 1 (Last Year)

While you may never realize it, FerryFriend has a ton of infrastructure in place to produce more reliable data than WSF provides. Many of the features within the app rely on the positioning of the vessels. Last year, I invested in a data feed that provides a backup source for the vessel positioning. This way, when the "Vessel Watch" feed goes down (or more commonly starts spewing crazy data), FerryFriend automatically switches to the backup feed to keep providing an accurate map within the app.

Phase 2: The Complete Rebuild

For the last 18 months, I've been working on a massive update to FerryFriend. The prediction algorithm was originally written almost 7 years ago now and is no longer as effective as it once was. Figuring out which vessel is doing what turns out to be an incredibly difficult problem. Boats get cancelled, swap places, and randomly go out of service. Trying to capture all of these anomalies accurately is an extremely difficult task.

The old prediction system was ~2,000 lines of code. The new system is ~8,000 lines of code and goes way beyond the capabilities of the old system. Predictions are much more accurate than before, and the vessel statuses that you see on the vessel map are also much more accurate. It won't be perfect out of the gate, and I'm still fixing bugs as they pop up.

FerryFriend app showing improved schedule predictions with departure times and arrival estimates

Enhanced Schedule Interface

With the new system also comes some UI changes. You'll now see the time that the last vessel departed as well as an estimate for when it will arrive (or when it did arrive) right within the schedule. There is also a new "Report Predictions Issue" button that will stick around for a while. If something is funny or wrong, please don't hesitate to send in a report. I'm able to pull up the predictions right at that moment and diagnose what might be wrong.

Updated FerryFriend schedule interface showing departure times and arrival estimates

Completely Redesigned Vessel Map

The vessel map also got a huge UI refresh. The view now shows some key information including estimated departure, a history of the vessel's events, and a new details tab that gives a little more information about each vessel. New vessel images have been created for each vessel, including the Kitsap Transit vessels!

Vessel map showing detailed vessel information and event history
Vessel map with tracking tails showing vessel paths

Finally, you'll also notice that I've added tails for each vessel—so if it's been selected, you can see where it's been since it last docked.

What's Next?

This represents the most significant update to FerryFriend's prediction system since the app launched. The new algorithm takes into account many more variables and edge cases that the previous system couldn't handle. As always, I'll continue monitoring and improving the system based on real-world performance and your feedback.

I welcome any and all feedback! Please reach out to support@ferryfriend.com with any questions, ideas, issues, etc. Also, thanks to everyone who has been supporting my work on this—couldn't have done it without you!

—Jordan

FerryFriend is a product of True Course Inc

Reach the team with bug reports, ideas, or just to say hello at support@ferryfriend.com.

FerryFriend is not affiliated with Washington State Ferries. All data is provided by Washington State Ferries and is subject to their terms of use. All features may not be available on all routes.

Copyright © 2023 True Course, Inc.