Direct, Airbnb, Expedia, Booking.com: same payout


Modern Hospitality Playbook: Why matching your listed rate across channels isn't the same as matching what the guest actually pays (and how to fix it).

I often hear operators tell me their channel pricing is already handled.

Same rate on Airbnb, Booking.com, and their own site.

Feels responsible.

Feels solved.

Because when you pull up your own reporting and you'll probably see one blended average rate across every channel you're on.

Let's say it reads $336.

That number feels real.

It's what the dashboard shows you.

So it's what you use to judge how the property is doing.

But it's also hiding the actual story (similar to the invisible leak we've been hunting all series).

Because that's not the number that actually lands in your bank account.

THE WRONG WAY

Most operators handle channel pricing one of two ways.

  1. Don't split it out at all. Track one blended average rate across every channel and call it a day.
  2. Match the nightly rate and stop there. List the same room rate everywhere and assume that settles it.

That second one feels like the disciplined move.

Matching the room rate isn't the same as matching what the guest actually pays.

Especially once fees enter the picture.

Cleaning fees, resort fees, and taxes get bundled differently on every platform, so two guests looking at the same listed rate can still check out at different totals depending on where they clicked.

That gap breaks the parity guests can actually see, since they're comparing final checkout totals, not your listed nightly rate.

And it's exactly what gets a listing flagged for not offering an OTA's guests your best available price.

(Plus it erodes the customer experience once they see the price variance on different channels after being promised the same room rate.)

THE PLAY

Real parity means the same final total, after every fee, no matter which channel the guest is on.

At Onera Wimberley, we charge a $35 resort fee per night for every booking, no matter the channel, including direct.

This keeps our payout parity at around $1 for each booking.

How'd we get this number? I'm glad you asked...

Step 1: Pull the guest-facing total for the same dates on every channel. Screenshot the checkout summary on your direct site, Airbnb, Expedia, and Booking.com for one date range, and compare full totals, not listed nightly rates.

Step 2: Pick the fee that actually fits your property.

  • A resort fee reads as legitimate when guests can see resort-style amenities in your photos.
  • A cleaning fee reads as legitimate on a more STR-style listing.

(Note: Charge the wrong one for your property type and guests notice.)

Step 3: Apply that fee the same way, per night, on every channel, direct included. Calibrate it so the total a guest pays lands in the same place everywhere.

Same total, different margin. OTAs take their commission out of that shared guest total. Direct doesn't.

So the identical guest-paid price still nets you more when it comes through your own site, and you never had to touch the OTA listing to get there.

Parity does that for you.

It also keeps you out of penalty territory, since nobody's total is technically lower or higher than anyone else's.

One more thing worth checking while you're building this.

OTA promotions can stack without you noticing.

A 10% discount here and a 15% discount there can combine into far more than 25% off.

So check every active promotion on each platform before you trust your numbers.

THE PROOF

Here's the tracker running at Onera Wimberley for one set of dates.

  • Direct: $661
  • Airbnb: $738
  • Expedia: $770
  • Booking.com: $740

Same room, same nights.

But different number on every channel.

The $35-per-night resort fee we charge (direct included) is calibrated to hold that parity.

Like I mentioned earlier, once every fee and commission clears, the payout difference between direct and Airbnb comes down to about $1.

Same guest, same nights.

Same money in the account, no matter where they clicked book.

THE TAKEAWAY

Payout parity protects your business, the customer experience, and your bank statement.
This week, screenshot your checkout total on direct and your top two OTAs for the same dates.
Then do the math on what actually lands in your account.
This is your window to find the gap before next season's bookings lock it in.

-- Ben

Founder, Oasi & Modern Hospitality Accelerator

Ben Wolff | The Unique Stays Guy

I build & manage unique hotels with the highest returns in hospitality. Learn how to grow your vision and go from commodity STRs to boutique hotels.

Read more from Ben Wolff | The Unique Stays Guy

Modern Hospitality Playbook: How to test your real ceiling in high season, one booking at a time, without ever guessing where the top actually is. A few newsletters ago, I gave you one line on your strongest dates. Push the rate until a night doesn't sell. A few of you wrote back with the obvious follow-up. Push it how far? And what happens when it actually misses? Fair questions. Missing a booking on purpose feels backwards. Every instinct says fill the calendar, not test it. That instinct...

Modern Hospitality Playbook: Last week you found the leak. This week we plug the bigger half of it. Last newsletter, I walked you through a pricing autopsy. Pull your last 12 months. Flag the nights you sold too cheap. Flag the nights you never sold at all. Add up the two. If you ran it, you probably landed where our cohort did. The empty nights were the bigger leak. That issue was about finding the money. This one is about going and getting it. Here's why the empty-night leak hides so well....

Modern Hospitality Playbook: How to price a brand-new property with zero booking history, and read the market's ceiling before you take a single reservation. The last two pricing plays had a catch. Both of them required that you had a booking history. The autopsy needed your last 12 months. The Pink Line needed your real spread between booked and empty nights. So a few of you wrote back with the obvious question. What do I do when the property is brand new and there's no history to pull?...