Introducing Predictions v2: More Accurate Ferry Delay Forecasts
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.

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.

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!


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