I have a number I am a little obsessed with, and most independent hoteliers I meet have never calculated it once. It is the true cost of a single direct booking. Not the cost per click on your Google ad. Not the commission line on your OTA statement. The all-in, fully-loaded, nothing-hidden cost of getting one human to book a room on your own website.
Here is why it matters. Everybody in this industry loves to say “direct is free money” and “OTAs are the enemy.” Both are lazy. A direct booking is absolutely not free. It costs you ad spend, software, a booking engine fee, and a chunk of somebody’s salary. The honest question is not “direct or OTA.” It is “what does direct actually cost me, and is that number lower than the commission I would have paid an OTA for the same room?”
You cannot answer that with a vibe. You answer it with a blended CPA report. So let me walk you through the exact one I build, line item by line item, the way I would build it for a 40-room boutique property tomorrow morning.
Why ad-platform CPA lies to you
The first trap is trusting the number Google Ads or Meta hands you. Your ad dashboard will proudly report a cost per booking, and it will look fantastic, because it only counts the money that flowed through that one platform. It has no idea your booking engine takes a per-reservation fee. It has never seen your agency invoice. It does not know you pay a person to write the content and answer the “is there parking” emails that close the sale.
That platform number is real, but it is a slice. If you make decisions off a slice and pretend it is the whole pie, you will conclude direct is wildly cheaper than it is, over-invest based on a fantasy, and then get blindsided when the bank balance does not match the dashboard.
The cost per acquisition your ad platform shows you is the cost of the click, not the cost of the booking. Those are different animals, and the gap between them is every other invoice you pay all month.
Blended CPA fixes this by refusing to look at any single channel. It takes every dollar that exists to produce direct bookings, adds it up, and divides by every direct booking you got. Crude on purpose. Honest on purpose.
The three buckets: ads, tech, labor
I sort every direct-booking dollar into three buckets. If you can name the bucket, you can put a number on it.
Ads is the easy one because it already arrives as a bill. Google Ads, Meta, your metasearch spend on Google Hotel Ads or Tripadvisor, any retargeting. This is the money you would obviously call “marketing.”
Tech is the bucket people forget, and it quietly adds up. Your booking engine fee (often a small per-reservation charge or a percentage). Your rank tracker. Your email platform. Your CRM. The CMS or hosting bill for the website. The schema and AEO tooling. None of these feel like “acquisition” spend, but every one of them exists so a direct booking can happen.
Labor is the bucket everyone refuses to count, and it is usually the biggest. The person who writes blog posts and updates the Google Business Profile. The front-desk manager who spends two hours a day answering pre-booking questions over email and chat. Your time, if you are the one doing the SEO. Labor is real money even when it does not arrive as a separate invoice, and leaving it out is the single most common way I see owners fool themselves.
If a dollar, an hour, or a tool helped produce a direct reservation, it goes in the report. The moment you start excluding “small” line items because they are annoying to track, your CPA becomes a comfortable fiction instead of a decision tool.
My actual line-item template
Here is the skeleton I fill in every month. The numbers below are illustrative, just to show you the shape of it. Plug in your own.
| Line item | Bucket | Monthly cost (example) |
|---|---|---|
| Google Ads (brand + non-brand) | Ads | 1,800 |
| Google Hotel Ads / metasearch | Ads | 900 |
| Meta retargeting | Ads | 300 |
| Booking engine fees | Tech | 350 |
| Rank tracking + AEO tooling | Tech | 120 |
| Email + CRM | Tech | 90 |
| Website hosting + CMS | Tech | 60 |
| SEO / content retainer or freelancer | Labor | 1,500 |
| In-house labor (front desk + owner hours) | Labor | 1,100 |
| Total direct-channel spend | 6,220 |
Now the denominator. Say that month produced 95 direct bookings across all sources, website, phone, and walk-ins that you can credibly tie to your marketing. Total spend of 6,220 divided by 95 bookings gives a blended CPA of about 65 dollars per direct booking.
That is the number. Not the 22-dollar cost per booking Google Ads bragged about. Sixty-five dollars, all in.
Now compare it to OTA commission, honestly
This is where it gets useful. OTA commissions run roughly 15 to 25 percent of the booking value. So the comparison is not “65 dollars versus zero.” It is “65 dollars versus whatever 15 to 25 percent of that reservation would have been.”
Run the math on your average direct booking value. If your typical reservation is a two-night stay at 220 a night, that is a 440 booking. An OTA at 18 percent would have charged you about 79 dollars in commission on that exact reservation. Your blended direct CPA of 65 came in under that. Direct won, that month, on that booking profile.
But flip the inputs. If your average reservation is a single 140 night, the OTA commission at 18 percent is around 25 dollars. Suddenly your 65-dollar blended CPA is more than double what the OTA would have charged. On that booking profile, in that month, the OTA was the cheaper channel, and pretending otherwise is how you lose money while feeling virtuous about it.
A high blended CPA is not a reason to give up on direct. It is a reason to drive the number down. The goal is a healthier channel mix where direct carries more of the load over time, not a fantasy where you somehow stop using the OTAs entirely.
I want to be blunt about the guardrail here, because it is easy to get high on your own supply. You are not going to fully escape the OTAs, and you should not try. They are a discovery channel and a demand-capture machine that puts heads in beds you would never have reached. The realistic, profitable goal is to reduce your dependence on them, win back more of the bookings you should have owned anyway (people searching your own hotel name), and end up with a mix where you are not handing over commission on guests who already knew exactly where they wanted to stay. I wrote about that exact leak in why your hotel ranks below the OTAs for your own name, and the underlying mechanics in how OTAs quietly intercept your search traffic.
The variable cost trap inside your CPA
One subtlety that wrecks these reports: not every line item scales the same way. Your booking engine fee is variable, it goes up with every booking. Your SEO retainer is fixed, you pay it whether you got 40 direct bookings or 140. Your labor is mostly fixed too.
This matters because a heavy fixed-cost base means your CPA drops fast as volume climbs. If your fixed spend is 4,000 a month and you only convert 40 bookings, your CPA looks brutal. Convert 140 and that same 4,000 spreads across far more reservations, and your per-booking cost can fall below OTA commission on the same property that looked uneconomic a quarter earlier.
So when your blended CPA comes in high, ask which it is: are you genuinely overspending, or are you under-converting a mostly-fixed cost base? The fix for the first is to cut spend. The fix for the second is to drive more direct volume, which usually means conversion-rate work on the booking flow and getting your Google Business Profile to actually feed the booking engine rather than the OTAs.
Attribution: keep it crude, keep it honest
I get asked constantly about attribution models, and my honest answer for an independent hotel is to keep it dumb on purpose. You do not need a multi-touch data-science project. You need a number you trust enough to act on.
Here is my rule. Count a booking as direct if it landed on your own booking engine, by phone, or as a walk-in you can reasonably tie to marketing. Do not try to split credit between the blog post and the ad and the email that all touched the same guest. Just confirm the booking was direct and count it once. The blended approach already smooths this out, because you are dividing total spend by total bookings rather than trying to assign each dollar to each guest.
The one thing I will not let slide is double-counting a booking as both direct and OTA, or counting OTA reservations in your direct denominator. That inflates your booking count, deflates your CPA, and gives you a number that feels great and means nothing.
What I do with the report once it exists
A CPA report you build once and file away is a waste of an afternoon. Mine drives three decisions every month.
- Where the next marketing dollar goes. If brand-term ads are cheap and converting, I protect that budget. If non-brand ads are pushing CPA above OTA commission with no volume payoff, I cut and redeploy into organic and AEO visibility that compounds instead of renting.
- Whether the channel mix is moving the right way. I want direct’s share of bookings climbing quarter over quarter and the blended CPA holding steady or falling. If direct share rises but CPA balloons, I am buying growth at a bad price and need to fix conversion before I scale spend.
- Whether the AEO bet is paying off. More guests now start in ChatGPT and AI search, and those assisted discoveries do not show up cleanly in any ad dashboard. If branded direct demand is rising while ad spend stays flat, something in the AI-visibility and brand-mention work is doing its job. If you have never checked whether the assistants even know your hotel exists, start with is your hotel invisible to ChatGPT.
Build the boring version first
If you take one thing from this, let it be this: build the ugly version this month. A spreadsheet with three buckets, every line item you can find, and one division at the bottom. It does not need to be pretty and it does not need to be perfect. It needs to exist, because the hotelier who knows their real blended CPA makes calmer, better decisions than the one running on dashboard vibes and OTA resentment.
Once you have that first crude number, the OTA-versus-direct argument stops being a religious war and becomes simple arithmetic. Some months direct wins. Some months a particular booking profile favors the OTA. Knowing which is which, on your property, is the entire game. If you want the commission side of that math laid out cleanly, I broke it down in the real cost of OTA commission versus going direct.
If you want a second set of eyes on your own line items, or you would rather I build the first version of this report with you and pressure-test the assumptions, that is exactly the kind of measurement work we do at HotelSEO Lab. Come tell me about your property and we will figure out your true number together, book a call here or read how we approach the direct-booking and conversion side of the work.