NEXSUM_LABS
  1. Home
  2. Work
  3. A boutique hotel group stopped arguing about channel data with one blended revenue view
Book a call

[ Case study ]

Boutique hotelsLooker StudioBigQueryPMS scheduled exportBooking-engine API

A boutique hotel group stopped arguing about channel data with one blended revenue view

The group's property management system, booking engine, and ad platforms each reported 'revenue' differently — net vs gross, stay-date vs booking-date — and the owners' meeting reopened the same channel-value argument every quarter.

CLIENT a five-property boutique hotel group — FOCUS Two dates, two views, labeled

Looker Studio / Data Studio DashboardsAnalytics & CROLooker Studio / Data Studio DashboardsBoutique hotelsRepresentative example
Client
a five-property boutique hotel group
Industry
Boutique hotels
Engagement
5 weeks — growth pod — analytics specialist
Service
Analytics & CRO / Looker Studio / Data Studio Dashboards
Headline outcome
Owners' meetings reviewing from the shared dashboard with definitions on record: Quarterly channel argument → one labeled view, read from Owners' meeting minutes

Representative examplesEvery case study in this library is an illustrative composite of the kind of engagement we deliver — written to show our method and standards, not to name clients.

Where they started

Five boutique properties, each with its own character and its own loyal repeat guests, share one ownership group and one indignant quarterly argument about channels. The properties run a property management system as the financial truth, a shared booking engine, and paid campaigns managed per property. Every system reports revenue on its own basis — net or gross, stay-date or booking-date — and the owners' meeting has reopened the same channel-value question every quarter for years, with each side arriving armed with the number that proves its case. Trust in any report is scarce and earned slowly.

What it was costing

The group's property management system, booking engine, and ad platforms each reported 'revenue' differently — net vs gross, stay-date vs booking-date — and the owners' meeting reopened the same channel-value argument every quarter.

What they could see

  • The owners' meeting reopened the same channel-value argument every quarter, with the same three reports cited by both sides.
  • Net and gross revenue appeared in the same conversations unlabeled, so every comparison started with a definitional dispute.
  • Stay-date and booking-date views were mixed freely, making a strong booking month look like a weak arrival month.
  • No one could reconcile the booking engine's totals to the PMS's, so both numbers were discounted and neither used.

The constraints we worked inside

  • The PMS is the financial truth; the booking engine and ad platforms are directional and must be labeled as such.
  • Stay-date revenue and booking-date revenue answer different questions; collapsing them caused the original argument.
  • Owners are data-skeptical after years of contradictory reports; credibility requires showing the definitions on the dashboard.

What had been tried before

The owners' analyst kept a quarterly spreadsheet comparing each ad platform's reported revenue against the PMS line by line.
The platforms report gross booking-date revenue and the PMS records net stay-date revenue, so every row was arguable and the spreadsheet became ammunition rather than evidence.
A revenue consultant produced a polished one-off channel deck for a single quarter two years earlier.
It answered one quarter and then went stale immediately — without a standing pipeline behind it, the next quarter restarted the argument with fresh numbers and old grievances.

What we proposed

We proposed one blended revenue view with the two questions kept visibly separate: a booking-window view and a stay-date view, side by side, definitions printed on the page so neither can be quietly swapped. The PMS is the financial truth, and a scheduled monthly reconciliation places PMS totals beside the platforms' numbers so discrepancies surface in a report instead of in a meeting. Direct, OTA, and paid channels share one table with commission-adjusted contribution, ending the era of each platform cherry-picking its own metric. Credibility was the design constraint — every number shows its definition and its source.

Just as important is what we ruled out, and why:

  • A single unified revenue number defined once and enforcedStay-date and booking-date answer genuinely different questions, and collapsing them is what created the original argument — the fix had to show both, labeled, not pick a winner.
  • A channel-management platform with built-in attributionAnnual licensing across five properties exceeded the reporting problem's value, and its black-box attribution would have restarted the trust fight with a new vendor in the middle.

How the work ran

01Two dates, two views, labeled

