Why ferry vs flight costs feel hard to compare
I started with what looked like the obvious math: a $25 ferry versus a $60 flight. Then the “cheap” option quietly grew legs—taxi to the port, port fees, a snack because you’re stuck waiting, and suddenly you’re paying to lose half a day. Flights do the same trick in reverse: the fare looks higher, but if you’re already staying near the airport (or can grab a shared ride), the end-to-end cost sometimes narrows fast.
The harder part is that time and reliability aren’t priced on the ticket. Ferries can be delayed by sea conditions, boarding can be slow, and your arrival time can slide into “too late to check in anywhere nice.” Flights are faster, but baggage rules and last-minute fare jumps can punish you if you’re carrying a bigger pack or booking late. Comparing them only by headline price is how budgets get quietly wrecked.
List every cost line-item for each option

On my notes app, I ended up splitting each leg into two columns—“ferry” and “flight”—and forcing myself to write every cash line-item before I even looked at totals. It feels fussy, but it’s the only way a $25 ticket doesn’t turn into a $55 day because you forgot the boring parts (and the boring parts are usually the ones you can’t avoid once you’re already committed).
For ferries, I budget: transport to the correct port (and sometimes a second ride if you guessed the wrong harbor), any terminal/harbor fees, the ticket itself, baggage add-ons if you’re oversized, and the “waiting tax” (water/food when departures slide). If it’s a fast boat, I also price motion-sickness meds because it’s cheap insurance on rough days.
For flights, I list: ride to the airport, the fare (double-checking whether taxes are already included), checked baggage fees (and overweight risk), seat/payment fees that pop up at checkout, and the ride from the arrival airport to town. Then I add the annoying but real possibility cost: if you’re booking last-minute, you may need a pricier departure time just to avoid losing an entire usable day.
Convert time and hassle into a personal cost
Halfway through planning Bali–Lombok–Flores, I realized my budget problem wasn’t “what’s cheaper,” it was “what’s a day worth to me.” I started assigning myself an hourly rate—not a perfect number, just a decision tool. Pick something you’d actually pay to avoid dead transit time (for me it was roughly the cost of a basic meal per hour). Then multiply it by the door-to-door hours, not the timetable: ride to port/airport + early arrival buffer + the trip + the messy last-mile into town.
The friction is where ferries and flights flip. A fast boat can be “cheap” but still burns you if the port is far, boarding is chaotic, or seasickness makes the afternoon unusable. Flights are quick in the air but demand more fixed overhead: check-in lines, baggage rules, and the risk that a delay strands you somewhere without a simple Plan B. I add a small “risk fee” when a leg threatens a missed connection or a same-day hotel check-in window—because paying $10–$20 extra upfront is often cheaper than improvising at 9 p.m.
Find real prices: routes, seasons, and booking channels

The first time I tried to “get real prices,” I made the mistake of checking one aggregator, screenshotting the cheapest option, and calling it a budget. Two days later the same leg had jumped, and the ferry I’d bookmarked was suddenly “sold out” unless I was willing to depart at a time that effectively deleted my morning. The fix was treating prices like a range tied to when you travel, not a single number.
For each leg, I pull three quotes: (1) flight on an aggregator (Traveloka/Tiket) and the airline’s own checkout screen (fees can diverge), (2) fast boat via a major reseller (12Go-style platforms are useful for schedule visibility), and (3) a “local reality check” from your accommodation or a port agent on WhatsApp—especially on Bali–Lombok routes where departure points (Padangbai vs Sanur vs Serangan) change your transfer cost more than the ticket does.
Seasonality matters more than people admit: weekends, July–August, and holiday weeks squeeze both seats and boats, while shoulder months often widen the gap again. When you’re booking last-minute, prioritize options with multiple daily departures; a slightly higher fare is easier to swallow than getting stranded by a single sailing that slips or cancels.
Quick comparisons for common island pairs
I kept getting stuck on the same question: “Which leg is the one where a ferry is actually the smart move?” Once I forced myself to compare door-to-door (not ticket-to-ticket), a few island pairs started behaving predictably—mostly because transfers and schedule reliability matter more than the water or air time.
Bali ↔ Lombok: if you’re staying in Ubud/Canggu, the fast boat can look cheap and still cost you because Padangbai transfers chew up hours and early departures pull you out of bed. From South Bali, boats out of Sanur/Serangan can reduce that ground-time, but you’re paying for convenience and you’re more exposed to cancellations when the sea kicks up. Flights usually win on “usable day preserved,” but only if you don’t get hit with baggage fees or a last-minute fare spike.
Lombok ↔ Flores (Labuan Bajo): I treat this as a flight-first route unless you want an overland/overnight adventure. The ferry/land chain can be cheaper in cash, but it’s the leg most likely to swallow a full day (or two) and leave you timing hotel check-ins in the dark. If your Flores plans are date-sensitive (boats, tours), I’d pay extra here for reliability and arrive with margin.
A simple decision rule to choose confidently
I ended up using a three-number rule that’s simple enough to do on a phone while you’re sweaty and short on patience: Total Cash + Time Cost + Risk Buffer. Total Cash is every line-item you listed (transfers, fees, baggage, food while waiting). Time Cost is your hourly rate times door-to-door hours (including early arrival and the last-mile into town), because “2 hours on paper” often behaves like 6 in real life.
Then I add a Risk Buffer only when the consequences are expensive: same-day connections, fixed tour start times in Flores, or arriving after dark when transport and decent rooms get pricier. My default buffer is small (think 10–20% of the leg), but I scale it up for fast boats in rough season or for any route with only one realistic departure that day. Pick the option with the lowest combined number—unless it forces a transit day you’ll resent, in which case paying a little more is the whole point of planning.