CraftedStays
Sign in Get started

Why direct booking sites should show guests the price gap with Airbnb and Vrbo

The hardest moment in a direct booking isn’t the search. It isn’t the date picker. It’s the second-tab moment — the few seconds when a guest, mostly convinced, opens Airbnb in another tab to make sure they aren’t missing a better deal.

Most of the time, the better deal is on the direct site. OTAs add 15–22% in guest service fees on top of the property’s nightly rate. That money is already being paid by the guest. It just doesn’t reach the property manager. And the guest, sitting on the direct site, has no way to see the gap.

So they switch tabs, see a confusing number with fine-print fees, and bounce. Sometimes they come back. Often they don’t.

That second-tab moment is the most expensive moment in vacation rental marketing, and the entire short-term-rental industry has been quiet about how to fix it.

What OTAs already do

The big OTAs do this exact comparison on themselves. Booking.com shows “Vrbo has this at $X.” Airbnb sometimes shows you you’re getting a “good price” relative to similar listings. Hotels.com shows competing rates across providers. Comparison is one of the oldest patterns on the internet.

Direct booking sites have, until now, just left that comparison to the guest’s second tab.

Why nobody built this on direct sites

Two reasons.

The first is technical: live-scraping OTA prices is fragile, gets you blocked, and exposes you to terms-of-service risk. You can build it once and watch it break a week later.

The second is psychological: most property managers don’t want to draw attention to the OTAs at all. “Don’t mention the competition” is one of the older instincts in marketing.

But the second tab is already open. Guests already know about Airbnb. The choice isn’t whether the comparison happens, it’s whether the comparison happens on the property manager’s own page, with their framing, or in a different tab they may never come back from.

A static markup often beats live scraping

The simpler approach: let the property manager set the markup percentage directly. The math is transparent — direct total times one plus markup. The card on the direct site shows three rows: direct (marked “Best price”), Airbnb, Vrbo, with a headline like “Save $124 booking direct.”

The trade-off: the OTA number is an estimate, not a live scrape. The benefit: it’s reliable, it’s compliant, and direct is always the cheapest line by design. There’s no edge case where the OTAs accidentally come in lower for one night and break the whole story.

The property manager picks the percentage once, based on what their listing actually costs on Airbnb after the guest service fee. Most operators land between 14% and 22% on Airbnb and 10% and 16% on Vrbo. The numbers stabilize because OTA fee structures are themselves stable.

What a good comparison card looks like

Three principles for designing this surface, drawn from the patterns OTAs have already validated:

  1. Show direct as “Best price,” not just “Direct.” The label does work the headline can’t do alone.
  2. Headline the savings, not the percentage. “Save $124” is more concrete than “−15%.” A guest’s brain converts the second to the first anyway, more slowly.
  3. Hide until a real quote loads. Showing a placeholder breaks the illusion that the card is doing something live. Even a 700ms animated reveal feels more honest than an instant render.

Disclose the trademarks. Note that the comparison includes taxes and fees. Keep the chrome of the card consistent with the booking widget’s borders, radius, and shadow so it doesn’t read as an ad.

The DIRECT framework, revisited

For property managers running CraftedStays sites, this surface lives at the intersection of two of the six DIRECT pillars:

  • E — Ease. The guest doesn’t have to leave the page to feel confident they’re getting the right price. The comparison happens once and ends there.
  • C — Credibility. A property manager willing to show their pricing alongside the OTAs reads as confident, not defensive. “Best price” is more believable when there’s another price right next to it.

Build, or wait?

This is one of those features that doesn’t show up in a screenshot tour but moves the needle the moment a guest converts. If your direct site doesn’t have it, every booking you’re losing to the second tab is preventable.

For CraftedStays customers, the direct-booking price comparison shipped in June 2026. Property managers turn it on in Admin → Site → Brand & Settings, set their Airbnb and Vrbo markups, and the card appears on every property page on every template. (Full setup walkthrough lives in the help center.)

For everyone else: this is one of those features that’s simpler than it looks. A 100-line template partial, a couple of admin fields, a tiny bit of JavaScript to reveal the card after a real quote loads. The hard part isn’t the code. It’s getting comfortable with showing the OTAs at all.

The guest is already comparing. The only question is whose framing wins.


FAQ

Will guests trust a comparison that the property manager set themselves? Trust comes from accuracy. If the markup percentages reflect what the listing actually costs on Airbnb and Vrbo, a curious guest who checks will find the comparison directionally honest. The framing matters too — “Save $X booking direct” is a savings statement, not a competitive claim about the OTA.

How do I know what markup percentage to set? Open Airbnb in a private tab, look up the same property over the same dates, compare the all-in total to your direct total. The difference, as a percentage, is your markup. Most operators end up somewhere between 14% and 22% on Airbnb and 10% and 16% on Vrbo.

What if the OTA price is actually cheaper than mine for a given night? With a static markup, this can’t happen — direct is always the cheapest line by construction. That’s the whole point of not live-scraping. If your direct rates are above your OTA rates on some nights, the right fix is rate parity in your PMS, not the comparison card.

Does this hurt my OTA listings? The guests this card converts are guests who were already on your direct site looking to compare. You’re not losing OTA bookings, you’re winning direct bookings that were on the fence. Your OTA listings continue to serve guests who never make it to your direct site at all.

Is this legal? Trademark concerns? Naming a competitor by name in a comparison is well-established under nominative fair use. The card includes a standard trademark disclosure automatically.


Want to see this in action? CraftedStays customers can enable the direct-booking price comparison in their site settings. [See the setup guide](#).

Scroll to Top