Skip to main content

Set up the direct-booking price comparison

Show guests how much more your property costs on Airbnb and Vrbo, so they book direct with you.

Written by Gil Chan

This feature is only available in our latest template version. If you're still using the old version, contact support to get migrated.

When a guest is choosing dates on your CraftedStays site, the booking widget can now show them a side-by-side comparison: your direct price vs. what the same stay costs on Airbnb and Vrbo. The headline is the one guests care about — "Save $124 booking direct."

This article walks you through turning it on, setting your markup percentages, and what guests will see.

What it looks like

Once a guest picks dates, a small card appears under the booking widget:

  • Direct — your nightly + taxes + fees, marked "Best price"

  • Airbnb — the same stay with your Airbnb markup applied

  • Vrbo — the same stay with your Vrbo markup applied

  • A headline at the top: Save $124 booking direct

The card is hidden until a real quote loads, so guests never see a placeholder.

Turn it on

  1. Open Admin → Site → Manage Brand.

  2. Toggle on Direct-booking price comparison.

  3. Two new fields appear:

    • Airbnb price markup (%) — for example, 18

    • Vrbo price markup (%) — for example, 12

  4. Save.

The card will appear on every property page on that site as soon as a guest selects dates.

How to pick the right %

The markup % should reflect how much more your stay actually costs on each channel after the OTA's guest service fee.

Easy way to figure it out:

  1. Open your Airbnb listing in a private browser tab.

  2. Search the same dates the property is available on your direct site.

  3. Note the total Airbnb shows (with fees, before taxes).

  4. Compare it to the direct total for the same dates.

  5. The difference, expressed as a %, is your Airbnb markup.

If you don't have time to do this, here are common ranges:

  • Airbnb: 14–22% above direct

  • Vrbo: 10–16% above direct

Start with 15% if you're unsure, then adjust.

Hide a channel

Set a channel's markup to 0 to hide it from the comparison. Use this if you're not listed on that OTA, or if the gap is too small to be worth showing.

How the math works

The OTA number is computed from your direct total:

OTA price = direct price × (1 + markup ÷ 100)

So if your direct total is $1,000 and your Airbnb markup is 18%, the card shows:

  • Direct: $1,000

  • Airbnb: $1,180

  • Savings headline: "Save $180 booking direct" (−15%)

Direct is always the cheapest line by design. We don't scrape live OTA prices, so there are no edge cases where the OTA accidentally comes in lower than you. The trade-off: the comparison is only as accurate as the markup % you set.

Frequently asked

Can I set different markups per property?
Not yet. The markup is set per site today. Per-property overrides are on the roadmap. In the meantime, if you have a property with very different OTA pricing, set the per-site value that reflects the bulk of your portfolio.

What if a guest checks Airbnb and the number doesn't match exactly?
The number shown is an estimate based on the % you set. Different dates have slightly different fees, so an exact match isn't guaranteed. The point is to show the directional gap, which is consistent across dates.

Does it work on all templates?
This is applicable only to latest v4 templates. Contact Support to check your template version.

Do I need a connected PMS?
Yes. The card needs a real date-based quote to render. If your property doesn't return a quote, the card stays hidden.

Trademark notice

Airbnb® and Vrbo® are trademarks of their respective owners. The card includes this disclosure automatically.

Did this answer your question?