
Guest retention metrics in a restaurant and how to calculate them with CRM
How do you calculate the retention rate, the guest return level and the cost of retaining a guest, and use CRM analytics to grow revenue?

The question of how to measure LTV comes up when a business needs to understand a customer's value not from one purchase, but over time. Sales may grow while customers leave fast, discounts eat the profit, and ad channels bring audiences of different quality. LTV helps you compare segments, judge the ROI of acquisition and make decisions about loyalty rules.
LTV is most often calculated from CRM and loyalty program data, because that is where purchases, visit frequency, points earned and redeemed, and responses to offers are recorded. The main thing is to agree in advance what exactly you call LTV and over what period you measure it.
In practice, there are at least two useful options:
Revenue per customer for a period.
Good when you need to compare channels or segments quickly.
Customer value by margin for a period.
Good when you need to see the real profit after discounts, points and the cost of goods.
If you are just starting, it makes sense to begin with revenue per customer and, at the same time, get ready to move to the margin metric. Otherwise you can draw the wrong conclusions. For example, customers with discounts look valuable by revenue but bring little profit.
To calculate LTV correctly, this is usually enough:
customer ID (one key, no duplicates)
purchase dates and amounts
refunds and cancellations
discounts and promo codes used
points earned and redeemed
acquisition channel (if it is recorded)
location type or purchase format (offline, online, branch)
If some data is missing, you can still calculate LTV, but you should clearly state the limits. For example, if refunds are missing, the number will be too high.
LTV always depends on time. So you can't calculate it "in general". You need to choose a period:
30 days: to quickly judge a loyalty launch, welcome offers, win-back campaigns
90-180 days: to understand steady retention and repeat purchases
12 months: if the business is seasonal or the purchase cycle is long
For cafes and stores, 30/90 days is often useful. For a salon, a car repair shop or other services: 90/180 days. It is important to compare segments over the same period, or the numbers can't be compared.
The simplest option:
LTV (revenue) = the total of the customer's purchases for the period - refunds for the period
Then you can calculate the average for a segment. For example, the LTV of new customers who added the card to Wallet compared with those who didn't.
This calculation is simple, but it doesn't answer the main question: how profitable the customer is. So the next step is to move to margin LTV.
If you have data on the cost of goods, or at least on the margin by category, use this approach:
LTV (margin) = gross profit from purchases - cost of discounts - cost of points
What "cost of points" means: if points are redeemed as part of the payment, this actually lowers revenue, so it affects profit. Points that are only earned are not a cost yet, but you can count them as a future cost if you want to make forecasts.
In practice, the simplest way is:
when points are redeemed, subtract them from the result
when points are earned, track them as a separate "obligations" metric, but don't mix them with actual profit
This way LTV won't suddenly drop because of points that haven't been used yet.
If you launch ads, change the loyalty terms or add a Wallet card, the average for your whole customer base reacts late. A more accurate way is to calculate LTV by cohort: a group of customers who came in the same month or went through the same automation.
Example:
group "added a Wallet card in January"
group "did not add a Wallet card in January"
and compare their LTV for 30/90 days.
This shows what exactly changed: purchase frequency, average check, share of refunds, share of points redeemed.
Loyalty affects LTV through three levers:
Frequency: the customer comes back more often.
Average check: the customer buys more or chooses more expensive items.
Retention: the customer stays active longer.
To see what loyalty adds, it helps to calculate separately:
LTV of customers who really use the card (purchases where the card is shown)
LTV of customers who added the card but don't show it
LTV of customers without a card
This split often shows that the problem is not the rules. The problem is that the card isn't used at checkout or the data updates late.
Duplicate customers. One person is recorded as two profiles, so LTV is too low and frequency and retention are wrong.
Refunds not counted. Revenue looks higher than it really is.
Mixing discounts and points. Points were redeemed but not subtracted, so LTV is too high.
Comparing different periods. One segment is calculated for 30 days, another for 90, so the conclusions are wrong.
Looking only at the average. Rare customers with big purchases can "push up" the average. It helps to look at the median and at the split by group.
When LTV is calculated over one period and by segment, you can use it for practical decisions:
judge the ROI of acquisition by channel
choose who gets strong offers and for whom status and perks are enough
set limits on redeeming points so that retention grows and profit doesn't fall
check that a discount doesn't turn into a constant cost without more frequent purchases
understand which segments are worth winning back and which don't pay off even with incentives
How do you measure LTV if you have no data on the cost of goods?
Start with LTV by revenue and track discounts and redeemed points separately. This already gives a useful picture by segment. When you have the margin by category, you can move to margin LTV.
What period should you choose for the calculation?
Choose a period that matches the purchase cycle. For frequent purchases, 30 and 90 days are useful. For services and large checks: 90 and 180 days. The main thing is to compare everyone over the same period.
Should you count points that were earned but not redeemed?
For the actual result, it is enough to count redeemed points. You can track earned points separately as a future cost, for forecasts, but don't mix them with the actual numbers.
Why can the LTV of customers in a loyalty program be lower?
Often the reason is that discounts and points are too generous or add up with other promotions, while purchase frequency doesn't grow. LTV can also drop because of tracking errors: refunds, duplicates, update delays.
Can you calculate LTV for customers who added the card to Wallet?
Yes, and this is one of the most useful views. Compare the cohorts of those who added the card and those who didn't over the same period. Also look separately at those who really show the card when they buy.
If needed, I will continue the series with more topics around LTV: how to link LTV with CAC, how to build segments for win-back, how to check the effect of specific promotions on LTV by cohort