The dashboard shows booking-window and stay-date views side by side with definitions printed on the page, so both questions get answered without a fight.

02Reconcile to the PMS monthly

A scheduled reconciliation places PMS totals beside platform numbers, so discrepancies are visible and explained rather than discovered in meetings.

03Channel value in one table

Direct, OTA, and paid channels appear in one blended table with commission-adjusted contribution, ending the per-platform cherry-picking.

Delivered by the growth pod — analytics specialist over 5 weeks, with working increments reviewed with the client every week.

The stack, and the reasoning

Looker Studio
Owners are data-skeptical and read reports in the meeting, not beforehand; a browser dashboard with definitions printed on the page meets them exactly where trust has to be rebuilt.
BigQuery
Blending five properties' PMS, booking, and channel data with commission adjustments is warehouse work; doing it in chart settings would reopen every old dispute.
PMS scheduled export
The PMS is the financial truth, so it arrives on a schedule as the anchor dataset and every platform number is reconciled against it monthly, visibly.
Booking-engine API
The API gives reservation-level detail the engine's own summaries hide, which is what makes stay-date versus booking-date views possible at all.
Ad-platform connectors
Platform numbers stay directional by policy and are labeled as such — the connectors keep them current without ever letting them pose as the financial record.

What went wrong

Obstacle

The reconciliation tile — the credibility anchor of the whole design — was held back to a second release for scheduling reasons, and the first release landed without the trust it needed.

Handled: Trust dipped exactly as predicted; we pulled the reconciliation forward, shipped it within weeks, and the owners' next meeting ran from the dashboard rather than against it.

Obstacle

One property's night audit ran late on weekends, so its PMS export arrived after the scheduled load and the weekend numbers briefly vanished from Monday views.

Handled: We staggered the load per property, added an arrival check that reports which properties are current, and adjusted that property's export time with the front office permanently.

How we worked together

Cadence
A weekly working call with the group's operations manager; one session per property owner ahead of each quarterly meeting; the reconciliation summary delivered monthly in writing.
Client side
Each property's front office supplied export timing and quirks; the owners themselves reviewed the draft views; the operations manager owned the project and the PMS relationship.
Decisions
What the dashboard must answer was the owners' call, settled in one session; definitions and labeling conventions were drafted by us and ratified by the operations manager.
They provided
PMS export access per property, booking-engine API credentials, ad-platform account access, and the owners' patience for one definition session they had every right to dread.

What changed

The headline: owners' meetings reviewing from the shared dashboard with definitions on recordQuarterly channel argument → one labeled view, read from Owners' meeting minutes. A second check: time spent reconciling channel reports each quarter at −73%.

The quarterly channel argument has been retired to the minutes. Owners arrive having already seen the labeled views, and the meeting now debates actions — commission tiers, direct-booking incentives, which property needs campaign support — instead of whose revenue is real. The operations manager no longer spends days each quarter rebuilding comparisons, and the properties' front offices stopped receiving suspicion about their exports because the reconciliation makes discrepancies visible and explained. The dashboard's quietest achievement: OTA value is now discussed without the word skimming.

The result was read from Owners' meeting minutes against the pre-engagement baseline over the stated window, with a guardrail check on time spent reconciling channel reports each quarter. Where platform-reported numbers and business outcomes differ, this record says which layer it is quoting.

What they own now

  • The blended revenue dashboard with booking-window and stay-date views, definitions printed on the page.
  • The monthly PMS reconciliation pipeline with its discrepancy explanations.
  • The commission-adjusted channel table covering direct, OTA, and paid in one view.
  • The booking-engine API integration with its per-property load schedule documented.
  • A definitions annex the owners can cite in meetings instead of relitigating.

What we would do differently

We would ship the reconciliation tile in the first release — it was the credibility anchor, and holding it for a 'phase two' delayed trust by a month.

Analytics & CROLooker Studio / Data Studio DashboardsBoutique hotelsLooker Studio

Next case study

A craft brewery put its taprooms, wholesale, and events on one scorecard