Skip to content
StayParity

A book-direct badge for your hotel's website.

A small price comparison widget beside your booking form. It shows guests your direct price with the last check's verdict, and lists the OTAs' prices only when yours is the best or the same.

script tag to add
1
verdicts it can give
4
OTA prices shown when one is cheaper
0
hotelaurora.gr/rooms/deluxe-double
Hotel AuroraRooms · Offers · Nafplio · Contact

Deluxe Double

Fri 16 – Sat 17 Oct · 2 guests · Breakfast included

€189 / night

Book now

Best price, right here

€189direct

  • Booking.com€199
  • Expedia€204
  • Google · Trip.com€196

Save €7 by booking direct

Book direct

Prices checked 2 hours ago

Illustrative. Hotel Aurora is a fictional hotel.

What guests see

Four verdicts, in the badge's own words. It lists the OTAs only when that helps you.

Cheapest

Best price, right here

Your direct price, each OTA's price for the same stay beneath it, and how much a guest saves by booking with you.

Same price

Same price here

Your direct price, with the OTAs' matching prices beneath it. A guest loses nothing by booking with you.

Only here

Our price today

No OTA is selling the stay, so the badge shows your price on its own.

Undercut

Our price today

An OTA sells for less. The badge shows your direct price alone and names no OTA, and the undercut goes to your queue.

The badge speaks English, whatever language your site is in.

Always and never

What the badge shows, and what it never does. It sits on your site, so it only ever makes your case.

Always

  • Your direct price, in your currency, written the way the guest's browser writes prices
  • A Book direct button to your booking page, once you give it the address
  • How long ago the prices were checked

Never

  • An OTA's price when it's lower than yours: then it names no OTA at all
  • Anything from inside the product: no ids, no confidence, no cost, no supplier
  • An empty box: switched off, it collapses and takes no space

Installation

One script tag, where guests pick dates. Your hotel's key is on the Badge page in the portal.

HTML
<!-- StayParity badge. Put it where guests pick dates. -->
<script src="https://badge.stayparity.com/embed.js"
        data-hotel="wk_aurora"
        data-book-url="https://hotelaurora.gr/book"
        async></script>

When the guest picks dates

Your booking form can send the new dates to the badge, and it prices them. A message can change the dates and the guests, never the hotel.

JavaScript
// From your booking form, when the guest picks dates
const frame = document.querySelector('iframe[src^="https://badge.stayparity.com/"]');
frame.contentWindow.postMessage(
  { type: "rate-parity:stay", stay: "2026-10-16", occupancy: 2 },
  "*"
);

What the tag takes

data-hotel
Your hotel's key. Required: without it, nothing shows.
data-book-url
Your booking page, https only. The Book direct button goes there; without a valid address there is no button.
data-stay
The check-in date, as YYYY-MM-DD. Tomorrow if you leave it out.
data-occupancy
Guests, from 1 to 10. Two if you leave it out.

Performance and privacy

Light on your page, and walled off from it. It loads after your page and sets no cookies.

Loads after your page

The tag is async, and the badge's frame loads only as it nears the screen, so your page never waits for it.

Small

The loader is about 1 kB compressed and the badge about 5 kB more, with no web font to fetch.

No cookies, no storage

The frame is sandboxed with no cookies or storage of its own, and its requests carry no credentials.

Fits your page

It takes your page's width, grows to fit what it shows, and follows the guest's light or dark setting.

Questions

About the badge. Anything else, ask us.

Will the badge ever show that an OTA is cheaper?
No. When an OTA sells for less, the badge shows your direct price alone and names no OTA. The undercut goes to your queue, for you to fix.
Which dates does it price?
Tomorrow in the guest's own time zone, for two guests, unless the tag sets data-stay and data-occupancy or your booking form sends the dates the guest picked.
What if nothing has been checked for those dates?
While a check runs, it says it's checking today's prices, then shows the verdict. If no verdict comes, it says Book direct with us, with your button and no prices.