Track your marketing cost per booking, across every channel your hotel uses.
ProfitTracker prices each booking against what you paid to win it: commission, ad spend, agency fees, whichever door it came through.
Get notified at launchEvery figure says where it came from.
Some come from your booking engine, some from your PMS, some from the channel's own statement, some we've had to work out. Each one says which. Nothing is guessed.
The click echo: the booking engine returned the reference we sent with the click.
The PMS's own records: identity and origin as the PMS states them.
Arithmetic: computed from stated figures, shown as computed.
The channel's or contract's own statement: the rate the OTA declares, the amount on the folio.
No source: shown as unmatched, never filled in by a model.
Other tools fill the gaps with a model and show you the result as a number. We don't. What we can't trace stays marked as untraced, so you can see how much of your picture is real.
What's winning, what's bleeding, where's the cheap long tail.
One row per channel, priced and graded the same way.
| Channel | Bookings | Cost / booking | Grade |
|---|---|---|---|
| Google Ads | 128 | €26 | Verified |
| Microsoft Ads | 34 | €31 | Matched |
| Booking.com | 162 | €54 | Declared |
| Direct | 40 | · | Unmatched |
Illustrative figures, one property. The Booking.com row is costed at the rate the channel declares, same as any other row, and stands on its own, never measured against another row as a saving.
The meter runs below channel level too.
Two keywords, same platform, priced and graded per booking. You cannot act on a difference you cannot see per keyword.
Illustrative figures, one property.
Less of the click survives every year.
Consent prompts, tracking prevention, and blockers all take a share of the chain between a click and a booking, and the share they take grows every year. A dashboard built on that chain responds by modelling harder over a shrinking sample. A meter responds differently: it grades what it can prove, and the remainder says Unmatched, not a number a model filled in.
We don't sell the advertising we measure. Every platform we connect to has a reason for its own numbers to look good; we have none, because measurement is the only thing we sell.
That is the difference between a report you can question and one you have to take on faith. How we count sets out the method in full.
How it works
One line on your booking engine, so a click can be echoed back to the booking that follows it.
Your reservations and their declared sources, joined to what each channel actually cost.
Every booking priced and graded. OTA rows are costed from the start; paid rows fill in as your ad accounts connect.
Works with
Priced per property, per month, by room count, the same price for everyone. Annual is twelve months for the price of ten, and a cross-property report is free once you connect a second property. See pricing.
Not open yet.
We are onboarding a small founding group before we open more widely. Leave your email below and we will write to you the day it is ready, not before.
Get notified at launch