fullstreak
Direct booking11 minute read

Price disparity: what it means and why platforms undercut your own site

Christian, Co-founder, Fullstreak; co-owner, MINT @Naschmarkt, Vienna

Published Updated
At a glance
Who this is for
Operators for whom platform commission is the largest line they do not control.
What you get
Price disparity means one stay carrying two different prices in two places. At a small property it usually runs the wrong way, with your own website asking more than your platform listing, and four settings cause most of it: a platform discount you fund, a child billed as an extra guest, a lodging tax counted twice, and two totals that were never comparable.
In this piece
7 sections, 11 minute read
Published
Updated
Filed under
Direct booking

Price disparity means one stay carrying two different prices in two places. In lodging that usually means your own website asking more than your listing on a booking platform, for the same room, the same dates and the same party, once every mandatory fee and tax is counted. A guest who sees the lower number books on the platform, and you pay commission on a reservation you had already won. Four settings cause most of that gap at a small property: a discount you switched on at the platform and never matched, a child your booking engine bills as an extra guest, a lodging tax added twice, and a final total on your site compared against a nightly rate on the listing. Every one of them is a setting you can check yourself.

Across the first half of 2025 the World Parity Monitor compared hotel listings with the hotels' own websites and found a platform cheaper in 75% of searches. Most properties are in this position.

Undercutting a platform and getting caught is the opposite problem, and it sits in your contract instead of your software. What a parity clause actually covers goes through that side. This one costs you quietly, because the guest who books the cheaper listing never mentions it.

What that gap cost us at our own property

I co-own MINT @Naschmarkt, 18 serviced apartments in five apartment types in Vienna. One identical stay came out at €1,000.34 on our own booking page against €756 through Booking.com, priced before we had fixed either the double counted tax or the extra guest charge. A €150 child fee was most of the difference. Our platform listings never billed children as extra guests, and our own booking engine did it on every family booking. A guest with two tabs open could see us asking more than the platform we pay commission to. Neither system flagged it. We took the fee off our own booking form and left the listings alone.

Cause one: a discount you are funding on the platform

Joining Booking.com's Genius program is optional and the property pays for the discount. Once you are in, 10% comes off your least expensive and most popular room type, at Genius Levels 1, 2 and 3 alike. A 15% discount at Levels 2 and 3 and a 20% one at Level 3 are extras you can switch on, and so are value adds such as breakfast or an upgrade.

The listing then sells at the discount while your own booking page still shows list price, and a guest comparing the two, usually in the strip of channel prices Google puts under a hotel, sees you charging 10% more to book direct. Matching it on your own site keeps you inside the parity clause, because the clause asks for the same or better on the platform and the same price is the same price.

Booking.com also ties eligibility for the program back to your prices. A property needs at least three guest reviews and a review score of 7.5 or better, and in most countries, the United States and Canada included, it needs competitive prices on Booking.com against other sites and against its own website. Leaving your own site above the listing keeps you eligible, which is part of why the gap survives.

Open the Genius section of the extranet, and whatever your other channels call their promotions list. Read the room type each discount is attached to. The 10% lands on one room type rather than across the property, and that room is usually the one a guest is pricing.

Cause two: the child your booking engine bills as an extra guest

Platforms charge for extra guests when you tell them to, which at most small properties is never, because nobody opened that screen. An extra guest fee, in Hostaway's glossary definition, is a per night surcharge that applies once the guest count on a reservation exceeds the base occupancy included in the standard nightly rate, and you set both the count and the amount.

A child rate is the separate setting that prices a child differently from an adult, and small properties skip it. Booking.com is blunt about what follows: if no child rate is configured, every guest is treated as an adult for pricing and room capacity. Whether children are allowed at all is also yours to set in the extranet.

Where the stay is priced Does a child escape the extra guest fee automatically? Who decides
Booking.com No. With no child rate configured, every guest is priced and counted as an adult You, in the extranet
Airbnb No, and there is no platform wide fee to be exempt from. You choose the guest count at which a fee starts and the amount You, per listing. Children still count toward maximum capacity
Vrbo Nothing published by Vrbo itself. Hostaway groups it with Airbnb and Booking.com as supporting a fee based on the booking guest count You, per listing
Your own booking engine No. In Hostfully, a fee set to apply per guest is multiplied by the number of guests for the whole stay, with no adult or child split You, and this is the one nobody rechecks

