0kr
An empty berth is worth nothing
Once the ramp lifts, the berth cannot be sold. There is no inventory to carry forward, no second chance at that sailing.
Revenue management for ferry operators
Ferry Profit Optimizer is a revenue management system for ferry operators. We forecast demand per departure and recommend the fare that maximises contribution, on your own data.
01The problem
0kr
Once the ramp lifts, the berth cannot be sold. There is no inventory to carry forward, no second chance at that sailing.
~90%
Fuel, crew and harbour fees barely move with occupancy. Nearly every additional berth sold is close to pure contribution.
2limits
Passengers and vehicles sell together against two separate ceilings. A family in a campervan takes one lane metre and four seats.
Measured on held-out sailings, the later period of the data, never trained on. Accuracy differs per operator and these are averages: across the fleets measured, forecast error ranges from 4.4 % to 7.4 % MAPE, and the model beats the predict-the-average baseline by 81–85 %. Route mix, how far ahead a fleet sells and how often sailings fill all move the number, so your own figures are established on your own history during onboarding rather than promised in advance.
02Platform
Every module is entitled per operator. A freight-led route can run deck demand alone; a large operator runs the catalogue. Nothing switches on without the model it reads from a module without its inputs does not fail, it quietly emits a rule of thumb wearing a model’s name.
How full the berths will be
A P10–P90 band per departure rather than a single number. The band is the decision: 62–91 says the sailing can still go either way, 88–96 says it is settled. The model reads the SLOPE of the booking curve, because 40 % is strong sixty days out and alarming at five.
03Console
Stockholm Åbo
Booking build-up against forecast
Why€39 fills the ship but leaves money on the table: demand at that price exceeds the 2,420 berths available, so the cheapest seats crowd out travellers who would have paid more. €52 clears close to capacity at the highest total contribution.
Booked against forecast, departure by departure
04Model
Forecast error over 24 months
What the forecast leans on
05Network
| Route | Service | Departures | Load | Yield index | Trend |
|---|---|---|---|---|---|
| Stockholm – HelsinkiNLK 101 | 2 daily | 62 | 92.1% | 128 | +4.2% |
| Trelleborg – RostockNLK 204 | 4 daily | 124 | 77.4% | 112 | +2.8% |
| Kapellskär – MariehamnNLK 310 | 3 daily | 93 | 61.2% | 94 | -1.4% |
| Gothenburg – FrederikshavnNLK 415 | 5 daily | 155 | 84.8% | 119 | +3.6% |
| Ystad – ŚwinoujścieNLK 522 | 3 daily | 93 | 70.6% | 103 | +1.1% |
| Umeå – VaasaNLK 630 | 2 daily | 62 | 51.7% | 87 | -2.2% |
Yield index by route and week
06How it fits
You keep the booking system you already run. We take a read-only copy of what it already knows, and hand back a number your team or your system can act on.
A job reads what changed since last night over a read-only account, or from files you drop if your IT will not open the database. It lands raw before anything interprets it, so a mapping error is replayed against our copy instead of costing you another extract.
Every departure a hundred days out, ranked by where the money is. Open one and you get the band, the pace against comparable sailings, the price ladder so far, and how much demand was turned away last time it sold out.
Operators with their own IT do not want a second screen. They pull a recommendation per departure and product each morning, put it into their own approval flow, and tell us what they did with it. That last part is what lets us show, on your data, whether following the recommendation paid.
Nothing on our side writes a fare, releases capacity or touches a booking. If we are down, you keep selling on yesterday’s prices and fetch again tomorrow.
We read the revenue plan and actuals. Nothing is written back.
Capacity and live bookings in. Price changes stay yours to make.
Read straight from the warehouse you already run.
Start with files, move to streaming when volume justifies it.
07FAQ
18–24 months per route gives stable seasonal patterns. Twelve works, but the intervals widen and routes with little history borrow structure from comparable ones.
Drift detection compares incoming demand against the forecast distribution. On sustained deviation the intervals widen, recommendations are damped and the departure is flagged for review rather than the model carrying on with false confidence.
No. Our integration is read-only in both directions of meaning: we read your data, and we never write to your systems. You get the forecast, the recommended fare and the reasoning in the dashboard or over the API and your team decides what to do with it in the booking or payment system you already use.
BI describes what happened. This estimates what happens next and recomputes what the next unit sold is worth. The difference is displacement cost what you lose by selling cheap now instead of dear later.
Bring one route and a year of booking history. We show you the forecast it would have produced, and what it would have been worth.
Book a walkthrough