
Costs
Part of Reading hospitality marketing analytics with a sceptical eye
How to measure hospitality marketing analytics: the parts worth your time
how to measure hospitality marketing analytics begins with a decision, stable events, fulfilled outcomes, documented economics, quality checks, and a comparison.
A hotel is reviewing whether to continue, change, or stop a campaign intended to generate direct bookings. The advertising dashboard reports activity, but the team has not established whether those figures match fulfilled reservations or what the bookings mean economically.
The team treats the review as a booking-trail check, not a verdict waiting to be justified. It will define the decision, inspect the relevant events, reconcile records with operating sources, and present a result only when operations and finance approve the counting rule.
Start with the hotel's decision
The owner's question is whether the campaign should continue, change, or stop. Before opening a report, the team identifies the result that could prompt action, who makes that decision, and when the review will happen.
It defines the eligible audience, property, market, channel, offer, dates, capacity state, outcome, economic measure, and risk. This boundary keeps the assessment tied to a business choice instead of a convenient platform metric, with marketing questions and the campaign checklist as prompts.
The scenario proceeds in four stages:
- Set the decision boundary and identify the owner.
- Trace the events that could explain the booking journey.
- Reconcile those records with operating and finance sources.
- Choose a comparison, report its limits, and hand off the result.
Trace a direct booking through the records
The team checks the smallest event trail that can explain how a guest reached a booking or another fulfilled outcome. It treats an interaction as evidence of activity, not as a business result, unless it can be connected to a transaction.
The event review begins with a session start and booking-engine view, followed by reservation steps and purchase. The team also checks cancellation or call events when they could affect the decision. It adds a custom event only if that event could change what the owner decides.
For each booking event, the minimum record includes an event name, timestamp, property ID, outlet ID, session ID, hashed guest ID, channel, campaign, device, consent state, booking value, currency, and reservation ID. A restaurant record may also include outlet, table, covers, average check, and reservation source to show relevant transaction context.
Google Analytics distinguishes automatically collected, enhanced, recommended, and custom events, and describes an event as a specific interaction or occurrence. The team uses those categories as a naming prompt while documenting its own fields. The measurement tools discussion offers another reference point.
Hospitality Event Taxonomy Layers
- Exposurechannel, campaign, creative, time, market
- Behaviorevent, page, property, product, value
- Transactionreservation ID, booked value, status, currency
- Fulfillmentstay, visit, cover, net value, adjustment
- Costmedia, fee, commission, discount, labor, technology
- Decisioncomparison, estimate, caveat, owner, next action
The measures depend on the operation being reviewed. A hotel may track ADR, RevPAR, TRevPAR, occupancy, direct booking rate, OTA mix, look-to-book ratio, conversion rate, ROAS, CAC, repeat-guest rate, and guest lifetime value. For a restaurant, relevant measures may include covers, average check, table turnover, and RevPASH.
The first reconciliation is inconclusive
The team finds missing joins and differences between event counts and source records. Those totals remain provisional, so they cannot yet support a judgment about campaign effectiveness. The immediate task is to correct the join and obtain approval for the reconciliation rule.
The team connects campaign events to transactions using a documented key, then compares the joined records with booking-engine, point-of-sale, reservation, call, and finance records. It checks for duplicates, missing joins, bot traffic, currency mismatches, and late cancellations before treating any count as reconciled.
The privacy review records the applicable framework and permission basis: GDPR for EU guests, CCPA/CPRA for California residents, and Google Consent Mode for tag behavior. The team preserves original and adjusted states, records consent state, and keeps privacy context with the summary. It also refers to data protection by design and to California Privacy Protection Agency announcements when checking relevant requirements.
Which measures are worth your time
For a decision on a direct-booking campaign, four measures carry the weight. Direct booking rate is direct bookings divided by all bookings. ROAS is revenue from ads divided by ad spend. CAC is marketing cost divided by new guests won. Conversion rate is bookings divided by sessions. Count fulfilled bookings only.
Two context measures keep those honest. Occupancy is rooms sold divided by rooms available, and ADR is room revenue divided by rooms sold. RevPAR is room revenue divided by rooms available, which equals ADR times occupancy. A campaign that fills rooms that would have sold anyway raises none of them. Defer the rest until a decision needs them.
A worked example with sample figures
The figures are illustrative. A 60-room hotel has 1,800 rooms available in a 30-day month and sells 1,260, so occupancy is 70 percent. Room revenue is $176,400, so ADR is $140 and RevPAR is $98.
The campaign spent $6,000. The dashboard reports 150 bookings and $27,000, a ROAS of 4.5. The reservation system shows 132 fulfilled. The gap of 18 is 7 duplicate purchase events sharing a reservation ID, 5 cancellations before arrival, and 6 events with no matching reservation. The team removes the duplicates, excludes the cancellations, and leaves the 6 unmatched as unresolved.
Fulfilled revenue is 132 times the $180 average booking, or $23,760, so fulfilled ROAS is 3.96. A holdout suggests 40 of those guests would have booked direct anyway. That leaves 92 incremental bookings and $16,560. Incremental ROAS is 2.76, and CAC is $6,000 divided by 92, about $65.
Decide what the comparison can show
The team chooses a comparison method before interpreting the campaign result. A randomized holdout is strongest when practical; otherwise, it may use a credible geographic, audience, property, or time comparison and record possible sources of bias.
Choose a Comparison Method
Randomized holdout
- Strength
- Strongest when practical
- Design
- Random assignment
- Bias checks
- Not applicable
- Extra checks
- Not applicable
- Causal claim
- Supported
Credible comparison
- Strength
- Weaker but usable
- Design
- Geographic, audience, property, time
- Bias checks
- Seasonality, price, inventory, weather
- Extra checks
- Events, promotions, competitor changes
- Causal claim
- Do not relabel before-and-after
For this hotel, the comparison accounts for seasonality, price, inventory, weather, events, promotions, and competitor changes. Movement between periods alone does not establish causal lift. The team consults hotel benchmarks for cautious context, not as a substitute for a comparison suited to the decision.
Attribution assigns credit across ads, clicks, and other influences along a path. Available approaches include last-click, first-click, linear, time-decay, position-based, and data-driven models. The team documents its model and settings as model-based credit, keeps any incrementality estimate separate, and uses this analytics reference to check that distinction.
Hand the owner a reproducible result
The team corrects the join but withholds a final campaign judgment until operations and finance approve the reconciled figures. The handoff records the outcome and economic measure, metric and source system, eligible sample and comparison, attribution setting or causal method, and capacity, price, mix, and fulfillment context.
The records may sit across GA4 and Google Tag Manager for events and tags, Looker Studio for reporting, Meta Ads Manager for paid social, CallRail for calls, and booking, POS, CRM, or reservation platforms. Named systems can include Mews, Cloudbeds, Opera, Toast, OpenTable, or SevenRooms.
An analyst reproduces the result, while the decision owner explains the action and stop rule. The written process also records how to handle broken data or revoked access, including repair and vendor help. Keeping rejected options beside the selected method makes the reasoning available if constraints later change.
Rules carried into the next review
The next review retains the decision boundary, verified event trail, approved reconciliation, and limits of the comparison. That lets the team assess fulfilled outcomes and economics without treating platform credit as proof of incremental effect.
- Define the action before selecting measures.
- Start with the smallest event set that explains the journey; add events only when they could change the owner's decision.
- Keep attribution credit distinct from an incrementality estimate.
- Finalize results only after reconciliation, material adjustments, and decision-owner approval.
- Record the review date, owner, deadline, and condition for reversing the decision.







