I’m going to make a confident bet about your hotel’s reporting: it tells you what a booking cost and almost nothing about what a guest is worth. That gap is where independents quietly bleed margin for years. You celebrate a cheap acquisition channel, pour budget into it, and never notice it’s stuffing your property with one-and-done bargain hunters who never come back, never upgrade, and never tell a friend.
Cohort analysis is the fix. It’s not glamorous, there’s no dashboard vendor selling it to you with a slick demo, and it lives in a spreadsheet most weeks. But it’s the single most clarifying thing I set up for a hotel that wants to stop guessing about marketing. Let me show you exactly how I build it.
What a “cohort” actually means for a hotel
A cohort is just a group of guests bucketed by the month they first booked with you. Everyone whose first-ever reservation landed in January 2025 is the “January 2025 cohort.” From that point on, you stop asking “how much revenue did we make in March?” and start asking “how is the January cohort doing in month three of its life with us?”
That reframe matters because hotels have a brutally seasonal, annual rhythm. A guest who discovers you in February might not be ready to rebook until next February. If you judge a channel on a 30-day window, you’ll fire the channel that brings your best repeat guests and reward the one that brings tourists who’ll never return. Cohorts stretch the timeline out so the slow-burn value becomes visible.
The three behaviors I care about most, in order:
- Rebooking — did they come back at all, and how fast?
- Upgrade / add-on lift — when they return, do they spend more (suite, spa, F&B, late checkout)?
- Referral — did they bring or send someone new?
A cheap first booking that produces zero on all three is not cheap. It’s expensive, you just paid for it later.
Why the first-stay obsession quietly kills margin
Here’s the trap, and it’s specifically nasty for independents who lean on the OTAs. An OTA-sourced guest looks great on the night they check in — room’s full, revenue’s booked. But you paid roughly 15 to 25 percent commission for that booking, and worse, the OTA owns the guest’s email and the relationship. When that guest wants to come back, they go back to the OTA and you pay the toll again. There is no compounding.
A guest who finds you through your own site, your Google Business Profile, or because ChatGPT recommended you to a “boutique hotel near the arts district” query is a fundamentally different asset. You own the data, you can email them, and a chunk of their lifetime value lands at full margin. (I broke the raw commission math down in the book-direct math post if you want to sit in the discomfort for a minute.)
The point of cohort analysis isn’t to pretend you can fire the OTAs — you can’t, and anyone promising that is selling you something. The point is to build the data that justifies shifting mix: reducing OTA dependence at the margin, clawing back direct bookings from the channels that actually produce repeat, high-value guests.
The cheapest cost-per-acquisition channel and the highest-lifetime-value channel are almost never the same channel. If you only measure the first, you will systematically over-invest in your worst guests and starve your best ones. Cohorts are how you stop doing that.
Building your first cohort table (the boring, powerful part)
You don’t need a data team. You need three columns out of your PMS or booking engine, joined to your channel data:
- A stable guest identifier (email is fine; loyalty ID is better)
- The booking date and stay date of every reservation
- The acquisition channel of that guest’s first booking
- Revenue per stay, ideally split into room vs. extras
Export that to a sheet. Now collapse it into the classic cohort grid: acquisition month down the left, “months since first booking” across the top. Each cell holds a metric for that cohort at that age.
Here’s a deliberately simplified, illustrative example tracking repeat-booking rate — the share of each cohort that has booked a second stay by a given month. These numbers are made up to show the shape, not a real result:
| Acquisition month | Month 3 | Month 6 | Month 9 | Month 12 |
|---|---|---|---|---|
| Jan (Direct / SEO) | 4% | 11% | 19% | 28% |
| Jan (Metasearch) | 3% | 9% | 15% | 22% |
| Jan (OTA) | 1% | 3% | 6% | 9% |
| Feb (Direct / SEO) | 5% | 12% | 21% | 30% |
| Feb (OTA) | 1% | 4% | 7% | 10% |
Even in a made-up grid, the story jumps out: the direct and organic cohorts compound, the OTA cohorts flatline. If your real table looks anything like this, your “expensive” direct channel is actually your cheapest source of lifetime revenue, and your reporting has been lying to you by quarter.
The first time I built one of these for a 40-room boutique property, the owner went quiet for a full minute and then said, “We’ve been spending our marketing budget upside down.” That’s the normal reaction. The data was always there — nobody had bucketed it by birth month.
The three metrics worth layering on top of repeat rate
Repeat rate is the headline, but it’s slow. Two faster signals tell you which way a cohort is trending before the rebookings roll in.
Upgrade and add-on lift
Track average non-room spend per stay by cohort age. Guests who feel a real relationship with the property tend to loosen up on the spa booking, the bottle of wine, the suite upgrade by their second or third visit. If a channel’s guests never move on add-on spend, that’s an early warning the relationship isn’t forming — often because the channel attracts pure price-shoppers.
Direct-rebooking share
Of the guests who do come back, what fraction book direct the second time versus crawling back to an OTA? This is the number that proves your book-direct CRO work and your Google Business Profile presence are actually shifting the mix. A rising direct-rebooking share inside a cohort is the cleanest evidence that you’re winning back margin over time.
Referral / word-of-mouth proxy
True referral tracking is hard for hotels, so I use proxies: guests who booked a second room for the same dates, guests who mention a name at check-in, or a simple “how did you hear about us?” field that captures “a friend stayed here.” Imperfect, but a cohort that throws off referrals is a cohort full of people who genuinely love the place. Your content and reputation work shows up here first.
Tying cohorts back to the channels you can actually influence
This is where it stops being an accounting exercise and starts driving decisions. Once you can see which acquisition channels seed the best cohorts, you reallocate toward them. For most independents I work with, the high-LTV cohorts cluster around channels you own and can compound:
- Organic search for your brand and for the “best boutique hotel in [neighborhood]” type queries — the bread and butter of hotel SEO.
- AI-assisted discovery — guests who found you because an LLM surfaced you in an answer. The search volume behind this is real and growing fast (the term “aeo” alone runs about 27,100 US searches a month), and these guests skew toward owning-the-relationship behavior. If you’re invisible to those engines, you’re missing a high-value cohort entirely — I wrote about diagnosing that in is your hotel invisible to ChatGPT, and it’s the core of our AI visibility work.
- Metasearch — not as clean as direct, but usually a healthier cohort than raw OTA, and worth its own look in metasearch for independent hotels.
The OTA cohort still matters — it fills rooms and exposes you to travelers who’d never find you otherwise. You’re not trying to zero it out. You’re trying to make sure the next dollar of marketing budget goes to the channel that builds a compounding cohort, not the one that rents you a guest once.
A realistic timeline and a warning about patience
Let me be honest about pace, because the whole value of this method is resisting the urge to judge too early.
- Months 0–3: Your cohorts are too young to show repeat behavior. Watch add-on spend and direct-rebooking share for early directional hints only.
- Months 6–9: Differences between channel cohorts start to separate. You can begin shifting budget with low-to-medium confidence.
- Months 9–12+: The annual travel cycle completes and repeat-rate differences become trustworthy. This is when you make the bigger reallocation calls.
That’s the same timeline honesty I bring to SEO itself: I can’t promise you a number one ranking or a fixed result by a date, because nobody legitimately can. What I can do is build the measurement that maximizes your odds of spending the next dollar correctly, and the discipline to wait for the signal instead of reacting to noise.
A few traps to avoid:
- Don’t mix booking date and stay date. A guest who books in January for an August stay belongs to the January cohort. Pick a rule and never break it.
- Don’t let one whale distort a small cohort. With a 30-room property, a single big repeat spender can make a channel look heroic. Use medians alongside averages.
- Don’t expect clean AI-referral data. Traffic that an AI answer sends you often lands as direct or branded organic, so watch for branded-search lift rather than a tidy referrer string. (More on why your own name gets hijacked in why your hotel ranks below OTAs for your name.)
Where to start this week
If you do nothing else: pull twelve months of reservations, tag each guest by first-booking channel, and build the one repeat-rate grid I showed above. That single table will reframe how you think about every marketing dollar. Then layer add-on lift and direct-rebooking share once the basic grid is breathing.
If you’re standing this up from scratch and want the foundational pieces in place first, the 2026 starter guide and the GBP playbook are the right groundwork, and how OTAs steal search explains the mix problem cohorts are designed to fix.
Cohort analysis won’t make you rank number one and it won’t let you fire the OTAs. What it will do is show you, in numbers you can’t argue with, which guests are actually worth fighting for — so you stop paying for cheap first bookings and start building a base of guests who come back, spend more, and bring friends.
Want help wiring this into your PMS and booking-engine data so the grid updates itself? Book a free intro call at /book and we’ll map your cohorts together — or start with our hotel SEO service if you want the high-LTV channels feeding it built up first.