Your overall parity-health score, out of 100. It drops when OTAs undercut you — the more often, the bigger the hit; deeper cuts and big-OTA cuts hurt most. Plus a penalty when you’re not shown on Google.
Roughly: 100 − how often you’re undercut (weighted by how deep, and how major the OTA is) − a visibility-gap penalty.
A monthly run-rate, not a fact. The period only sets how the disparity rate is measured — the € is always shown per month so it stays comparable.
Counts only channels still undercutting now — a channel with no undercut in the last 7 days is “recovered” and stops adding to this estimate.
Per hotel: rooms × occupancy ÷ stay = bookings → × % booked online → × % who compare on Google → × how often an OTA beats you → the range spans how many of those switch. Refine in each hotel’s Revenue assumptions.
Health is a price-parity score (0–100): it drops with frequent, deep and major-OTA undercuts plus a visibility penalty.
“—” means the hotel wasn’t visible in Google’s price block in this period — there are no comparable prices, so a parity score would be meaningless. Judge those rows by the Visible column instead.
The 30-day line: blue = improving, red = declining (the second half of the window vs the first).
| Hotel | Health | Checks | Visible | Disparity | Avg depth | 30-day trend | Top violator | Status |
|---|
| Channel | Hotels | Avg depth | Est. €/mo | Seen in | 30-day | Status |
|---|
| Country | Hotels hit | Visible | Disparity | €/mo | Top violator |
|---|
| Hotel | Health | Visible | Disparity | Avg depth | Status |
|---|
How this hotel compares to your hotels’ average, in percentage points. Undercut + = undercut more often than average (worse). Visibility − = shown less often (worse). Blue = better than the group.
A scoped, branded PDF of the screenshots you’ve filtered to — up to the 40 most recent. Not a bulk dump.
Your name as it appears across the dashboard.
Set a new password for your account.
People with access to this account. Owners can edit; viewers are read-only.
When a guest comparing prices sees an online channel cheaper than your own site, some of those guests book there instead — and you pay a commission you’d otherwise keep. This page shows exactly how that number is built, so every figure on the dashboard is defensible to a revenue manager.
- Monthly bookings the hotel makes — rooms × occupancy × 30 ÷ length-of-stay
- Those who compare online — × % booked online × % who compare in the Google block
- Those actually under-cut — only the checks where a channel beat your price
- Those who switch — the guest switch rate, which scales with how deep the gap is (see below)
- Money lost per switch — ADR × nights × your OTA commission
Commission lost (default) — what you overpay in commission. Direct revenue touched — the full booking value that ran through a channel; useful for scale, but not a true “loss” since the room is still sold minus commission. The headline uses commission lost.
A €3 gap on a €190 booking loses almost nobody; a 20% gap loses a real share. So the switch rate is not flat — it’s computed from the actual size of each undercut in your data (anchored to industry conversion-loss data; capped at ~40%, since even large gaps don’t move more than about a third of guests).
| How much cheaper the channel is | Guests who switch (cautious → aggressive) |
|---|---|
| under 2% | 0% → 5% |
| 2–5% | 5% → 15% |
| 5–10% | 15% → 30% |
| over 10% | 30% → 40% |
Each hotel’s shown switch rate is the average of these across its own undercuts — so a hotel undercut deeply lands high, a hotel with tiny gaps lands low. The result is a cautious–aggressive range, never a single false-precise number.
× 70% occupancy
× 30 days
÷ 2-night average stay
× 75% booked online
× 25% who compare on Google
× 80% undercut incidence
→ blended guest switch rate 28%–38%
562 undercut × 28%–38%
× 2 nights
× 16% OTA commission
× €31
For comparison, a flat “75–95% switch” (the old assumption) would have claimed ≈ €13k–€17k — about 2.5× higher. The live tile shows each hotel’s real figure on its current 30-day window.
Contracted OTAs (Booking, Expedia, Hotels.com, Trip.com) — when one of these is cheaper, it’s a direct parity break: complain to that OTA with the evidence. In your data these are largely at parity.
Gray-market resellers (Super.com, Vio.com, and similar) — these drive the large majority of undercutting. They don’t own rooms; they resell a rate sourced from a major OTA, so a booking there still costs you commission. The fix is different: run a test purchase to find the supplying OTA, then escalate to that partner. The complaint kit switches to this mode automatically for resellers.
Anomalous captures — excluded. A gap deeper than 40% is almost never a real public parity break — it’s usually a misread screenshot or a non-comparable (member/packaged) rate. These are marked Anomalous and excluded from undercutting and the € figure. (The 40% cutoff is a heuristic; it will be tuned in the calibration pass.)
Personalized prices — counted, and labelled ✳. Google marks some channel prices as “customised by the booking partner” (device/audience-targeted campaigns — a standard metasearch-ads feature). Guests in that segment really do see and book these prices, so they count toward undercutting and the € estimate — but every such capture carries a Personalized ✳ label in Evidence, and the complaint kit flags those instances, so the channel can’t dismiss the pack as untargeted.
The top bar has two multi-selects — Hotels and Channels (the OTAs). Both narrow the whole dashboard, but they behave differently on purpose. Here’s exactly how, so a number never surprises you.
Selecting hotels simply limits every screen to those hotels’ checks. All hotels = the full portfolio; none = no data. Nothing is recalculated — it’s a plain row filter.
This is the important one. For each check we record only the single cheapest OTA — the one that undercut you — and its price. We do not store the price of every OTA on the page. So the channel selector answers “which undercutting OTAs should count” — it can’t “recompute your prices without an OTA”, because the other prices were never captured.
So: a check is a disparity only if the OTA that undercut you is selected. Deselect an OTA and its undercuts turn into parity — the check stays, only its label changes — so the disparity rate drops by that OTA’s share.
All channels selected = the full picture; none selected = nobody is blamed = 0% disparity.
| # | Cheapest OTA (who undercut) | Its price | Result |
|---|---|---|---|
| 1 | Super.com | €90 | disparity |
| 2 | Super.com | €100 | parity |
| 3 | Booking | €95 | disparity |
| 4 | Super.com | €105 | we’re better |
| 5 | Vio.com | €92 | disparity |
All channels selected: disparities = #1, #3, #5 = 3 of 5 = 60%.
Deselect Super.com: the check it undercut (#1) becomes parity; #2 and #4 were never undercuts. Disparities = #3, #5 = 2 of 5 = 40% — the rate drops, as you’d expect.
The trap the old behaviour had: dropping every Super.com check would delete #1, #2 and #4 entirely, leaving only #3 and #5 → a misleading 100%. That’s why deselecting the biggest violator used to push the rate up instead of down.