Will It Sail? 🚢
An unofficial sailing predictor for CalMac's west coast ferry network. It combines live weather forecasts, real CalMac cancellation history, live service status, and AIS vessel tracking to estimate how likely each sailing is to run — route by route, departure by departure.
Database
real data
calibrated
status API
Historical cancellation data comes from official CalMac monthly reliability PDFs at corporate.calmac.co.uk. Routes without PDF data use research-based estimates from Transport Scotland reports and FOI releases. The 📊 Calibrated badge means a route's prediction is anchored to real cancellation history.
How the prediction works
Every route gets a Sailing Chance % calculated in three stages:
Live data fetched from Open-Meteo every 30 minutes. Four conditions scored and summed:
The overall route score is the average of the three worst hours in the next 12 — so one gusty hour doesn't tank a mostly calm day. Each individual sailing row shows that departure's specific hour score.
- Season factor — cancellation thresholds are 15% stricter in winter (Nov–Feb), 7% stricter in shoulder months (Mar, Sep, Oct), and standard in summer (Apr–Aug). This reflects CalMac's real-world higher cancellation rates in winter.
- Route exposure profile — each of the 22 routes has a wind threshold (mph), wave threshold, and exposure rating built from route geography and historical cancellation data.
- Tidal penalty — a small fixed penalty for routes with known tidal constraints (Uig triangle, Small Isles) that can cause cancellations independently of weather.
For routes with a 📊 Calibrated badge, the weather score is blended with real CalMac reliability data — seasonal figures from official monthly performance PDFs:
The result is capped at that route's historical reliability + 10% — so even in perfect weather, a structurally unreliable route can't show an unrealistically high score. Routes without PDF data use weather-only predictions.
Features
A disruption banner appears at the top of the Routes tab whenever CalMac is reporting active cancellations or delays on any route, pulled automatically from CalMac's internal service status API. Affected route cards are flagged with a status pill. If the CalMac API is unavailable, a fallback link to their official status page is shown instead.
Every route card and modal has a Share button. Tap it, enter your name, and a unique link is generated. On iOS and Android it opens the native share sheet; on desktop it copies the link to clipboard. When the recipient opens the link it shows your name at the top — "Ross shared Ardrossan – Brodick with you 🚢" — and opens directly to that route.
Star a route (⭐) to save it to Favourites. On the route card, tap Alert me to subscribe to push notifications for that route. If the sailing chance drops below 70%, you'll receive a notification — even with the app closed. Notifications are checked every 10 minutes with a 2-hour cooldown per route to avoid spam. Tap Alerts on to unsubscribe.
Requires browser notification permission. Notifications work on Chrome, Edge and Firefox. Safari on iOS 16.4+ when the app is added to your home screen.
Tapping a route card opens the detail view, which shows the vessel currently operating that route. This is fetched live from AIS (Automatic Identification System) position data via aisstream.io — if a vessel is detected within the route's geographic bounding box, it's shown with a green live indicator. If AIS data is unavailable, the scheduled vessel for that route is shown instead.
The detail modal for each route includes a Route details section showing crossing time, service type, scheduled vessel, and a contextual note — for example flagging that Kennacraig–Islay serves two different ports, or that Claonaig–Lochranza is a seasonal summer-only service.
The app registers a service worker that caches the shell, so if you load it in a ferry terminal with no signal, the last-loaded UI remains available. Add it to your home screen on iOS or Android for a full-screen experience and to enable push notifications on iOS. Feedback reports submitted while offline are queued and sent automatically when signal returns.
Individual sailing predictions
Tapping a route card expands a timetable showing each departure time with its own sailing chance. Each sailing re-runs the weather score for that specific hour — a route might show 90% overall but flag a 15:00 departure at 65% if a squall is forecast to arrive that afternoon.
Timetables are based on the CalMac Summer 2026 schedule (27 March – 18 October 2026), verified from official CalMac PDFs. A timetable-verified indicator on a sailing means its times came directly from a published PDF rather than being estimated.
Data sources
Limitations & honest caveats
- Not all cancellations are weather-related. Mechanical breakdowns, crewing issues and port problems cause a significant proportion of cancellations. The live CalMac status API catches many of these — but only when CalMac has already published an alert. Surprise failures won't appear until CalMac posts them.
- The forecast grid may miss local conditions. The Minch, Sound of Mull and Firth of Lorn can have sea states that differ significantly from the nearest Open-Meteo grid point.
- CalMac masters have the final say. Internal safety thresholds aren't published — our thresholds are reverse-engineered from cancellation history and will never be perfectly calibrated.
- Tidal routes are especially uncertain. Operational constraints at some piers go beyond weather alone and aren't fully captured in the model.
- AIS coverage has gaps. Some areas have limited AIS receiver coverage. The vessel shown may be delayed or missing if the vessel is out of range of a receiver.
- Historical data quality varies. Six routes have full verified PDF data; the rest use estimates which are less precise — particularly in winter months where disruption patterns are harder to model.
⚠️ Disclaimer
This is an unofficial community tool with no affiliation to Caledonian MacBrayne. Predictions are estimates only — always check CalMac's official service status before travelling. Never rely solely on this app for travel decisions.
Developer
Built by Ross Mackenzie
Inverness, Scotland 🏴
Timetables valid for summer 2026 (27 Mar – 18 Oct 2026). Always verify at calmac.co.uk.