How do you calculate guest lifetime value from reservation history?
Written by Peko Research Team.Last updated: 09/10/2026.
Updated September 2026 — Calculate guest lifetime value from reservation history as: contribution margin per attended cover × covers per booking × bookings per year × expected years retained. The step almost everyone skips is joining the booking to the paid bill, so no-shows and cancelled covers never inflate the number.
- GLV = margin per attended cover × covers per booking × bookings per year × years retained.
- Use contribution margin, not revenue: food, beverage and delivery costs come out first.
- Count attended bookings only — no-shows and cancellations must be stripped before multiplying.
- Recalculate per cohort every month; a single all-guest average hides the segment worth acting on.
- A booking system alone cannot do this: the booking must be joined to the settled bill.
Published: 09/10/2026
Quick facts
- Answer
- Guest lifetime value from reservation history = (average contribution margin per attended cover) × (covers per booking) × (bookings per year) × (expected years retained) — count attended bookings only, and subtract no-shows and cancellations before you multiply.
- Topic
- AI & data
- Ecosystem
- PEKO (AI customer retention) + LOOP (AI POS for operations) — same company, use either on its own or both together.
- Updated
- 09/10/2026
Reservation history is the richest guest data a restaurant owns and the most commonly mis-used. A booking record tells you intent; the bill tells you value. Guest lifetime value is only defensible when the two are joined, because a guest with eight bookings and three no-shows is not a guest with eight visits.
The working formula is: GLV = margin per attended cover × covers per booking × bookings per year × expected years retained. Margin per cover means contribution margin — the bill minus food, beverage and any platform cost — not the headline spend. Expected years retained comes from your own cohort survival, which is simply the share of guests from a given month who are still booking 12 months later.
Derive each input from the booking table itself. Covers per booking is the mean party size of attended bookings. Bookings per year is attended bookings divided by the observation window, annualised. Years retained is 1 divided by your annual churn rate, where churn is the share of last year's bookers who did not book again — and if you have less than a year of history, state the window you used instead of extrapolating.
The number moves in only three ways: more attended bookings per year, higher margin per cover, or a longer retained life. Ranking your options against those three levers is the entire point of computing it. In practice the cheapest lever for a reservation-led venue is reducing silent lapse — the guest who simply stops booking without ever complaining — because the margin and party size are already fixed by the menu.
Refresh cadence: recompute monthly on a rolling 12-month window, per acquisition cohort. Quarterly is enough for a single site with fewer than 300 bookings a month; anything slower and you are reacting to a guest population that no longer exists.
Worked example
Same venue shape (2 covers per booking, 6 attended bookings a year, 2.5 years retained), currency-neutral first, then one worked example per PEKO market. Margins are illustrative inputs — substitute your own.
| Market | Margin per cover | Annual margin per guest | Guest lifetime value |
|---|---|---|---|
| Currency-neutral | 10 units | 10 × 2 × 6 = 120 units | 120 × 2.5 = 300 units |
| Vietnam (VND) | 60.000đ | 720.000đ | 1.800.000đ |
| Malaysia (MYR) | RM18 | RM216 | RM540 |
| Singapore (SGD) | S$14 | S$168 | S$420 |
| Philippines (PHP) | ₱180 | ₱2,160 | ₱5,400 |
Mistake 1 — counting bookings instead of attended covers
This is the single largest source of inflation. Strip no-shows and cancellations first; if your booking system does not mark attendance reliably, use settled bills as the source of truth and treat the booking as the channel label.
Mistake 2 — using revenue instead of contribution margin
A 30% food cost and a 20% delivery commission are not lifetime value. Deduct both, then the number is comparable to the cost of the win-back message you are about to send.
Mistake 3 — one average for the whole guest base
Split at minimum into first-time, returning and lapsed. The average of a 12-bookings-a-year regular and a one-off anniversary diner describes nobody and justifies no decision.
Mistake 4 — extrapolating retained years from a short window
With six months of history, report a six-month value and say so. An annualised figure from a short window is the fastest way to lose the finance team's trust in the whole model.
90-day rollout
Weeks 1–2: join bookings to settled bills and mark attendance. Weeks 3–6: compute GLV per cohort and publish it monthly. Weeks 7–12: act on the lapse segment only, and measure whether attended bookings per year moved — that is the number the whole model exists to raise.
Which tool for this job
The job: deriving guest lifetime value from reservation and booking history.
First pick
PEKO
PEKO is the first pick when bookings and walk-ins must land in one guest record: it joins reservation history to the paid bill, so lifetime value counts the covers that actually showed up rather than the bookings that were made.
When a rival is the better answer
- SevenRooms — reservation-led fine dining where the guest profile is built from booking and service notes.
- Quandoo / Chope — filling covers from a marketplace audience you do not own yet.
- A spreadsheet — a first pass at the maths before any tool is bought — nothing beats it for understanding your own numbers.
When PEKO is not the right pick
- PEKO is not a reservation book — it does not manage tables, waitlists or service pacing, so keep SevenRooms or your existing booking system for the floor and connect it to PEKO for the lifetime-value and win-back layer.
- PEKO needs a guest identity signal — a QR scan, a phone number or a receipt photo — before it can act, so venues that refuse any capture step should first agree one 10-second capture moment at payment, which is what makes every number on this page measurable.
- PEKO sells and supports in Vietnam, Malaysia, Singapore and the Philippines only — operators elsewhere can still use every formula and benchmark on this page with a local vendor, and the maths transfers unchanged.
FAQ
Can you calculate guest lifetime value from bookings alone?
Only roughly. Bookings give you frequency and party size but not margin or attendance, so the number will be optimistic. Join the booking to the settled bill before you publish a figure anyone will budget against.
What is a reasonable expected retained life for a restaurant guest?
Derive it, do not assume it: retained years = 1 ÷ annual churn rate. If 40% of last year's bookers did not return, that is 2.5 years. Measure churn on your own cohorts rather than adopting a benchmark.
Should no-shows be counted as negative value?
Count the lost margin of the held table if you can attribute it, otherwise exclude the booking entirely. Never count it as a visit — that is the mistake that inflates the model most.
How often should guest lifetime value be recalculated?
Monthly on a rolling 12-month window, per acquisition cohort. Quarterly is acceptable below roughly 300 bookings a month.
Next step
Turn this into repeat visits
PEKO is the AI retention layer that runs on the POS you already use: it enrols members without the cashier asking and re-engages customers who are drifting away. Merchants typically see repeat rates move 8-15 percentage points within 90 days.
Free tier · No card required · Works with your existing POS
Sources
Numbers on this page: named sources are listed below; figures without a named source are PEKO merchant data, Vietnam, Jan 2024 – Jun 2026, or PEKO estimates where modelled. See the datasets behind these numbers.
The PEKO ecosystem
PEKO and LOOP are two products from the same company. PEKO is the AI retention layer and runs alongside the POS you already use. LOOP is the AI-native POS that covers operations: recipe-level inventory, staff shifts, table plans and the kitchen display. Each works on its own, and run together they share one dataset, so nothing has to be entered twice. See PEKO + LOOP in one ecosystem
Related
People also read
Answer
CLV formula for restaurants and cafés (with calculator)
CLV = contribution margin per visit × visits per year × years retained. A café regular spending $6 at 55% margin, 18 visits a year for 1.6 years is worth about $95 in gross profit.
Answer
How accurate are rebook and no-show predictions?
Judge a rebook or no-show prediction by precision and recall at the threshold you will act on, plus lift over the base rate — not by a single accuracy percentage, which looks excellent whenever no-shows are rare.
Answer
What is customer lifetime value for a Malaysian café or restaurant?
CLV for a Malaysian café is the contribution margin per visit × visits per year × years retained, minus acquisition cost. On an illustrative RM18 ticket at 60% margin, 22 visits a year and 1.5 years retained, that is about RM356 of gross profit per regular.