Vendor documentation checked on August 2026.

Start with the guest count your booking form sends to your property system when a reservation comes in. If the form sends one total, a family of two adults and two children arrives in the property system as four adults. The extra guest fee then lands on every night of the stay, and your listing charges the same family nothing for it. We fixed ours by splitting that field in two. The form now asks for adults and children separately, and only the adults count against the occupancy the rate already includes.

If you never set a child exemption on the platform side either, your listing bills that child exactly as your own site does, and a gap between the two means something else is wrong.

Cause three: a lodging tax counted twice

Your property system adds the tax, your booking engine adds it again, and neither one can see the other's line. Both screens read as correct, and the duplicate only appears in the guest total.

Hostfully's own fee and tax page describes the first half. A tax you apply to your direct booking channel can be folded into the rent so a guest never sees it as a separate amount. The rate that reaches your booking engine then has the tax inside it, and if the engine prints its own tax line the guest pays it again. Guesty names the same shape on the platform side: a listing's Airbnb tax status reads Stacked when Airbnb already collects some taxes and a tax you sync from Guesty is added on top, with you responsible for the extra.

System The setting What it does to a guest total
Hostfully Roll fee into rent Folds the tax into the nightly rent invisibly. A second tax line from your booking engine is then a double charge
Guesty Airbnb tax status: Stacked Adds your synced tax on top of what Airbnb already collects, and the extra is yours to remit
Guesty Invoice items to tax Covers the fare alone or the fare plus fees
OwnerRez Partner tax, passthrough tax Channel remitted tax sits on its own grid, and OwnerRez does not remit or file for you

Vendor documentation checked on August 2026. None of them flags the overlap, so catching a duplicate means reading two configurations side by side, which is why one can run for months.

Ours needed no code at all. A city lodging tax was already inside the base rate the property system handed over, the booking engine added a tax line on top of it, and one setting in the property system ended the double charge.

Cause four: two totals that were never the same total

Responsibility for the tax sits in a different place depending on the city and on the channel that sold the stay. Booking.com's US remittance page lists 14 states where it withholds and remits in full and 9 more where remittance is split with the host, Idaho and Illinois the most recent additions, so 23 in all; everywhere else the property remains responsible for the tax itself, and the Texas Comptroller puts a direct booking squarely on the owner. Who collects what, on which channel is worth a grid of its own.

Your own site now has to show the full figure. The FTC's rule on unfair or deceptive fees has covered short term lodging since May 12, 2025, your own website included: any price you display must show the total price, with every mandatory fee inside it, more prominently than the other numbers. Taxes may sit outside that headline figure, and they still have to be shown before the guest pays.

An owner glancing at both screens can be comparing a compliant total against a nightly rate with the cleaning fee three taps away. Compare the last screen before payment on both sides, because that is the only place where the two numbers contain the same things. Google Hotels and Tripadvisor already do this for the guest, listing each channel's price for your property side by side.

When the price is not one you set

If all four settings check out and the listing is still cheaper, look at who else is selling your rooms. Roberto Gobo of Valamar, quoted in the same parity research, put it in one line: "Disparity mostly happens when the hotel doesn't control the payment flow." A rate you released to a company that resells your rooms can appear on a screen at a price you never approved, and nothing in your own software will change it. That one is a distribution question for whoever holds the rate.

Price the same stay both ways

Take one booking that has already happened and price it again yourself, both ways. It takes about an hour.

  1. Choose a reservation from the past month, preferably a family booking with a child on it.
  2. Book that stay on your own website as a guest would, in a private browser window, and go as far as the screen before payment.
  3. Do the same on your biggest platform listing, with identical dates, unit and party, stopping at the same screen.
  4. Write both down line by line rather than comparing two headline rates.
  5. If your own total is higher, read the discount line first, then the extra guest line, then the tax line.
  6. To see what a guest sees without opening every channel, search your own property name in Google, open the panel of channel prices underneath it and set the same dates.
