Guest experience

Repeat guest rate: how to calculate it from your PMS and what it tells you

Repeat guest rate is the share of guests in a period who stayed before. This guide defines the metric, explains how to clean duplicate profiles, and shows how to interpret the result by channel.

  • 10 min read
  • AI Otel Editorial

AI draft · awaiting editorial review

Contents

Key takeaways

  1. A repeat guest rate means nothing without three attachments: the period, the unit counted (people or stays) and the lookback window.
  2. Counting distinct guest profiles rather than bookings gives the version a front office, sales and revenue team can act on.
  3. Duplicate profiles push the rate down and merged profiles push it up, so profile hygiene moves the number before any guest behavior changes.
  4. Guests arriving through a tour operator often cannot be identified as individuals, so that channel belongs on its own line, not inside the headline figure.
  5. We are not aware of a published benchmark for a good repeat guest rate; compare the property with its own history using the same definition.

Repeat guest rate is the share of guests in a period who had stayed at the property before. Count distinct guest profiles, not bookings, fix the period and the lookback window, merge duplicate profiles first, and state the definition whenever you quote the number.

Ask a hotel how many repeat guests it has and you will usually get a confident number. Ask what it counted, stays or people, this season or ever, and whether tour operator bookings sit inside it, and the confidence goes. The number is not wrong; it is undefined. This article gives one definition, the steps to produce it from a property management system (PMS), the profile work that decides whether the figure is trustworthy, and how to read it once it exists.

What does repeat guest rate mean in a hotel?

It is the share of guests in a chosen period who had stayed at the property before. The definition is simple; the argument is always about what counts as a guest and what counts as before.

Three different numbers travel under one name. Repeat guest rate counts distinct people. Repeat stay rate counts bookings or room nights. Repeat revenue share counts money. Each answers a different question: how many relationships the hotel holds, how much of the business is returning, and how dependent the property is on returning demand.

"Before" needs a window. You can count any prior stay ever, or only a prior stay within a fixed number of months. A window keeps the number comparable from year to year, because a stay from eight years ago and a stay from last spring should not carry the same weight in a figure you use to make decisions.

A guest who stayed twice in the same month is one repeat guest and two repeat stays. Decide which of those the report is counting, and hold that decision. Also decide what the number is not: repeat is observed behavior, not loyalty. A contract rate, a corporate agreement or an operator relationship can produce repeats with no preference involved.

Key pointThe definition to adopt

Repeat guest rate = distinct guest profiles with at least one earlier stay inside the lookback window, divided by all distinct guest profiles with at least one stay in the period. State the period and the window in the same sentence whenever you quote the figure.

Pick one definition, write it down, and print it next to the figure wherever the figure appears.

How do you calculate repeat guest rate from your PMS?

Export every stay in the period with its guest profile identifier and that profile's stay history, then count the profiles that carry an earlier stay. The counting is easy; the export and the profile matching are where the work sits.

Fix the period first (calendar year, season or rolling twelve months) and the lookback window second. Changing either later changes the answer, and quietly changing either between two reports makes them incomparable.

Pull stays, not reservations. A cancelled booking or a no-show is not a stay and must not enter the denominator. Then work at profile level: one row per distinct guest profile in the period, with a flag for whether that profile has an earlier stay inside the window. Exclude company and group profiles from the guest count, because a travel agency record is not a person.

The fields the export needs

The minimum set is: stay identifier, arrival and departure dates, guest profile identifier, profile type (individual, company, group), source or segment code, and the profile's full stay history with dates. If the system stores nationality or market on the profile, include it, because the channel and market splits later depend on it. Reconcile the exported stay count against the room-night total for the same period, so you know nothing was dropped at the export step.

How often to run it

Run the report on the same date each period. A lookback window that slides forward with each run makes two reports incomparable even when nothing else changed. Save the query or the report definition, so the next person produces the same number without rebuilding it.

ChecklistBefore you trust the figure, work through this

  • Period written down
  • Lookback window written down
  • Stays only; cancellations and no-shows excluded
  • One row per distinct guest profile
  • Company and group profiles excluded
  • Duplicates merged before counting
  • Total reconciled against room nights
  • Definition printed next to the figure

Why do duplicate guest profiles change the number?

Every duplicate splits one person into two records, so neither record shows the earlier stay and the rate falls. Merging is part of the calculation, not a cleanup task for later.

Duplicates appear in ordinary ways: a walk-in typed at the desk, an online booking with a different spelling, a middle name added, a changed phone number, a name written in two alphabets. None of these is a mistake by the desk; all of them are reasons the same person exists twice.

Merge when two or more strong identifiers agree, such as surname plus date of birth, email address or mobile number. Review by hand when only the name agrees, and never merge on name alone in a market with common surnames. A wrong merge creates a repeat guest who never existed and is hard to undo.

Merge the history, not just the record: past stays, bills and notes must follow the surviving profile, or the earlier stay disappears anyway. Keep a merge log recording which profile survived, which was folded into it, and who did it.

Watch outMerging is usually one-way

Without a log of what was merged into what, a wrong merge cannot be reversed and the guest's history is lost.

Record only what the stay needs. Identity document copies and unnecessary personal detail do not belong in a profile, and they create an obligation under data protection rules that the hotel then has to manage. For guidance on this, see what to record on a guest profile, and what never to record.

What about tour operator guests whose names you only half know?

If the hotel receives a rooming list with initials, a shared surname or a booking-level name, it cannot tell whether the person at the desk has stayed before. Those guests belong on a separate line, not inside the headline rate.

