Skip to content
HotelSEO Lab
← The Lab
Hotel Measurement Specifics

Tracking My True Direct-Booking Cost Per Acquisition Across Every Marketing Line Item

A blended CPA report that rolls ads, tech, and labor into the real cost of a direct booking, so you can compare it honestly against OTA commission instead of guessing.

HotelSEO LabMarch 25, 2026 10 min read

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 itemBucketMonthly cost (example)
Google Ads (brand + non-brand)Ads1,800
Google Hotel Ads / metasearchAds900
Meta retargetingAds300
Booking engine feesTech350
Rank tracking + AEO toolingTech120
Email + CRMTech90
Website hosting + CMSTech60
SEO / content retainer or freelancerLabor1,500
In-house labor (front desk + owner hours)Labor1,100
Total direct-channel spend6,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.

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.

FAQ

Quick answers

What should I include in my direct-booking cost per acquisition?

Everything you actually spend to win a direct booking: paid media, your booking engine and metasearch fees, agency or freelancer retainers, the software stack (rank tracking, CRM, email), and an honest slice of staff labor. If a dollar helped produce a direct reservation, it belongs in the number.

How is blended CPA different from cost per click or cost per booking on ads?

Cost per click and ad-platform cost per booking only see paid media. Blended CPA divides your total direct-channel spend, including tech and labor, by every direct booking from every source, so it reflects the real cost of the channel rather than one slice of it.

Is a direct booking always cheaper than an OTA booking?

Not automatically. OTA commission runs roughly 15 to 25 percent, and if your blended direct CPA lands above that on a given month, the OTA was cheaper that month. The point of tracking is to know which is true for you instead of assuming, then to push your direct CPA down over time.

How often should I rebuild this report?

Monthly is plenty for most independent hotels. Spend, occupancy, and rate move enough month to month that a quarterly view hides the swings, and a daily view just adds noise you cannot act on.

Keep reading

More from the Lab

Free intro call

Let's go find out why the OTAs are outranking you for your own name.

20 free minutes. We'll look at your hotel live, show you where you're invisible — on Google and in the AI answers — and tell you straight whether we can help.

No lock-in · No 12-month handcuffs · You talk to the strategist