I have a confession that will make every revenue manager wince: most independent hotels treat their entire past-guest list as one giant undifferentiated blob. Same newsletter to everyone. Same “we miss you” email to the couple who honeymooned with you in 2019 and to the guy who stayed one night last Tuesday. Same 10% off to people who would have paid rack rate anyway.
It is a waste, and it is fixable in an afternoon. The fix is a 60-year-old direct-mail technique called RFM. It is the single most useful thing you can do with the guest data you already have, and almost nobody in boutique hospitality bothers. Let me show you how I build it.
What RFM actually is (and why it beats your gut)
RFM stands for Recency, Frequency, Monetary. You score every past guest on three questions:
- Recency - how long ago did they last stay? Recent guests respond to marketing far better than old ones. This is the strongest predictor of the three.
- Frequency - how many separate stays have they had with you? A repeat guest is worth a multiple of a one-timer.
- Monetary - how much have they spent with you in total (or per stay)? Room revenue plus spa, F&B, late checkouts, the works.
You turn each of those into a 1-to-5 score, mash them together, and suddenly your blob becomes a map. The point is not statistical elegance. The point is that you stop guessing about who matters and start treating different guests differently - which is the entire game in lifecycle marketing.
Your gut says your “best guest” is the one you remember chatting with at breakfast. Your data says your best guest is the quiet anniversary couple who has booked the same suite every November for six years and never once asked for a discount. RFM finds the second kind, because you will never remember all of them.
The data you need (less than you think)
You do not need a customer data platform. You need a CSV. Export your booking history with, at minimum, these columns:
- Guest email (your unique key - more on the deduplication mess below)
- Stay date (check-in is fine)
- Total spend for that stay
That is it. If your PMS can also give you booking source, room type, and ancillary spend, great, keep them - they make later analysis richer. But three columns get you a working model.
Two honest warnings before you export anything:
- Dedup by email, not by name. “Jon Smith,” “John Smith,” and “J. Smith” are three rows and one human. Email is your least-bad unique key. Phone is a decent backup.
- Decide what a “stay” is. I count one reservation as one stay, even if it is five nights. If you count nights, your frequency scores get distorted by people who book long stays. Pick a rule and apply it to everyone.
The dirtiest secret of guest data is that your OTA bookings often arrive with masked or alias email addresses, so those guests are nearly impossible to remarket to directly. That is not a reason to skip RFM. It is a reason to read it as one more argument for winning the relationship at check-in and pushing the next booking direct. I dig into the mechanics of that in our piece on how OTAs quietly intercept your guests in search.
Step by step: scoring guests in a spreadsheet
Here is the exact process I run for a hotel doing this for the first time. You can do every step in Google Sheets or Excel.
Step 1 - collapse to one row per guest
Pivot your raw booking export so each guest email becomes a single row with three calculated fields:
- Last stay date (the most recent check-in)
- Number of stays (count of reservations)
- Total spend (sum across all stays)
Step 2 - turn dates into “days since”
Recency needs to be a number, not a date. Add a column: today’s date minus last stay date. A guest who stayed last week is 7. A guest from two years ago is 730. Lower is better here, which matters in the next step.
Step 3 - rank each dimension into 1-5 buckets
This is the only mildly clever part. For each of the three columns, split your guests into five roughly equal groups (quintiles) and assign a score:
- Recency: the most recent 20% of guests get a 5, the oldest 20% get a 1. (Recent = high score, so you invert the “days since” number.)
- Frequency: the most frequent 20% get a 5, the one-timers get a 1.
- Monetary: the top 20% of spenders get a 5, the bottom 20% get a 1.
In Sheets, the PERCENTRANK function or a nested IF against quintile cutoffs does this fine. Do not overthink the math - if a guest lands a 4 instead of a 5, your campaign does not collapse.
Step 4 - assemble the score
Now each guest has three digits, for example R5 F2 M4. I keep them as a three-part code rather than averaging, because the pattern tells a story that an average hides. A guest at R5 F1 M5 (just stayed, first time, big spender) is a completely different opportunity from R1 F5 M2 (loyal regular who has gone quiet). Average both and you get mush.
Turning scores into segments you can actually email
Three-digit codes are precise but unwieldy. I collapse the 125 possible combinations into a handful of named segments a human can act on. Here is the cheat sheet I hand clients:
| Segment | Rough RFM pattern | What it means | What I send |
|---|---|---|---|
| Champions | R4-5, F4-5, M4-5 | Recent, frequent, high-spend | Early access, perks, a real thank-you, referral ask |
| Loyal regulars | F4-5, mixed R/M | Book often, maybe not big spenders | Loyalty recognition, gentle upsell to suites |
| Big spenders at risk | R1-2, M4-5 | Spent a lot, gone quiet | Personal win-back, no blanket discount |
| Recent one-timers | R5, F1 | Just stayed once | Nurture sequence, reason for a second visit |
| Promising | R4-5, F2-3, M3-4 | Building a pattern | Encourage the third booking |
| Hibernating | R1-2, F1-2, M1-2 | Old, occasional, low-value | Low-cost reactivation or let them sleep |
Notice what is missing from that table: a column called “blast everyone the same 15% off.” That is the whole reason we did the work.
A couple of segments deserve special attention because they are where the money hides.
Big spenders at risk are the most expensive segment to ignore. These are guests who have proven they will pay you well, and they have stopped coming. A generic discount actually cheapens the relationship. What works is a personal, specific message - reference what they booked last time, the suite, the occasion - and an invitation, not a coupon. This is also where a tightened-up direct booking experience pays off, because if you do win them back, you do not want to hand a commission to an OTA on the rebound. Our take on the real cost of that commission lives in the book-direct math breakdown.
Recent one-timers are your growth engine. They just experienced you, so the memory is fresh, but one stay is not a habit. The job is to manufacture a reason for visit number two before they forget you exist. Seasonal events, a “first-time guests come back for” offer, a local angle they missed - anything specific beats “book again.”
A worked example (clearly hypothetical)
Let me make this concrete with invented numbers so you can see the shape of it. Imagine a 22-room coastal inn pulls 1,800 past guests out of the PMS. After scoring, the distribution might look like this:
- Champions: roughly 90 guests
- Loyal regulars: roughly 140
- Big spenders at risk: roughly 70
- Recent one-timers: roughly 500
- Hibernating: the long tail
Those 70 “big spenders at risk” are the headline. Even at an illustrative average past spend per stay in the high hundreds, that is a meaningful pile of revenue sitting one good email away from coming back - and it is invisible if you only ever look at the whole list at once. (To be clear: I made those numbers up to show the method. Your real distribution is the only one that matters, and you will not know it until you run your own export.)
How RFM plugs into the rest of your marketing
RFM is not a standalone trick. It is the targeting layer underneath everything else you do.
- Email and lifecycle. Your win-back, your loyalty, your post-stay sequences all get sharper when they are aimed at a segment instead of the blob. This is the heart of our content and reputation work.
- Direct-booking pushes. Your champions and loyal regulars are the warmest possible audience for a “book direct, skip the middleman” message. They already trust you. Pair RFM with a frictionless booking path and you genuinely reduce OTA dependence over time - you can read how we approach that in our book-direct conversion service.
- Paid retargeting. Upload your champions as a lookalike seed. You are telling the ad platform “find me more people like my best guests,” which beats targeting cold demographics.
- Operations. Flag champions in the PMS so the front desk knows to roll out the welcome. Data-driven hospitality is still hospitality.
And here is the connective tissue to the work I usually get hired for: RFM tells you who already loves you, but search and AI visibility decide whether new guests can find you in the first place to ever enter that funnel. The two reinforce each other. A growing pipeline of new direct guests feeds your “recent one-timers” segment, and RFM turns those one-timers into regulars. If your discovery side is weak, start with the 2026 hotel SEO starter guide and our AI visibility and AEO/GEO service, then come back and layer RFM on top.
How often to run it, and what to expect
Re-score monthly. Recency moves every single day, so a stale model quietly misfiles your at-risk guests as still-active. A monthly refresh keeps the segments honest without becoming a chore - 30 minutes once you have the spreadsheet built.
On results: I am not going to promise you a magic revenue lift, because anyone who does is selling you something. What I can tell you honestly is that targeted segments reliably outperform one-size-fits-all blasts, that win-back campaigns aimed at proven spenders are some of the highest-return marketing a hotel can run, and that the timeline is realistic - you will see signal within a campaign or two, not overnight. RFM does not create demand. It points your existing demand at the guests most likely to respond, which is a far better use of your time than another all-list newsletter nobody opens.
Start small. Export the CSV, build the three scores, name five segments, and write one genuinely good win-back email to your “big spenders at risk.” That single campaign usually pays for the whole exercise.
Where to go from here
If you want help wiring RFM into a real lifecycle program - or you would rather hand the whole guest-data-to-revenue pipeline to someone who does this for boutique hotels all day - that is exactly the kind of thing we build. Take a look at our content and reputation work, or just book a free intro call and bring your messiest guest export. I will happily talk you through what your own RFM map is likely to show before you spend a dollar.