All guides

    Evidence-reviewed guide

    Hotel Taxes and Fees Consistency Across OTAs

    A field-by-field method for auditing how mandatory fees, resort or facility charges, city and occupancy tax, and VAT are disclosed across your public hotel listings — without confusing content consistency with rate parity.

    Reviewed by Lotte · Editorial owner: MisMatchMaker AI · Published 31 August 2026 · Evidence reviewed 31 August 2026

    Direct answer

    To audit hotel taxes and fees across OTAs, separate each charge into testable facts — mandatory or optional, government tax or property fee, included in the displayed rate or added later, and its charging basis — then compare the same fact on at least two successfully accessed listings against an approved record. You are checking how charges are disclosed, not the rate you set, and a missing fee is incomplete evidence rather than proof it does not apply.

    Key takeaways

    • Audit how fees and taxes are disclosed, not the rate you compete on — that keeps content consistency separate from rate parity.
    • Break every charge into mandatory-or-optional, tax-or-fee, included-or-excluded, charging basis, and refundability before comparing.
    • Compare at least two successfully accessed listings; treat a missing fee as incomplete evidence, not agreement.
    • Total-price rules — the FTC fee rule, California's SB 478, and platform policies — make up-front disclosure a compliance matter, not just tidiness.
    • MisMatchMaker does not extract taxes or fees, so run this audit manually or with the template alongside the fields the scanner compares.

    Fee disclosure is content, not your rate

    It is easy to assume anything involving money belongs to rate parity, but the two questions differ. Rate parity asks whether the price you offer on one channel matches another — a commercial question this guide does not address. Fee and tax consistency asks whether the same facts about a charge are disclosed accurately wherever a guest sees them: that a resort fee exists, that it is mandatory, that city tax is added at the property. Those are descriptive facts, and describing them differently across listings is a content problem.

    That distinction changes what a discrepancy means. A lower nightly rate on one channel may be a legitimate promotion or a parity question for your commercial team. But if one listing discloses a mandatory facility fee and another omits it, a guest sees contradictory information about the same stay. This audit targets that inconsistency: the goal is consistent, up-front disclosure, not identical wording and not a particular price.

    Break every charge into testable fields

    A single line such as ‘taxes and fees apply’ can hide several independent facts, and you cannot compare a charge you have not decomposed. For each charge a guest may pay, record whether it is mandatory or optional, a government tax or a property-set fee, included in the displayed rate or added later, its charging basis, and whether it is refundable — only then can you tell a formatting difference from a substantive conflict.

    The charging basis is where many audits go wrong. ‘A 25 euro fee’ is meaningless until you know whether it is per night, per stay, per person, or a percentage of the rate — and Booking.com's partner guidance treats extra charges as structured items with a type and amount for exactly this reason. Capture the basis as its own field so that a per-night fee on one listing and a per-stay fee on another register as the genuine conflict they are, and keep the exact wording beside it: ‘from 20 euro’ is not a fixed 20 euro fee.

    Separate government taxes from property fees

    Guests and audit spreadsheets both tend to blur ‘taxes and fees’ into one bucket, but the two behave differently and must be recorded separately. A government tax — city or occupancy tax, tourism levy, or VAT and GST — is set by an authority and often handled distinctly by the platform. A property fee — resort fee, facility fee, service charge, or cleaning fee — is something the hotel sets and controls.

    The commercial handling differs too. Booking.com's partner material treats local taxes such as city tax differently from the commissionable amount, while VAT or GST follows local rules; Airbnb documents that in some jurisdictions it collects and remits occupancy taxes on the host's behalf and in others the host is responsible. Record which charges are taxes and which are your own fees, and who ultimately collects each one, because only property-set fees are fully within your control and that ownership determines who can fix a disclosure error.

    Build a fee-and-tax source of truth

    Before judging any listing, create one approved row for every charge a guest may encounter, recording the current fact and its conditions so a later edit to one detail does not silently overwrite another. A brochure or another OTA is not authoritative; the authority is the property's own operational and finance record, with an accountable owner and a review date. The front desk may know the arrival-time charge and finance the tax treatment, but one person should still be accountable for approving the public version of each fact.

    Minimum fee and tax fields to approve before an OTA audit
    FieldApproved valueQuestions to resolve
    Charge nameResort fee, city tax, VAT, cleaning feeIs it a government tax or a property fee?
    Mandatory?Mandatory or optionalMust every guest pay it, or only some?
    Included in displayed rate?Included or added laterDoes the guest see it up front or at checkout?
    Charging basisPer night, stay, person, or percentageAre taxes applied on top of the fee?
    Amount and currencyValue with currencyIs it fixed or a ‘from’ minimum?
    Refundable?Yes, no, or conditionalDoes it survive a cancellation?
    Who collects/remitsPlatform, hotel, or third partyWho can correct a disclosure error?
    Owner and review dateNamed role and dateWhen was this last verified?

    Know the total-price rules that apply to you

    Consistent fee disclosure is no longer only good practice; in several markets it is a legal requirement, which raises the cost of an inconsistent listing. In the United States, the Federal Trade Commission's Rule on Unfair or Deceptive Fees took effect on 12 May 2025 and requires businesses that offer short-term lodging — including third-party platforms — to disclose the total price, including mandatory fees, whenever a price is shown; government charges may be excluded from that up-front total, but their nature and amount must be disclosed before the guest agrees to pay.

    State and platform rules add to that baseline. California's SB 478 took effect on 1 July 2024 and prohibits advertising a price that omits mandatory fees other than government taxes. Airbnb now shows guests a total price by default, and Google's hotel policies require prominently displaying a total price and forbid shifting money between the base rate and taxes or fees.

    This is not legal advice, and details differ by jurisdiction and change over time. Treat these rules as a reason to make disclosure consistent across every listing, and verify current requirements for each market with a qualified adviser.

    Know where each platform configures fees and taxes

    You cannot correct a fee until you know which system owns it on each channel. On Booking.com, VAT, tax, and charge settings are viewable in the extranet, but the partner guidance notes many cannot be edited directly and require contacting Booking.com to change — so a fee that looks wrong may need a support request, not a self-service edit. Google's Taxes and Fees Policy requires the prices you send to include mandatory taxes and fees and match the total on your final booking page, and prohibits lowering the base rate while raising taxes or fees.

    On other platforms — Expedia, Agoda, and your own booking engine — locate the equivalent tax and fee configuration and record which surface owns each charge, because the same fee can be maintained in different places on different channels, and reconcile each to your approved source of truth rather than to another listing.

    Normalize formatting without erasing conditions

    The same charge is often formatted differently across listings. ‘EUR 25 per night,’ ‘€25 nightly,’ and ‘25 euros / night’ describe the same fee, and normalizing currency symbols, whitespace, capitalization, and per-night wording prevents a cosmetic difference from raising a false alarm — but keep the exact extracted value and its URL beside the normalized value as evidence.

    Do not normalize away conditions. ‘Free for members,’ ‘waived on selected rates,’ and ‘included’ are materially different; ‘from €25’ is not a fixed €25 fee; and a percentage tax cannot collapse into a flat fee. A useful comparison keeps three columns — original public wording, normalized comparison value, and your verdict of match, conflict, missing, inaccessible, or needs scope review — so a formatting quirk never becomes a false conflict and a genuine qualification never disappears.

    Diagnose common fee and tax mismatch patterns

    Most fee discrepancies come from a partial update, a scope error, or a difference in how the same charge is interpreted. Diagnose the pattern before editing, because changing a label without resolving the underlying question creates a second error — if one listing shows a resort fee and another does not, determine whether it was removed, is genuinely not charged on that channel, or is simply missing from the page.

    • A mandatory resort or facility fee appears on one channel and is missing from another.
    • City or occupancy tax is shown as included in the displayed rate on one listing and added at the property on another.
    • The same fee is described as per night on one page and per stay on another.
    • A fee amount changes while stale descriptive text keeps the old figure elsewhere.
    • An optional charge — parking, breakfast, or a pet fee — is presented as mandatory, or the reverse.
    • VAT is inside the displayed rate on one channel and quoted separately on another, so the totals look inconsistent.

    Run the public fee and tax checklist

    Open each supported public listing as a guest would see it, and inspect both the headline price area and any fine print, policies, or ‘additional charges’ section, because the summary and the detail may not agree. Record the URL, the access time, the exact wording, and where the evidence appeared.

    Compare at least two successfully accessed sources before calling a fee consistent. If a source fails to load, preserve that failure rather than dropping it; if a fee is absent, record it as missing rather than agreed.

    • List every charge a guest may pay and classify each as a government tax or a property fee.
    • Record whether each charge is mandatory or optional.
    • Note whether each charge is included in the displayed rate or added later.
    • Capture the amount, currency, charging basis, and any ‘from’ qualifier.
    • Confirm refundability and how each charge behaves on cancellation.
    • Check both the price summary and the fine print for every listing.
    • Mark missing, blocked, or ambiguous evidence instead of guessing.
    • Compare the live output against the approved source-of-truth record, not another OTA.

    Correct the owning system, then verify the page

    Once the authoritative value is clear, correct the field in the system that owns it for each channel — an extranet, a connectivity partner, or a platform support request — and record what was changed, where, who approved it, and when.

    Do not mark the task done when a dashboard says saved. Reopen the guest-facing page and confirm the exact fee at the correct rate-plan or property scope. If the public result is still wrong, preserve the evidence and escalate with the property identifier, field name, expected value, submitted value, and public URL. There is no universal publication time across channels, so set a recheck schedule matched to urgency — a mandatory fee that misleads a guest deserves faster handling than a minor wording variation.

    Keep fee and tax content accurate after the audit

    A one-time clean-up drifts again unless fee changes are tied to distribution work. Add a content-update step whenever the hotel changes a fee amount, adds or removes a charge, alters a tax treatment, or changes who collects a fee, and give seasonal fees explicit start and end dates.

    Use a lightweight change log rather than memory: previous value, new value, affected channels, owner, submission status, public verification status, and an evidence link. Review open items until every public source is either verified or explicitly recorded as unavailable. MisMatchMaker can accelerate comparison for the fields it extracts, but it does not read taxes or fees and cannot confirm your finance configuration; those remain the hotel's responsibility, and the strongest process pairs automated comparison with an accountable source of truth.

    Frequently asked questions

    Do hotel taxes and fees have to be identical across OTAs?

    The underlying facts should be compatible — whether a charge is mandatory, whether it is a tax or a property fee, its amount and charging basis, and whether it is included in the displayed rate — but the wording does not have to match. In several markets, mandatory fees must also be disclosed up front in the total price, so an inconsistent or omitted fee can be a compliance problem as well as a content one.

    Is a resort fee a tax?

    No. A resort or facility fee is a charge the property sets and controls, while a tax such as city, occupancy, or VAT is imposed by an authority. Record them as separate fields, because they are handled differently by platforms and only the property-set fees are fully within your control to describe and correct.

    Does a missing resort fee on one listing mean it does not apply?

    No. A missing fee means that public source did not provide comparable evidence. It may still apply and simply be undisclosed on that page, or it may genuinely not be charged on that channel. Confirm the real charge against your approved record before editing anything.

    Do I have to show the total price including fees?

    In many markets, yes. The U.S. FTC fee rule (effective 12 May 2025) and California's SB 478 (effective 1 July 2024) require disclosing mandatory fees in the advertised total for short-term lodging, and platforms such as Google and Airbnb display a total price. Rules differ by jurisdiction and change, so this is not legal advice — verify the current requirements for each market with a qualified adviser.

    Can I change my VAT and tax settings myself on Booking.com?

    Not always. Booking.com's partner guidance describes viewing VAT, tax, and charge settings in the extranet but notes that many of them cannot be edited directly and require contacting Booking.com to change. Confirm the current interface in your own account before assuming a fee is self-service.

    Does MisMatchMaker check taxes and fees?

    No. It does not currently extract or compare taxes and fees. It compares supported fields such as breakfast, parking, pet, check-in, and check-out details. Use the downloadable worksheet to audit fees and taxes manually, and confirm every finding against your approved record.

    Related guides

    Compare the supported fields

    Run a session-only check across supported OTA listings, then confirm any change in your own source of truth.

    Run a free match check