Onboard revenue cruise ships earn through the app: 2026 guide

TL;DR
The onboard revenue cruise ships earn through the app in 2026 depends less on screens than on the systems behind them: the order queue, the entitlement record, the dining-credit prompt and the internet plan flow. Royal Caribbean Group booked nearly 50% of its 2025 onboard revenue before sailing, with 90% of pre-cruise purchases made through digital channels.
- On one Mercury program under NDA, the ordering backend topped out near 400 concurrent orders, a hard cap on sea-day sales. Queue orders on the ship and make retries idempotent.
- Read each booking's entitlements before showing an offer: NCL kept bookings made before November 5, 2025 on older package terms.
- Prompt for dining credits before boarding. NCL's Free at Sea dining must be added at least 3 days before the cruise.
- Under Apple's Guideline 3.1.3(e), drink packages and dining are paid by card or Apple Pay, not by in-app purchase.
Why the cruise app became a sales channel
Royal Caribbean Group reported $5,419 million in onboard and other revenues for 2025, up from $4,986 million, next to $12,515 million in passenger tickets. Its 2025 results release adds that nearly 50% of onboard revenue was booked pre-cruise and 90% of pre-cruise purchases came through digital channels.
The app carries much of it. On the second-quarter 2025 call, CEO Jason Liberty said nearly 50% of onboard purchases now come through the mobile app, up from a third in 2023. Guests who buy onboard experiences before the cruise, he added, spend about two and a half times more than those who do not.
Demand is there: Seatrade Cruise News, citing CLIA, counted 37.2 million ocean cruise passengers in 2025, up 7.5%. The limit sits in software, in whether the app and the systems behind it can take the money when a guest tries to pay.
Package rules changed twice in three months
On November 5, 2025, Norwegian Cruise Line brought back Free at Sea: on a seven-night sailing, an unlimited open bar, three specialty dining meals and 150 minutes of internet. Travel Market Report noted that earlier bookings stay grandfathered under More at Sea, the package it replaced. Six weeks later NCL announced Free at Sea Plus at $49.99 per person per day for sailings from February 1, 2026, and named one way to add it: a phone number.
Celebrity made a similar change in 2023. Its All Included FAQ says packages bought on or after October 4, 2023 no longer include tips beyond beverage gratuities.
So one ship can carry several versions of one package. An app that renders package copy from the marketing page shows some guests the wrong inclusions. An app that reads each booking's entitlement record shows every guest what they bought, and that decides whether the package screen sells or sends people to guest services.
How we put this guide together
We read what ranks for this query today: Cruise Industry News coverage of onboard revenue and ShipUniverse's April 2026 piece on cruise tech that grows it. Both track the money. Neither covers what breaks in the software, and neither has an FAQ.
Financial figures come from Royal Caribbean Group's filing and earnings call, package and Wi-Fi terms from cruise line pages read in November 2026, payment rules from Apple and Google. Cruise lines named here are quoted from their own public pages and filings, as market examples. Patterns from Mercury's cruise programs come from clients this guide does not name, and appear without counts. Mercury Development builds this software, so read this as an interested view.
Four revenue surfaces at a glance
| Surface | When the guest buys | What breaks | First fix |
|---|---|---|---|
| Onboard ordering | On the ship, in sea-day peaks | A ceiling on open orders, duplicate orders on weak Wi-Fi | Queue on the ship, idempotency keys, arrival-rate load tests |
| Packages | Pre-cruise and onboard | The app cannot see what the guest holds, or cannot sell it | One entitlement record per booking |
| Dining credits | Pre-cruise, before a cutoff | The guest boards with unused credits and full restaurants | A pre-boarding prompt with the deadline and open tables |
| Internet plans | Pre-cruise and onboard | The guest mistakes ship Wi-Fi for internet access | Plain network status and an upgrade at the moment of need |
Onboard ordering under load: the 400-order ceiling
On one of our programs under NDA, the client's onboard ordering service could not hold more than about 400 concurrent orders without tipping over. The client called it the most urgent problem on the program. We treated it as a product risk: every order above the ceiling is a sale the app fails to take.
The ceiling is a throughput limit in disguise. Little's Law says the average number of items in a system equals the average arrival rate times the average time each one spends there. If a drink order stays open 20 minutes from tap to delivery, 400 open orders cap the ship at 1,200 orders an hour. At 15 minutes the same ceiling carries 1,600, so bar staff and delivery crews belong in the capacity plan.
What we build around a ceiling:
- Take the order fast and fulfil it at the kitchen's pace. Microsoft's queue-based load leveling pattern puts a queue between a task and the service it calls, so intermittent heavy loads do not make the service fail. Keep that queue on the ship.
- Show a real status. Microsoft notes the pattern may not suit callers that need a low-latency synchronous response, so the app confirms receipt and shows the place in line instead of a spinner.
- Make retries safe. On ship Wi-Fi, guests tap twice. An idempotency key, as in Stripe's API, lets a request repeat after a connection error without a second order or charge.
- Load-test with arrival rates. Grafana k6 open-model executors start iterations whatever the response time, while a closed model slows its own load and hides the ceiling. Then repeat the test on a real ship, as our cruise app testing guide describes.
Packages: sell only what the guest does not own
A package screen needs one fact before it renders: what this guest already holds. Fare inclusions, package inclusions and earlier purchases belong in one entitlement record per booking.
Patterns from our programs under NDA:
- The app could display a guest's package but not sell one, so purchases went to another channel.
- The backend could not tell the app whether a guest held a package, so offers could not be personalized.
- Package copy credited the package with inclusions that came with the fare.
The package also picks its payment rail. Apple's App Review Guideline 3.1.3(e) requires methods other than in-app purchase, such as Apple Pay or card entry, for physical goods or services consumed outside the app. Google Play's payments policy keeps physical services such as food delivery out of its billing system. Drink packages and dining therefore go to a card, Apple Pay or the cabin folio, and PCI DSS scope belongs in the build plan. On the Grant's Interest Rate Observer app, Mercury integrated a payment gateway for client-side PCI compliance.
Dining credits need a prompt before boarding
A dining credit is revenue with a deadline, and guests miss deadlines. On one of our programs under NDA, the client asked for clearer dining-credit calls to action before boarding, specifically to cut complaints onboard.
Public terms show why the timing matters. NCL's Free at Sea dining FAQ says the specialty dining perk must be added at least three days before the cruise and cannot be purchased onboard. Its specialty dining FAQ books tables through MyNCL, the mobile app or the phone, subject to availability. A guest who boards with credits and no tables holds a dinner they cannot use.
What works:
- Put the credits, the deadline and open tables on the pre-cruise checklist.
- Link the prompt straight into booking with the party size filled in.
- Remind at fixed points: after booking, at final payment and a few days before the cutoff.
- After embarkation, show remaining credits next to tonight's open tables.
Internet plans sell on the ship's own network
The failure we see on our own programs: guests cannot tell free ship Wi-Fi from paid internet. Our guide to push notifications on cruise ships covers the delivery side. The sales side starts with how lines sell plans today.
Royal Caribbean's app FAQ says guests need no internet package to use the app onboard: they join the ship's Guest Wi-Fi, then can buy and activate a package in the app. Its Voom page recommends buying in the Cruise Planner before boarding, often at a better price. NCL's base Free at Sea Wi-Fi runs on Starlink, per its December release, and Free at Sea Plus adds unlimited streaming. Celebrity sells Premium Wi-Fi upgrades before the cruise at $9.99 per person per day.
So the app should name the network state in plain words, such as "On ship Wi-Fi, internet off, 40 minutes left", and offer the upgrade when the guest hits the wall, like a video call that will not connect.
Copy about included services is a compliance surface
The FTC's Policy Statement on Deception asks three questions: is a representation or omission likely to mislead, would a consumer acting reasonably read it that way, and is it material. A package that lists Wi-Fi for a guest whose fare already includes Wi-Fi risks all three.
Rules we apply:
- Generate every "what's included" list from the entitlement record, never from free text.
- Label each item: included in your fare, included in your package, available to buy.
- Version copy by booking date, so grandfathered guests see their own terms.
- Put legal review on the release checklist next to accessibility and payment security.
What our cruise programs show
Our spa platform for OneSpaWorld, which describes itself as the operator of health and wellness centers onboard cruise ships, has run in production since 2018 on over 160 ships operated by multiple cruise lines. Its POS and checkout price dynamically, applying personalized discounts and offers from both OneSpaWorld and the cruise lines. We also built a spa pre-booking site for Windstar Cruises guests, replacing bookings through OneSpaWorld's call center, and a calendar widget other cruise lines embed on their own websites.
For cruise line clients Mercury cannot name under NDA, we build React Native food and beverage apps, tableside ordering with order status and ready notifications wired to kitchens and bars, and backend components that aggregate dozens of legacy microservices. The ordering ceiling, package screens and dining-credit prompts in this guide come from that work, where we flagged ordering capacity and payment flows as product risks.
From Mercury's contract records: across our closed contracts for cruise software, the median is $250,000 and the range runs from $10,000 to $1,000,000.
Revenue features fail in the backend
Most app redesigns start with the storefront. The money leaks further back: in the order queue, in the entitlement record, in the source of the copy. Fix those and a plain storefront sells. Skip them and a polished one shows guests offers they cannot buy.
Change the vendor interview. Skip "show us your cruise app". Ask: "It is noon on a sea day and 600 guests tap Order at once. Show me what the 401st guest sees, and what happens when that guest taps again." A team that has done this answers with a queue and an idempotency key. A team that has not answers with autoscaling.
Own what you pay for: Mercury's About page states that the customer owns the code and all underlying IP.
Written by Rob Devereaux, Chief Operating Officer at Mercury Development. Rob has run the firm's operations from Hudson, Ohio since 2019 and has over 20 years of operational and financial experience. The contract and delivery records behind this article's figures on Mercury's cruise programs sit in the operations he oversees.
Selling through your cruise app? Find the leaks first
Tell us what your app sells today, which systems hold orders and entitlements, and where a purchase goes when the app cannot complete it. We will map where revenue leaks between the storefront and the backend, and which fix to make before your next peak season.