Rooming lists arrive late and change often. The name on the list may be the lead passenger or the operator's reference, not the person sleeping in the room. A group block can place a returning guest in a room under the operator's code, with no link to the profile from their earlier stay.

There are three honest options: ask the guest at check-in, match on the identity number where the law permits it, or accept that the channel cannot be measured. Do not infer repeat status from the operator's own loyalty scheme, or from the fact that the booking came from the same agency as last year. Report a second figure, repeat rate for identifiable channels only, and name the channels that are inside it.

Segment codes make the split possible. If the operator channel is coded properly at booking, the report can separate it without extra work at the desk. If segment codes are not yet set up consistently, start with how to set up segment codes for hotel market segmentation.

How do you read the rate by channel, market and room type?

A single rate hides the differences that drive a decision. Split it by the segments the hotel already uses and the pattern shows which channel brings people back and which brings bookings.

Split by segment code, source market and room type. Keep each split large enough that one guest does not move the percentage. Read each cell as a share within that segment, not as a share of all repeat guests, or the largest segment will dominate by size alone.

On many properties the direct channel is where a returning guest can be identified at all, so check the split on your own figures before drawing a conclusion. A large domestic or short-haul base may produce more repeats inside a year; the split on your own figures will show whether it does. Room type splits show whether returning guests trade up, stay in the same category or trade down.

For example, a property might see a pattern like this:

Segment (example)Guests in periodOf which had an earlier stayRepeat guest rate
Direct website1203428%
Tour operator480225%
Corporate contract904146%
Walk-in60915%
Total75010614%

These figures are invented to show the method and are not a benchmark. A table from one property is not a benchmark for another.

Who should be invited to the repeater cocktail, and how do you invite them without creating a data problem?

Invite from the same definition you report on: guests with an earlier stay who are in house tonight. The invitation is a gesture, not a data collection exercise, and the message that carries it needs a lawful basis.

The list comes from the profile flag in the system, not from memory or from who the manager happens to recognize at the desk. Decide the rule before the season: second stay, third stay, or any prior stay inside the window. A rule announced once is easier to keep than one invented per guest.

A printed card handed over at check-in avoids the messaging question entirely. A message sent before arrival may fall under electronic marketing rules, so confirm with a legal adviser whether consent is needed for the hotel's own case. Do not use the event to collect extra personal data; an attendance list is a record of who came, nothing more.

Thank the guest without publishing their name, room number or stay dates, in the room, on a board or on social media. Keep the gesture small and repeatable, because a large one-off creates an expectation the hotel has to meet every season. Treat attendance as an operational note, not as a performance target that staff are measured against.

NoteThe practice, not the legal test

Consent for commercial messages and the rules on electronic marketing should be confirmed with a legal adviser for the hotel's own case. This article describes the practice, not the law.

If a return offer is planned after the stay rather than during it, the sequence matters; see post-stay emails: thanks, invoice, review and return offer in the right order.

What does a rise or fall in the repeat rate mean, and what does it not mean?

A move means the counting changed or the mix changed, and only sometimes that guests changed. Check the counting first, then the mix, then the guest.

Counting causes: duplicates merged, a new field added to the profile, a lookback window altered, a channel newly coded, a change of staff at the desk. Mix causes: a new operator contract that added a large block of first-time guests dilutes the rate without a single guest behaving differently. Guest causes: a service failure in a past season, a price move, a renovation, a source market that stopped travelling.

Small numbers swing. A property with few guests in a period should use a rolling window rather than a monthly figure. And the rate is not a satisfaction score and not a loyalty measure: a guest can repeat and still be unhappy, and a satisfied guest can fail to return for reasons outside the hotel's control. Pair it with satisfaction and value measures before drawing a conclusion, and never set a target on the rate alone. To weigh what a returning guest is actually worth, see guest lifetime value from your own records.

What to do next

Write the definition down, run the export this week, merge the obvious duplicates, and print the definition beside the number. Once the figure is stable, split it by segment code and the same report starts telling the front office, sales and revenue teams which channel actually brings people back.

Frequently asked questions

Is a repeat guest the same as a loyal guest?

No. Repeat is observed behavior: the person stayed more than once. Loyalty is a preference the hotel cannot read from a booking record. A corporate contract or an operator relationship can produce repeats with no preference involved, so the two should be reported and discussed separately.

Should a guest who stayed twice in one month count once or twice?

It depends on the unit. In a people-based repeat guest rate the person counts once, as one profile with an earlier stay. In a stays-based rate the two stays count separately. Choose one, name it in the report, and do not switch between them when comparing periods.

Can a hotel calculate a repeat guest rate without a PMS?

Yes, from registration records and a spreadsheet, but the hard part is the same: matching the same person across two records with different spellings. Without profile identifiers the merge is manual and slower, and the result should be presented with that limitation stated.

What is a good repeat guest rate?

We are not aware of a published benchmark, and a figure from another property would not be comparable anyway, because the period, the unit and the lookback window differ. The useful comparison is the hotel against its own history, using the same definition every time.

Do guests who booked through an agency count as repeat guests?

Only if the hotel can identify the individual. When the booking arrives under an operator reference or a lead passenger name, the person cannot be matched to an earlier stay. Report that channel separately and say so, rather than guessing in either direction.

AI Otel EditorialEditorial team

Drafted with AI assistance from AI Otel’s published fact base. Not yet reviewed by an editor.

For hotels: OtelCiro.

OtelCiro, AI Otel’s hotel growth and consultancy arm, is operating today.

Talk to OtelCiroRequest a briefing