The True Cost of a Direct Booking vs an OTA Booking
The comparison owners usually hear is 15 to 25 percent commission against $3 to $7 for a direct booking. That second number counts the booking engine and the card fee and stops there. Load in the metasearch bill, the paid search, the website, the email platform and the reservations team, and a direct booking bought through metasearch can cost about what the OTA charges. This piece builds the fully loaded cost per booking by channel, shows where the break-even sits by ADR, and describes the system that keeps the numbers current: a channel cost ledger that joins the PMS, the general ledger, the processor statements and the ad platforms, and uses AI to put every cost line in the right channel.
When I owned ten hotels, the commission line was the first thing I read on the monthly P&L. It took me longer to notice that the cost of a direct booking was spread across three other departments.
That's how the statements are built. In the USALI format most owners read, travel agent and OTA commissions sit in the rooms department. Card processing sits in A&G. The Google bill, the SEO retainer and the email platform sit in sales and marketing. The booking engine and the website hosting sit in IT. Nobody adds them up per booking, so nobody compares them to the commission on the same basis. The OTA cost is one clean percentage. The direct cost is a rumor.
And the rumor is usually $3 to $7.
I spent years at Starwood running sales strategy and operations across more than 800 hotels, and the channel arguments there were about the same thing in a bigger room: what does a booking actually cost to win, by source, once every dollar is in? The answer is more useful than the slogan. Direct is usually cheaper. Sometimes it isn't. The hotels that make money on direct are the ones that know which is which, every month, by channel.
The Problem: Comparing a Full Cost to a Partial One
Robert Rauch put the standard comparison plainly in Hotel-Online in September: commissions "tend to run 15 to 25 percent of the room rate," while a direct booking "usually costs somewhere between $3 and $7" after card fees and loyalty perks. On a 100-room hotel at 75 percent occupancy, he worked the spread out to roughly $68,000 a year for every ten points of mix moved from OTA to direct.
The direction is right. The size depends on how the direct booking was won.
A guest who has stayed twice and books from your email costs you the booking engine fee and the card fee. A guest who found you on Google Hotel Ads, clicked three times over two weeks and then booked costs you those fees plus every click. A guest who called and spent fifteen minutes with a reservations agent costs you the agent. Lump them together as "direct" and the average hides the expensive end.
The expensive end is growing. HotStats data published by Duetto in January shows booking costs per available room up 25 percent since 2019, against RevPAR up 19 percent. That's acquisition cost outrunning revenue, across all channels, and it shows up where it hurts. Americas hotels averaged flow-through of just 18 percent in 2025, against about 50 percent in prior years.
The OTA cost is one clean percentage. The direct cost is a rumor, and the rumor is usually $3 to $7.
The Data: What the Research Says Each Channel Costs
The best channel-level work on this is still the Kalibri Labs study for AHLA and STR, built on production and cost data from 25,000 hotels. It's from 2014 to 2016, so the levels are dated. The structure isn't.
| Source | Finding | Basis |
|---|---|---|
| AHLA, STR, Kalibri Labs | Acquisition cost 15-25% of guest-paid revenue, up from 5-10% in the 1990s | 25,000 U.S. hotels |
| AHLA, STR, Kalibri Labs | OTA costs about 2.5x Brand.com as a share of guest-paid revenue | 25,000 U.S. hotels |
| AHLA, STR, Kalibri Labs | Brand.com net ADR 27% above OTA after loyalty and discount costs | U.S. aggregate |
| Hotel-Online | OTA 15-25% of room rate; direct $3-7 per booking | Author's operating experience |
| ReservationStrategy | Direct 5-12% of revenue all in; OTA all in up to 25-42% | Unnamed industry benchmarks |
Two things stand out. The Kalibri numbers measure the full cost of acquisition, including the brand's own sales and marketing, and they still found direct far cheaper. And the 2026 benchmark that does try to load the direct side, at 5 to 12 percent of revenue, is two to four times the $3 to $7 figure on a typical booking.
So I built the model the way an owner's controller would, for one property. A 100-room independent at 72 percent occupancy and a $200 ADR sells about 26,280 room nights a year. At a two-night average stay that's 13,140 bookings. Assume 40 percent come direct, or 5,256 bookings, and $60,000 a year in website, hosting, SEO and email platform costs that exist only to produce them. That's $11.42 of fixed cost per direct booking before anyone clicks an ad.
| How the booking arrived | Variable cost | Fixed share | Fully loaded cost | Share of booking |
|---|---|---|---|---|
| OTA, agency model (hotel collects payment) | $72.00 commission + $11.90 card fee | None | $83.90 | 21.0% |
| OTA, merchant model (OTA collects payment) | $72.00 | None | $72.00 | 18.0% |
| Direct via metasearch, 11% CPA | $44.00 ads + $5.00 engine + $11.90 card fee | $11.42 | $72.32 | 18.1% |
| Direct via paid search, 7% CPA | $28.00 ads + $5.00 + $11.90 | $11.42 | $56.32 | 14.1% |
| Direct, repeat guest or organic | $5.00 engine + $11.90 card fee | $11.42 | $28.32 | 7.1% |
Look at the third row against the second. A direct booking bought through metasearch at an 11 percent cost per acquisition costs the same as an OTA merchant booking, within 32 cents. TravelVisibility, a vendor in that space, puts typical metasearch CPA at around 10 to 12 percent of booking value. Plenty of hotels bid well above that on their own name and call it a win because it shows up as "direct."
The last row is the one that makes direct worth fighting for. A repeat guest booking from your email or typing your URL costs a third of the OTA booking. That's where the money is. Most of the work in this piece is about knowing how many of your direct bookings are that row and how many are the third one.
Cancellations widen the gap in direct's favor. ReservationStrategy's 2025 benchmark across 120 urban and resort properties found OTA cancellations averaging 42 percent against 21 percent for brand websites and 9 to 12 percent for GDS corporate contracts. It's a single vendor's dataset, so treat the levels with care. The pattern matches what most revenue managers see on their own pickup reports.
| Channel | Average cancellation rate | What it costs the hotel |
|---|---|---|
| OTA | 42% | Inventory held off the market, then released late into a softer booking window |
| Brand website | 21% | Same exposure at half the rate; paid clicks on cancelled bookings are still spent |
| GDS corporate contracts | 9-12% | Lowest attrition of the three |
One detail in that table matters for the model. A cancelled OTA booking usually costs no commission. A cancelled metasearch booking keeps every click you paid for. So the true metasearch CPA, measured on stays and not on bookings, is higher than the platform report says.
The Framework: Break-Even by ADR
The useful question for an owner isn't "is direct cheaper." It's "how much can I spend to move one booking from the OTA to direct and still come out ahead?" That number changes with ADR, because commission scales with the rate and most direct costs don't.
| ADR | OTA cost per booking | Break-even marketing cost for a shifted booking | Annual gain, 10-point shift via metasearch at 11% | Annual gain, 10-point shift via owned channels |
|---|---|---|---|---|
| $150 | $63.00 | 12.5% of booking value | $6,018 | $49,380 |
| $200 | $83.90 | 13.9% | $15,216 | $73,032 |
| $300 | $125.70 | 15.3% | $33,612 | $120,336 |
| $450 | $188.40 | 16.2% | $61,206 | $191,292 |
Read across the $200 row. Moving ten points of mix to direct is worth about $73,000 a year if the shift comes through owned channels: email, the loyalty or member rate, repeat guests, the website itself. It's worth about $15,000 if the hotel buys the same shift on metasearch. Same headline mix. A fivefold difference in what reaches GOP.
At a $150 ADR the margin for error is thin. Spend more than 12.5 percent of the booking to win it and the direct booking costs more than the OTA booking it replaced. That ceiling belongs in the bidding tool, set by season, before the next campaign goes live.
Same headline mix, a fivefold difference in what reaches GOP. It depends entirely on how the direct booking was won.
The Mechanism: A Channel Cost Ledger
None of the numbers above are hard to calculate once. The problem is that they change every month, they live in six systems, and the person who could join them is busy closing the month. That's the gap AI fills. A channel cost ledger is a small data pipeline with a classification model in the middle, and it does five things.
1. Pulls every booking with its true source. Reservations come from the PMS with their source and segment codes, joined to the booking engine's records, which carry the referrer and UTM tags. That join is what separates "direct, came from Google Hotel Ads" from "direct, came from the March newsletter." Cancellations come along with the bookings, by channel, because a cancelled booking that cost a click still cost the click.
2. Pulls every cost that produced a booking. OTA commission invoices or statements. The card processor's monthly statement. The metasearch and paid search platforms' spend and conversion data through their reporting APIs. The booking engine invoice. The CRM and email platform. The website and SEO retainers. Reservations labor from the timekeeping system.
3. Classifies each cost line to a channel. This is where a language model earns its keep. GL and AP lines arrive with vendor names and memos like "GOOG*ADS 4471" or "Monthly retainer, Oct," and a model maps each one to a channel with a confidence score. Low-confidence lines go to the controller to confirm once, and the confirmed mapping becomes a rule. After two or three closes, almost nothing needs a human.
4. Computes the fully loaded cost and net contribution per booking. Variable costs are attached to the bookings that caused them. Fixed costs are spread on a stated rule, such as per direct booking. The output is a monthly table: bookings, stays after cancellation, net ADR after member discounts, cost per stay and contribution per stay, by channel and sub-channel.
5. Watches the thresholds. The ledger knows the OTA cost per booking at today's ADR, so it knows the break-even CPA for metasearch and paid search. When a campaign's cost per stay crosses that line, it flags it the same day, with the dollars at stake. When the share of direct bookings arriving through paid channels creeps up while owned-channel bookings fall, it flags that too, because it means the hotel is buying back guests it already had.
The table that comes out of this should be dull to look at. One row per channel. Cost per stay, contribution per stay, trend. The value is in having it every month without a three-day spreadsheet exercise. Our piece on undistributed expenses covers the same GL classification approach for the rest of the cost base.
| Input | System of record | Joined on | What it adds |
|---|---|---|---|
| Reservations and cancellations | PMS | Confirmation number | Channel, segment, net ADR, stay or cancel |
| Booking source detail | Booking engine | Confirmation number | Referrer, UTM campaign, member rate flag |
| Ad spend and conversions | Metasearch and paid search platforms | Campaign and booking ID | Cost per booking and per stay |
| Commissions and card fees | OTA statements, processor statements | Booking ID or month | Variable cost per booking |
| Fixed marketing and labor | GL, AP, timekeeping | AI channel classification | Fixed cost share per booking |
Implementation: Eight Weeks to the First Clean Month
This is a project for the revenue manager and the controller together, with a developer or integration partner for the connections. Most of the work is access and mapping.
Weeks 1 and 2: access. Read access to the PMS reservation export, the booking engine reports, the processor statements, the ad platforms' reporting APIs and the GL detail. Confirm that the booking engine passes UTM tags through to the reservation. Many don't by default, and without them "direct" stays one undivided lump.
Weeks 3 and 4: the mapping. Run the classification model over the last twelve months of GL and AP lines. The controller confirms the uncertain ones. Agree the fixed-cost allocation rule in writing, because the owner will ask how the website cost was spread, and the answer should be the same every month.
Weeks 5 and 6: the first full month. Produce the cost-per-stay table for the last closed month and check it against the P&L. Total cost in the ledger should tie to the sum of the GL lines it drew from. If it doesn't tie, find out why before anyone sees the output.
Weeks 7 and 8: thresholds and the shift plan. Set the break-even CPA ceilings in the metasearch and search bidding tools from the ledger, by ADR season. Then put the owned-channel work on the plan: the member rate, the post-stay email, the pre-arrival upsell that gives repeat guests a reason to book you directly next time. That's the row in the model worth $73,000.
Two cautions.
Don't cut the OTAs on the strength of the first month. The model counts cost, and OTAs also bring guests who would never have found you. Kalibri Labs' CEO told a Direct Booking Summit audience that the right OTA share might be 5 percent for one hotel and 25 percent for another. The ledger tells you what each channel costs. Your demand tells you how much of each you need.
And watch the brand-name bidding. When a guest who already knows your name searches for it, and you pay 11 percent to show them your own website above the OTA's ad, the ledger will show that booking as an expensive direct booking. It is one. Whether to keep paying for it is a real decision, and it should be made with the number in front of you. At Collective Retreats, which I founded and ran across ten locations until it was acquired in 2025, the distribution decisions that held up were the ones made with cost per stay in hand, location by location.
If you want help building the ledger or setting the bidding ceilings, our AI revenue optimization and forecasting work starts with exactly this model on your own data. The metasearch bidding piece covers the CPA math on the bidding side in more depth.
Direct is usually the cheaper booking. The ledger tells you which of yours actually are.
Frequently Asked Questions
How much does a direct hotel booking really cost?
It depends on how the guest arrived. In a HospitalityOS model of a $400 two-night stay, a repeat or organic direct booking costs about $28 fully loaded (booking engine, card processing and a share of website, SEO and email costs), about 7 percent of the booking. The same booking bought through metasearch at an 11 percent cost per acquisition costs about $72, roughly the same as an OTA merchant booking at 18 percent.
What do OTAs charge hotels in 2026?
Commissions commonly run 15 to 25 percent of the room rate, with preferred placement programs adding several points on top. On agency bookings where the hotel collects payment, the hotel also pays card processing, which adds roughly 3 percent.
Why do the usual direct booking cost figures understate the cost?
The common $3 to $7 figure covers the booking engine fee and card processing. It leaves out the marketing that produced the booking: metasearch, paid search, the website, SEO, email and reservations staff time. In the USALI statements most owners read, those costs sit in sales and marketing, A&G and IT, while OTA commissions sit in the rooms department, so the comparison is rarely made on the same basis.
How much can a hotel afford to spend to win a direct booking?
In the HospitalityOS model, a booking moved from an OTA at 18 percent to the direct channel breaks even at a marketing cost of about 12.5 percent of booking value at a $150 ADR, rising to about 16 percent at a $450 ADR. Spend above that line and the direct booking costs more than the OTA booking it replaced.
What is a channel cost ledger?
A channel cost ledger is a system that joins reservation data from the PMS and booking engine with costs from the general ledger, card processor statements, ad platforms and payroll, uses AI to classify each cost line to a channel, and reports the fully loaded cost and net contribution of a booking by channel every month.
Peter Mack is a hospitality technology strategist and founder of HospitalityOS, helping independent hotels and resorts implement AI systems that drive revenue and reduce operational costs. With 25 years in hospitality operations and technology, he has worked with properties of all types and in every region as both a General Manager, Founder, Operator, Asset Manager, and Owner.