Historical cancellation data, prediction model performance, and how FerryForecast works.
Historical Data
Based on 522 historical cancellation events currently sourced from SSA cancellation-email records and Hy-Line #ALERT feed records.
Source note: This card currently uses alert-derived labels. We are migrating to operator trip-level logs (primary) plus AIS run/no-run verification (secondary), with monthly reconciliation against SSA’s official performance reports. Until that transition is complete, category percentages here remain alert-derived.
Model Performance
Trip-level metrics evaluated on 33,411 labeled trips (Jan 2023 – Feb 2026). Probabilities are calibrated so a “20%” estimate reflects roughly a 20% observed running rate for similar weather conditions.
Trip-level reliability: when we predict X% chance of running, how often did that trip actually run?
Odds ratio per 1 standard deviation increase (significant vs. not significant)
* Statistically significant (p < 0.05). Wave Height (1.80x)Wave Height has the strongest effect — each 1 SD increase raises cancellation odds by 80% is the strongest predictor.
Percentage of trips the model correctly predicted cancellation vs. running, by month
Trip-level model on imbalanced data (97.4% of trips run): intentionally conservative on false alarms.
Odds ratios and Wald test p-values for all model features.
| FeatureModel input variable | CoeffStandardized logistic regression coefficient | SEStandard error of the coefficient | WaldWald chi-squared statistic — (coefficient / SE)² | p-valueStatistical significance — below 0.05 means the feature reliably predicts cancellations | OROdds ratio — how much cancellation odds change per 1 SD increase | 95% CI95% confidence interval for the coefficient |
|---|---|---|---|---|---|---|
| InterceptBaseline log-odds of cancellation when all features are at their mean values | -4.6790 | 0.0642 | 5317.64 | <0.001 | — | [-4.80, -4.55] |
| Wind Speed (mph) | 0.4225 | 0.2456 | 2.96 | 0.0853 | 1.526 | [-0.06, 0.90] |
| Wind Gusts (mph) | 0.4189 | 0.2351 | 3.17 | 0.0748 | 1.520 | [-0.04, 0.88] |
| Wave Height (ft) | 0.5874 | 0.0567 | 107.52 | <0.001 | 1.799 | [0.48, 0.70] |
| Wave Period (sec) | 0.0765 | 0.0824 | 0.86 | 0.3528 | 1.080 | [-0.08, 0.24] |
| NE Wind Direction | 0.0553 | 0.0302 | 3.35 | 0.0673 | 1.057 | [-0.00, 0.11] |
| Month | -0.1070 | 0.0305 | 12.28 | <0.001 | 0.899 | [-0.17, -0.05] |
Wind speed and gusts have high coefficients but large standard errors due to multicollinearity. Wave height is the strongest independently significant predictor.
Methodology
How this site predicts whether Nantucket ferries will run, start to finish.
For each scheduled ferry departure between Hyannis and Nantucket, we estimate the probability that the trip will operate as planned, based on forecast weather conditions. A “95%” means that historically, trips operating under similar weather conditions ran about 95% of the time. A “40%” means conditions resemble those when roughly 6 in 10 comparable trips were cancelled.
We estimate weather-related cancellation risk only. Mechanical breakdowns, crew shortages, and operational decisions are outside the model’s scope. SSA’s official performance data attributes about 33% of Nantucket trip cancellations to weather and 10% to mechanical causes, with the remainder in a broad “other” category that likely includes some weather-adjacent decisions. Hy-Line cancellations skew more heavily toward weather (~85% in our dataset).
When the estimate is above 95%, weather-related cancellation risk appears low based on current forecasts. When it falls below 40%, conditions resemble historical cancellation days. Non-weather cancellations are not modeled and will not appear in these estimates.
We use logistic regression, a well-understood statistical model that estimates the probability of a binary outcome (cancelled or not cancelled) given a set of weather measurements.
Training data: Trained on 33,445 individual trip records from January 2023 to July 2026, each labeled as cancelled or normal. Of those, 870 were confirmed cancellations (542 from SSA email alerts, 328 from Hy-Line alerts) and 32,541 were confirmed running from published schedules. The model retrains weekly on an expanding dataset (see Continuous improvement below).
Performance (5-fold cross-validated): AUC 0.952, Brier Score 0.018, 97.5% accuracy. AUC and Brier Score are the most informative measures here — accuracy appears high largely because cancellations are rare (~2.6% of trips), so a model that always predicted “runs” would already score ~97%. Probabilities are calibrated using isotonic regression so when the site shows 80%, roughly 80% of comparable trips in our historical data ran as scheduled.
Why logistic regression? It’s interpretable (you can see exactly which weather variables matter and by how much), stable with limited data, and hard to overfit. More complex models (random forest, gradient boosting) showed marginal accuracy gains but lost interpretability.
The model uses six weather features, listed by predictive importance:
Odds ratios are per 1 standard deviation increase. A 1.80x ratio means each standard deviation increase in wave height raises cancellation odds by 80%. Month has a protective effect (0.90x) — each SD toward summer months reduces cancellation odds by 10%.
Fast ferries (Hy-Line’s Grey Lady, SSA’s Iyanough) are high-speed catamarans that make the crossing in ~1 hour. They’re more sensitive to rough seas due to their hull design and higher operating speed.
Traditional ferries (SSA’s Eagle, Woods Hole) are larger, heavier car/passenger vessels. They take ~2.25 hours but tolerate significantly worse conditions.
How we adjust: The base model produces a single cancellation probability. For fast ferries, we shift the internal score toward cancellation (+0.3 logit). For traditional ferries, we shift it toward running (−0.8 logit). In calm weather both show ~99%. In marginal weather (20 mph wind, 3 ft waves), a fast ferry might show 85% while a traditional ferry shows 97%.
Classification: All Hy-Line Nantucket service is fast ferry (Grey Lady catamaran). SSA trips are classified by their published vessel type — “Fast Ferry” (Iyanough) vs. “Vehicle/Passenger” (traditional).
The model is trained on trip-level data: for each individual scheduled departure from January 2023 to July 2026, was this specific trip cancelled due to weather?
Label sources (33,445 trips total): SSA weather cancellations are from their automated email alert system (542 confirmed cancellations). Hy-Line cancellations come from their #ALERT social media feed via the Flockler API (328 confirmed cancellations). The remaining 32,541 scheduled trips without a corresponding cancellation alert were assumed to have operated as scheduled — the standard approach for modeling rare events from alert-based data sources.
SSA cancellations were extracted from the full history of trip-cancellation email alerts, yielding 542 weather cancellations used for training. Reasons include weather, mechanical, crew shortage, and other causes — only weather-attributed trips were labeled cancelled.
Hy-Line cancellations were matched from Flockler alert posts to specific ACK Schedules API trip records (328 confirmed weather cancellations).
Weather data for each trip was pulled from NOAA Buoy 44020’s historical records. Each trip is matched to the nearest observed reading within the ferry operating window, capturing wind speed, gusts, wave height, wave period, and direction at trip time.
SSA annual performance statistics (downloaded from steamshipauthority.com/performance) were cross-referenced with our email data. Note: SSA’s official breakdown categorizes only ~33% of Nantucket cancellations as “weather,” while our email alerts show 64%. The discrepancy likely reflects SSA’s broad “other” category (56% of their total) capturing some weather-adjacent operational decisions that their email alerts explicitly label as weather.
Our 7-Day Outlook uses Open-Meteo’s forecast models, which blend ECMWF, GFS, and regional models. Forecast accuracy degrades with lead time — here’s what we know:
| Horizon | Wind accuracy | Wave accuracy | Our confidence |
|---|---|---|---|
| Day 1–2 | RMSE ~2.1 m/s (~4.7 mph) | High skill, RMSE <0.3 m | High |
| Day 3–4 | RMSE ~2.3 m/s (~5.1 mph) | Good skill, RMSE ~0.3–0.5 m | Moderate |
| Day 5–7 | RMSE ~2.4+ m/s (~5.4+ mph) | Useful for large signals only | Lower |
Wind RMSE figures are from ECMWF verification reports. Open-Meteo does not publish its own accuracy statistics. Wave forecast verification from the WMO Lead Centre indicates wave forecasts are “useful to day 5 in the Northern Hemisphere.”
What this means for our predictions: Cancellation days in our dataset average 24.4 mph wind and 3.1 ft waves. A 5 mph RMSE at day 5 could swing a 15 mph forecast to 20 mph (still below typical cancellation conditions) or a 20 mph forecast to 25 mph (now in the danger zone). Days 1–3 are reliable. Days 4–5 are useful. Days 6–7 should be treated as directional only — good for spotting obvious storm patterns, not for making travel decisions.
There are two reasonable approaches to predicting ferry cancellations: model the base rate (what percentage of trips get cancelled on any given day?) or model weather-conditional probability (given today’s specific weather, what’s the chance of cancellation?).
Base rate approach: About 11.6% of days in our dataset had at least one weather cancellation. You could simply say “there’s an 88% chance boats will run today” every single day. This would be correct 88% of the time — but it tells you nothing useful. It can’t distinguish a calm July morning from a nor’easter.
Weather-conditional approach (what we use): We feed current wind speed, gusts, wave height, and other conditions into a logistic regression model. On a calm day, the model returns 99%. When a storm approaches, it drops to 60% or lower. This is genuinely useful — it answers the question people actually ask: “Should I worry about my ferry today?”
What we intentionally leave out: Mechanical failures, crew shortages, and operational decisions. SSA officially attributes about 10% of cancellations to mechanical causes and 56% to a broad “other” category (which likely includes weather-adjacent operational decisions). Hy-Line’s non-weather cancellations are ~15%. We don’t model these because they’re effectively random from a passenger’s perspective — there’s no public data that would let us predict them. Including them would add noise without adding predictive value.
Transparency note: When the model says 95%, it means “weather conditions are fine for running.” There’s still a small residual risk from non-weather factors that the model doesn’t capture. We think this is more honest than inflating uncertainty to cover unknowable events.
The model retrains itself weekly. Every day at 11 PM ET, a cron job records the day’s weather conditions and whether either operator cancelled. Every Sunday, the model retrains on the accumulated dataset with quality gates: the new model must not drop AUC by more than 0.02 or increase Brier Score by more than 0.01 compared to the current model. If quality gates fail, the existing model is kept.
This means the model gradually incorporates new weather patterns and operator behavior changes without manual intervention.