Line Your own site The platform listing
Dates and number of nights
Adults and children, as a guest would enter them
Room or unit type
Nightly rate before anything is added
Any discount or member rate the channel applies
Extra guest or child charges
Cleaning and other mandatory fees
Lodging tax, as a named line
Total the guest pays at checkout

Test with the party a guest would actually enter. Two adults can price identically at a property where every booking with a child on it is out by the price of a night. Repeat the test after any rate or fee change, because a tax edit does not reach reservations already taken. Clicking your own Book Now is the wider version of the same hour.

If your bookings run below about $350,000 a year, this is an hour of your own time and nobody should be charging you for it. Above that, the same gap repeats on every family booking you take, and if you would rather have somebody who has run this test on their own property run it on yours, book a call.

Questions operators ask

What does price disparity mean?
One stay costing different amounts on two channels, counted once every mandatory fee and tax is in the total. In lodging it usually means a property's rooms selling for less on a booking platform than on the property's own website, and the opposite of it is rate parity, which is the contract clause that requires one price across every channel.
Why is my own website more expensive than Booking.com?
Direct booking almost never costs more to run, so the gap is usually a setting. You may have a Genius discount or another platform promotion switched on that your own site does not match, your booking engine may bill a child as an extra guest, or a lodging tax may be counted twice, once inside the rate and once as its own line.
Do booking platforms charge extra for children?
Only if you told them to. Airbnb, Booking.com and Vrbo have no platform wide child policy: the host sets the guest count at which a fee begins and the amount. Booking.com adds one catch, since a listing with no child rate prices and counts every guest as an adult.
Is my booking system adding the lodging tax twice?
Start by looking at whether the rate your property system passes on already has the tax inside it. Hostfully documents a setting that rolls a fee into rent so guests never see it separately, and if your booking engine then adds a tax line of its own, the guest pays it twice.
Can I just match the platform price on my own site?
Yes. A parity clause asks the platform for the same or better than you offer elsewhere, so pricing the same on your own site sits inside it. Pricing below the platform is the restricted part, and the United States and Canada restrict it tightly.
Does any of this apply in Canada?
The causes do, because they are settings in software sold on both sides of the border. The state lists do not apply. No platform we checked publishes an equivalent table for a Canadian province, so confirm the tax question with each platform directly.
My direct price is still higher after all four fixes. What now?
A gap that survives all four fixes is a margin decision. Look at what the guest is being offered on the listing, including any member or mobile rate you are not matching, and decide how much commission you are willing to hand back to win the booking.

Who wrote this

Christian

Co-founder, Fullstreak; co-owner, MINT @Naschmarkt, Vienna

I own MINT @Naschmarkt in Vienna with Maxine, and I run Ekamoira, the agency Fullstreak came out of. Almost every booking we took arrived through the platforms, so we built the site that takes the booking, the plumbing that keeps one calendar, and the pages Google and the AI assistants quote. MINT ran it first. Fullstreak is that work, made repeatable for operators like you.

MINT @Naschmarkt, Vienna

Every vendor claim traces to the vendor's own page, checked on the month shown under each table. MINT numbers come from our own books.

See where your own bookings leak.

Twenty minutes on a call. You get a read on where your bookings start today, what the platforms take, and what a direct channel would take to build. It is yours whether or not you hire us.

Ask an assistant about this page

ChatGPTOpensClaudeOpens

The question is written for you. Nothing is sent until you send it.

Share this post

Get the next one by email

New posts when they land, and the numbers behind them. Write to us any time to come off the list.

By subscribing you agree that we store your email address and this consent line. The address is used for the letter alone, and we delete it whenever you ask at hello@fullstreak.com.

Book a call

Twenty minutes, prepared for your property.

Fullstreak, a brand of Ekamoira Digital GmbH, will send you text messages about your enquiry and your call, at most a few a month. Consent is not a condition of any purchase. Message and data rates may apply. Reply STOP to any message to opt out, or HELP for help.

TermsPrivacy