TL;DR — The 15% Booking.com line on your statement is roughly half of what a typical OTA stay actually costs you. Add payment processing, cancellation drag, parity-driven rate compression, and the loyalty data you never collect, and the all-in OTA cost on a $280 ADR boutique room-night lands closer to $58–$72 — call it 21–26% of gross. Direct booking acquisition for the same property typically runs $18–$34 per booked night. The arbitrage is real, but only if you measure it honestly.
If you run a 12- to 80-key boutique, you have probably had this conversation with your revenue manager: Booking.com is 15%, that's just the cost of doing business. The first half of that sentence is wrong. The second half is a choice.
This post walks the full per-stay cost stack on an OTA booking, compares it line-for-line against a direct booking, and gives you a framework you can plug your own numbers into in about 20 minutes.
The Five Costs Hiding Inside a Single OTA Stay
A booking.com or Expedia commission line is the most visible cost of an OTA booking. It is rarely the largest in aggregate. The full stack:
| Cost | Typical Range | Who Pays |
|---|---|---|
| Headline commission | 15% (Booking.com baseline) → 18–22% (Preferred Partner / Genius) → 25–30% (Expedia merchant model) | You |
| Payment processing on the OTA-collected gross | 1.8–3.0% of gross | You (on Expedia merchant; baked into commission on most BdC models, but still real) |
| Cancellation drag | 18–40% of OTA bookings cancel; partial refund and re-marketing windows have a real labor and yield cost | You |
| Parity-driven rate compression | OTAs effectively cap your direct ADR via parity language; cost shows up as foregone direct ADR | You |
| Loyalty / data opportunity cost | OTA guests come back through OTAs; you do not get a clean email, you cannot retarget | You |
Each one is small on its own. Stacked on a single $280 room-night, they add up.
A Worked Example: $280 ADR, 36-Key Boutique
Assumptions, deliberately middle-of-the-road for a US coastal boutique:
| Input | Value |
|---|---|
| ADR (rate) | $280 |
| Length of stay | 1 night (so the math is per-stay = per-night) |
| OTA channel | Booking.com Preferred Partner |
| Headline commission | 18% |
| Payment processing on the gross stay value | 2.4% (you pay this on Expedia merchant; you indirectly fund it elsewhere) |
| Cancellation rate on this OTA channel | 28% |
| Parity-driven rate ceiling vs. unconstrained direct rate | −4% (you can't run a public rate below BdC) |
Line-by-line per stay
| Line | Calculation | Cost |
|---|---|---|
| Gross room revenue | $280 | — |
| Headline commission | 18% × $280 | −$50.40 |
| Payment processing | 2.4% × $280 | −$6.72 |
| Cancellation drag | 28% × stay → labor + lost yield, conservatively $4 per booked night amortized | −$4.00 |
| Parity rate compression | 4% × $280 — ADR you couldn't charge because BdC sets the floor | −$11.20 |
| Realized net per OTA stay | $207.68 | |
| All-in OTA cost | $280 − $207.68 | $72.32 (25.8%) |
That 18% headline became 25.8% all-in. On a 36-key boutique running 70% occupancy, an OTA share of 50%, and a $280 ADR, the difference between 18% and 25.8% is ~$144,000 a year.
The cancellation drag line deserves a note. We are not double-counting refunded revenue (that's a wash). We're counting the yield management cost of a room that came off the shelf, sat unsold during an OTA cancellation window, and may or may not be re-sold. ChainBridge's 2025 hospitality data put the median OTA cancellation rate at 28%, vs. 9% for direct.
Now Run the Same Stay Direct
What does it cost to acquire that same $280 stay through your own site?
| Channel | Typical CPA per Booked Night | Notes |
|---|---|---|
| Branded paid search (your hotel name) | $4–$9 | You're defending against OTA bidding on your own brand |
| Non-branded paid search (\"boutique hotel [city]\") | $35–$80 | Real cost; only profitable for high-ADR or long-stay properties |
| Organic search & SEO content | $6–$14 amortized | Mostly fixed-cost content + technical SEO |
| Email to past guests | $1–$3 | Highest-ROI channel most boutiques underuse |
| Metasearch (Google Hotel Ads, Trivago) on a CPA model | 8–12% of stay value ($22–$34) | Often the best replacement for OTA commission |
| Paid social retargeting | $9–$22 | Works if you have first-party data — which OTAs deny you |
A blended direct CPA for a boutique that has its content and email program in shape lands around $18–$34 per booked night — about 6–12% of a $280 ADR.
The headline arbitrage:
| Channel | All-in cost on a $280 stay | Net to property |
|---|---|---|
| Booking.com Preferred Partner | $72.32 (25.8%) | $207.68 |
| Direct (blended) | $26 (9.3%) | $254.00 |
| Per-stay delta | +$46.32 |
At 50% OTA share, 36 keys, 70% occupancy — shifting 10 percentage points of mix from OTA to direct is worth ~$42,000/year in pure margin recovery on this property profile.
Where Boutique Operators Get the Math Wrong
Three recurring mistakes:
1. Comparing commission to *gross* CPA. Direct CPA includes failed sessions, branded defense, and SEO labor. OTA commission is reported only on completed bookings. Compare apples to apples by computing direct CPA on a per booked night basis, not per session.
2. Ignoring parity rate compression. If your direct rate is locked to your BdC rate, BdC is effectively setting your ceiling. A 4% direct premium is normal in the EU under narrow-parity carve-outs and increasingly defensible in US states (NY, IL).
3. Underweighting the loyalty stream. A direct guest you can email is worth roughly 2–3 stays over five years if your post-stay program is even mediocre. OTA guests are someone else's email list.
The 20-Minute Self-Audit
Pull the last 12 months of room revenue and run this:
- Total OTA commission paid (line item on your statements). Call this $C.
- Total OTA gross room revenue. Call this $G.
- Multiply $G × 0.024 = payment processing exposure. Call this $P.
- OTA cancellations × $4 (conservative drag) = $D.
- Estimate parity compression: $G × 0.03–0.05 = $R.
- All-in OTA cost = $C + $P + $D + $R. Divide by $G for your true effective OTA take rate.
Most boutiques we run this with land between 22% and 28% all-in, regardless of the headline rate they were told.
What to Do With This Number
Once you have your true OTA take rate, the decision framework is simple:
- Direct CPA < 0.5 × all-in OTA cost → aggressively shift mix to direct (member rates, mobile-only, retargeting, virtual tours that qualify high-intent traffic).
- Direct CPA roughly equal to OTA cost → hold mix, but invest in conversion lift on the direct site (boutique average direct conversion is 1.8–2.4%; top quartile is 3.5%+).
- Direct CPA > OTA cost → diagnose the funnel before reallocating. Usually it's a content/imagery problem, not a media problem.
Direct booking is not free. But for the median boutique we work with, it is roughly a third of what they're paying OTAs to do the same job — and it builds an asset (your guest list, your brand searches, your remarketable audience) that the OTA channel actively prevents you from owning.
About 360VUES — Matterport 3D capture and virtual tour production for boutique hotels and resorts looking to recover OTA commission through direct-booking conversion.
