AURA

Guest Lifetime Value for a Restaurant

Guest lifetime value is counted in contribution margin, not revenue, and only on guests the restaurant can identify. This page carries two formulas, the identity "active years = 1 ÷ annual churn" as a built-in check, the identified-guest bias, and the ceiling the figure sets on acquisition spend.

Published
21 min read4121 words
Aura editorialAuthor

Key takeaways

  • Lifetime value is counted in contribution margin: at a ratio of 0.40 a guest producing 720.00 PLN of net sales a year brings 288.00 PLN, not 720.00 PLN.
  • Both formulas must land on one number because the identity "expected active years = 1 ÷ annual churn" holds: 80.00 × 9 × 0.40 × 2 = 288.00 ÷ 0.50 = 576.00 PLN.
  • A disagreement between the two is not an arithmetic error but a signal that the horizon and the churn rate were measured on different guest sets.
  • A gross check overstates the result by exactly the tax rate: 622.08 PLN instead of 576.00 PLN at the Polish 8 % on food-and-beverage services.
  • The figure describes identified guests only: in the worked example their check runs 1.1111 times the all-checks average.
  • The acquisition ceiling is value times the share an owner agrees to give up: 576.00 × 0.25 = 144.00 PLN, repaid over 4.5 visits.

Guest lifetime value is the contribution margin one guest brings across the whole time they keep coming back: average check net of tax, multiplied by visits per year, by the contribution margin ratio, and by the expected active years. It is a margin figure, not a revenue figure, and it is calculated only on guests the restaurant can identify.

Guest lifetime value in a restaurant: why it is counted in margin, not revenue

Guest lifetime value (LTV) — the total contribution margin one guest brings over the period they remain active.

The temptation to count it in revenue is understandable: revenue sits in the till, it is visible, nothing has to be derived. The problem is that the decision this figure exists for is not paid out of revenue. Revenue pays the supplier, the courier, the platform and the hourly waiter called in because the room was full; advertising is paid out of whatever is left.

The gap is not a rounding difference. A guest leaving 720 PLN of net sales across a year at a contribution margin ratio of 0.40 brings the restaurant 288 PLN, not 720 — so an acquisition ceiling built on revenue is overstated two and a half times. The error is quiet: both figures are real and both came out of the same till.

Three versions of the same figure, and none substitutes for another

VersionWhat goes in the numeratorWhat goes in the denominator or multiplierWhich decision it can carry
On revenueNet check × visitsActive yearsNo spending decision: this is money you do not have
On contribution marginCheck × visits × contribution margin ratioActive years or annual churnThe ceiling on acquisition and retention spend
On profit after fixed costsThe same minus a share of fixed costsThe sameValuing the business, never one guest

The third row looks strictest and misleads for exactly that reason. Fixed costs do not move with the guest: whether they came back or not the rent is the same, so charging a share of it against one guest books a cost that guest never caused. The second row carries the decision, and the rest of this page is about it. Where fixed costs do belong is set out on the page about the restaurant break-even point.

One caveat before anything else, because without it the whole page lies. Lifetime value is calculated on identified guests — those whose two visits can be tied together by a single identifier. Who counts as identified, and why repeat figures mean nothing without the identification rate, belongs to the neighbouring page on returning guests. Here those quantities are inputs, not re-derived.

The first formula: net check, visit frequency, contribution margin ratio, active years

LTV = Average check without tax × Visits per year × Contribution margin ratio × Expected active years

  • Average check without tax — net sales divided by the number of guests served, PLN per guest;
  • Visits per year — how many times an identified guest comes back within a year, visits per year;
  • Contribution margin ratio — the share of net sales left after variable costs, a decimal between 0 and 1;
  • Expected active years — how long the guest keeps returning, years.

Expected active years — how long a guest keeps returning before stopping. In a restaurant this is inferred from the guest history, never assumed.

The dimensions resolve like this: (PLN per visit) × (visits per year) × (dimensionless share) × (years) = PLN. Years cancel and money is left. The cheapest available mistake lives here too: take frequency per year and the horizon in months, and the result is overstated by exactly twelve. Both multipliers have to carry the same unit, and that is worth checking before the arithmetic starts.

The same calculation step by step

The numbers below are round and chosen purely to show where each input goes. They are not a benchmark, not an industry average and not a real restaurant: put your own in, the steps stay the same.

8%
Say an identified guest's average check is 86.40 PLN including tax and the Polish rate on catering is 8 %, so net of tax that is 86.40 ÷ 1.08 = 80.00 PLN.

The guest comes back 9 times a year, the restaurant's contribution margin ratio is 0.40, and expected active years, read off the history, are 2.

  1. Net sales from one identified guest per year: 80.00 × 9 = 720.00 PLN.
  2. Contribution margin from the same guest per year: 720.00 × 0.40 = 288.00 PLN.
  3. Lifetime value: 288.00 × 2 = 576.00 PLN.

The middle line is the one everything hangs on: 40 grosz of every zloty stays with the restaurant, and the annual 288.00 PLN is the money that pays for advertising and for bringing the guest back.

The second formula: through annual churn — and why both must land on the same number

Active years are rarely measurable head-on: to say honestly that a guest stays two years you need a history longer than two years and the patience to wait for a cohort to burn out. So the quantity has a second entrance — through the share of guests who stop coming.

Annual churn rate — the share of active guests who stop returning inside a year. It is the reciprocal of expected active years when both are measured on the same base.

LTV = (Average check without tax × Visits per year × Contribution margin ratio) ÷ Annual churn rate

  • Annual churn rate — the share of active guests who stopped returning within a year, a decimal per year.

Dimensions: (PLN per year) ÷ (1 per year) = PLN. Years cancel here too, by another route.

The identity that makes this page checkable

The two formulas give the same number exactly when this identity holds:

Expected active years = 1 ÷ Annual churn rate

This is not an approximation and not an industry rule of thumb. If a share c of the active base drops out each year, the share still active in the second year is (1 − c), in the third (1 − c) squared, and so on. The sum of that series is the expected number of active years, and it equals exactly 1 ÷ c.

Check it by counting rather than trusting. At an annual churn of 0.50 and an annual contribution margin of 288.00 PLN, lay the value out year by year:

YearShare still activeContribution margin that year, PLNRunning total, PLN
11.000288.00288.00
20.500144.00432.00
30.25072.00504.00
40.12536.00540.00
50.062518.00558.00
onwardshalves each yearhalves each yearapproaches 576.00

Summing straight down the years gives 576.00 PLN. The first formula gives 80.00 × 9 × 0.40 × 2 = 576.00 PLN, the second 288.00 ÷ 0.50 = 576.00 PLN. Three routes, one number. Expected active years come out at 1 ÷ 0.50 = 2 — not curve-fitting but the same series: 1 + 0.5 + 0.25 + 0.125 and onwards sums to exactly 2.

What a disagreement means, and why it is the most valuable thing here

Suppose the history says an average identified guest stays 3 years, while annual churn measures 0.50. The first formula gives 80.00 × 9 × 0.40 × 3 = 864.00 PLN, the second 288.00 ÷ 0.50 = 576.00 PLN. The gap is 288.00 PLN — the first figure is one and a half times the second.

Picking the more plausible one and moving on is the most expensive move available here. The disagreement is not arithmetic: both calculations are correct, and the horizon and the churn rate were measured on different sets of guests. Three causes cover nearly every case:

  1. The horizon came from a cohort, the churn from the whole base. Guests who lasted three years lasted precisely because they churned less than average — survivor selection, not a property of the base.
  2. The definitions of "active" drifted apart. If a guest counts as lapsed after 180 silent days, but the horizon was read off last-visit dates with no such threshold, the two describe different events.
  3. Different windows. Quarterly churn times four is not annual churn: a guest who lapsed and came back inside the year gets counted twice.

Bring both calculations onto one set of guests and one definition of lapsing, and the numbers reconcile themselves. The identity turns lifetime value from a number you can only take on faith into one checkable a second way. Reconciling guest sets is what analytics is for; the forward-looking half lives in forecasting.

Degenerate cases, printed rather than hidden

An annual churn rate of zero breaks the second formula: you cannot divide by zero, and expected active years are infinite. No living base has zero churn — a zero means the observation window is too short rather than that retention is perfect. A churn rate of one means the opposite: every guest comes within a single year and never returns, lifetime value equals the annual contribution margin, and the second multiplier adds nothing.

Average check in the numerator: with or without tax, and why the gap equals the tax rate

Average check per guest — net sales divided by the number of guests, PLN per guest. Cornell's Exhibit 1 labels its column "Average check (per person)", so the per-person reading is the source's own, not our gloss.

The definition belongs to the page on RevPASH and is quoted word for word. For lifetime value one clarification matters: the numerator takes the check net of tax. The tax never stays with the restaurant a day — it passes through the till on its way to the state.

Here is what happens if that step is skipped: same guest, same year, but the check taken gross gives 86.40 × 9 × 0.40 × 2 = 622.08 PLN instead of 576.00 PLN. The overstatement of 46.08 PLN equals the tax rate exactly: 622.08 ÷ 576.00 = 1.08. The error scales with the rate and nothing inside the calculation absorbs it.

That rate is a Polish one, and it does not reach catering through annex 3, as is often written.

8%
The reduced rate applies to food-and-beverage services (PKWiU 56) under art. 41 ust. 12f, and its transitional level of 8 % is set by art. 146ef ust. 1 pkt 2 (Dz.U. 2025 poz. 775, consolidated text of the Polish VAT act, announcement of the Marshal of the Sejm of 21.05.2025, opened 27.08.2026).
7%
In art. 41 ust. 2 itself the annex-3 rate is written as 7 % and explicitly excludes PKWiU 56 — citing annex 3 here would simply be wrong.

Working outside Poland, put your own rate in; the arithmetic does not change.

Published statistics are a separate trap. Official Polish catering revenue is published including tax, while this formula wants net sales; substituting one for the other overstates both the ratio and the result. Which denominator belongs to which indicator is held by the page on gross or net sales.

Contribution margin ratio, not gross margin: what changes in this particular calculation

The third multiplier breaks more often than the others: it has a lookalike neighbour sitting closer to hand and easier to compute.

Contribution margin ratio — the share of each 1 PLN of net sales left after variable costs, a decimal between 0 and 1.

The definition belongs to the page on the break-even point and is quoted word for word; this page introduces none of its own. Two of our pages defining the same denominator differently would give two answers to one problem, and the arithmetic would take the blame.

Gross margin usually stops at the cost of food and drink. Contribution margin keeps going and removes everything else that moves with volume: packaging, platform commission on delivery, the card fee, hourly staff called in because the room was busy. A restaurant with a comfortable-looking gross margin and a heavy delivery mix can have a ratio well below what its food cost suggests.

Hence a practical consequence: the ratio is a blend, not a property. You do not have "a" ratio; you have one per dish, one per channel, one per daypart, and the formula takes the weighted average at last period's mix. So a lunch-only guest is worth a different amount from a delivery guest, not because one loves the place more.

Where each multiplier comes from and how to check it

MultiplierWhere it comes fromHow to check it
Average check without taxTill: net sales for the period divided by guests servedChecks reconcile to the till report; tax removed by division, never subtraction
Visits per yearIdentified guest history: bookings, loyalty accounts, delivery addressesThe visit count is the same one that produced frequency on the neighbouring page
Contribution margin ratioAccounts: net sales minus variable costs, over net salesReconciles with the break-even calculation for the same period
Expected active yearsVisit history and the lapse thresholdEquals 1 ÷ annual churn on the same set of guests
Annual churn rateThe same history and the same thresholdEquals 1 ÷ expected active years

The right-hand column is not decoration: every line is checkable within an hour, and one will eventually save a calculation that looked healthy. How one guest's visit history ends up in a single place is covered under CRM, and which system layer to add next in the article on CRM or ERP.

The identified-guest bias: your figure describes the better part of the room

A restaurant usually does not know its guest: somebody sat down, ate, paid and left, and nothing in that sequence tells the till they were here eleven days ago. Hence something that has to be said before the number reaches a slide. Lifetime value is calculated on identified guests — those who book, order delivery or signed up for a programme: a self-selected minority, selected on a trait linked to how often people come back.

Measure the bias instead of guessing at it. Say the average net check across identified guests is 80.00 PLN and the average across all checks 72.00 PLN. The ratio is 80.00 ÷ 72.00 = 1.1111, so a value computed on identified guests is at least 1.1111 times the value of an average person in the room: 72.00 × 9 × 0.40 × 2 = 518.40 PLN against 576.00 PLN.

"At least" carries weight here. The check is not the only thing skewed: an identified guest almost always comes more often than an unidentified one, or they would never have become identified. So the second multiplier is overstated too, and by how much cannot be established from data about people you never recognised. The honest phrasing: the figure describes the identified part of the base and nobody else, and it is printed next to the identification rate, always.

What must not be done with it: multiplying the value of an identified guest by the restaurant's total guest count. The result is a sum that does not exist and it will look like a valuation. How the identification rate is measured, and which identifiers raise it, belongs to the page on returning guests.

The acquisition ceiling: how much a new guest is worth paying for

This section is what the whole page was written for: on its own, lifetime value is a handsome number on a slide, and it starts working when it becomes a ceiling.

Affordable acquisition cost = LTV × Share of LTV you are prepared to spend

  • Share of LTV you are prepared to spend — the share the owner agrees to give up to acquire one new guest, a decimal between 0 and 1.

Dimensions: PLN × dimensionless share = PLN per guest — the same unit as acquisition cost, which is the only reason the two numbers can be compared at all.

At a lifetime value of 576.00 PLN and a share of 0.25 the ceiling is 576.00 × 0.25 = 144.00 PLN per newly identified guest; at 0.20 it is 115.20 PLN, at 0.30 it is 172.80 PLN.

The share is the owner's decision, not an industry norm. No official statistics establish what portion of guest value a restaurant "should" spend on acquisition. We looked: in the Eurostat dataset catalogue the words churn, retention and loyalty do not appear once, and the word restaurant appears twice — both times the same entry, the consumer price index for hotels and restaurants. The Polish statistical office's topic page for trade and catering lists no publication on repeat visits, retention or customer value either. So no norm is quoted here; what is given is the method for computing your own.

What the share means in practice reads better in visits than in percentages. Contribution margin from one visit is 80.00 × 0.40 = 32.00 PLN, so a ceiling of 144.00 PLN is repaid over 144.00 ÷ 32.00 = 4.5 visits. That is more honest than a payback in months: a restaurant has no subscription, and a month is always an unverified assumption about frequency.

The other half — what a new guest actually costs — is held by the page on guest acquisition cost. The two numbers meet there; only the ceiling stands here, and merging them would lose both. Where these figures belong so they get used rather than recomputed once a year is dashboards; which numbers an owner actually looks at is in the article on reporting automation.

Different guests, different values: banquets, delivery and weekday lunch in one table

One number for the whole restaurant is the fastest way to a wrong decision about a channel. Same formula, different multipliers, results that diverge harder than expected.

Guest typeNet check, PLNVisits per yearContribution margin ratioAnnual churnActive yearsLifetime value, PLN
Weekday lunch42.00240.380.601.67638.40
Delivery68.00110.220.551.82299.20
Event organiser3,200.000.70.350.452.221,742.22

Every row was computed both ways and reconciled both ways. Weekday lunch: 42.00 × 24 × 0.38 = 383.04 PLN a year, then either × 1.67 or ÷ 0.60 — both give 638.40 PLN. Delivery: 68.00 × 11 × 0.22 = 164.56 PLN a year, ÷ 0.55 = 299.20 PLN. Banquet: 3,200.00 × 0.7 × 0.35 = 784.00 PLN a year, ÷ 0.45 = 1,742.22 PLN.

The table does not read the way it first looks. The lunch guest leaves the smallest check and brings twice what the delivery guest brings — not because they are more generous, but because the dining room's ratio is nearly double that of a channel carrying platform commission. No row substitutes for another, and averaging them suits a report, not a decision about a channel.

The same reasoning explains why a loyalty programme cannot be judged against an average guest value: it lifts frequency among people who came back anyway and is paid for across everyone. What retention costs is calculated on the page about loyalty programme economics; bringing a guest back after a first visit sits in automated follow-up and in the article on follow-up automation.

What this figure cannot do: it does not predict an individual person

Lifetime value is an average over a set of guests, not a property of any one of them. "This guest will bring 576 zloty" is not a statement the arithmetic supports: among the people who produced that average, half never came back after a second visit and a handful have been coming four years. It answers how much is worth spending on a guest of this kind in general, not what this person will do.

And plainly about the arithmetic. All four multipliers are ordinary calculation over your own visit history: division, multiplication and one series converging to 1 ÷ churn. There is no behavioural prediction model here and we will not claim one. Software helps in exactly one place — assembling the visit history in a single shape and recomputing the multipliers when the data moves; the decision about the share stays human.

Discounting future money is deliberately left out: over a one-to-two-year horizon it moves the answer by less than an error in the identification rate. Stretch the horizon to five years or more and discounting becomes necessary — a different calculation.

One last and very practical limit. The figure holds only while the way you identify guests stays put. Launch a loyalty programme and the identification rate rises, bringing in guests who never used to enter the base; the average identified check will almost certainly fall and lifetime value with it, although not one guest started coming less often. Only periods with the same identification method can be compared. Comparing sites across a group needs one denominator too, which is what the article on running a restaurant group is about.

Frequently asked questions

How do you calculate lifetime value for a restaurant guest?

Multiply the average check net of tax by the identified guest's visits per year, by the contribution margin ratio and by expected active years: 80.00 × 9 × 0.40 × 2 = 576.00 PLN in this page's example. Then compute it a second way — annual contribution margin over annual churn: 288.00 ÷ 0.50 = 576.00 PLN. Agreement means consistent inputs; disagreement means the horizon and the churn came off different sets of guests.

Should lifetime value use revenue or margin?

Contribution margin. Revenue pays the supplier, the courier, the platform and the hourly staff; acquisition is paid out of what survives variable costs. At a ratio of 0.40 a revenue-based calculation overstates value two and a half times, and the acquisition ceiling by exactly the same factor.

Do I take the average check with or without tax?

Without. The tax never stays with the restaurant for a day. In this page's example a check of 86.40 PLN gross becomes 80.00 PLN net at the Polish 8 % rate on food-and-beverage services, and the gross check yields 622.08 PLN instead of 576.00 PLN — overstated by exactly the tax rate.

What if I only know a small share of my guests?

Calculate on the identified ones and print the identification rate beside the result. Identified guests selected themselves on a trait linked to return frequency, and in this page's example their check runs 1.1111 times the all-checks average. Multiplying that value by the total guest count is not allowed — the product is a sum that does not exist.

How do the two lifetime value formulas relate to each other?

Through the identity "expected active years = 1 ÷ annual churn rate". If a share c leaves each year, the shares still active sum to 1 ÷ c. At a churn rate of 0.50 that is exactly 2 years, and summing contribution margin down the years — 288.00 plus 144.00 plus 72.00 plus 36.00 and onwards — converges on the same 576.00 PLN. A disagreement is not an arithmetic error but two different guest sets under two multipliers.

How much may I spend to acquire a new guest?

No more than lifetime value times the share you are prepared to give up. At 576.00 PLN and a share of 0.25 the ceiling is 144.00 PLN per newly identified guest, repaid over 4.5 visits at 32.00 PLN of contribution margin per visit. The share is the owner's decision: no official norm for restaurants is published, and this page will not invent one for you.

Calculate your own guest value both ways at once and reconcile the results. If they disagree, the data needs fixing, not the formula. The rest of the numbers a restaurant owner should be able to defend live in the restaurant economics hub, and where putting the data in order begins is covered in the article on restaurant automation.

Related services

In this section

Let us look at your numbers

Tell us how enquiries are handled today — how many there are, who picks them up, where they get lost. Aura walks the process with you and shows what can be taken off a person, and what is better left alone.

Talk to Aura

The home page with Aura opens. Give a company name — she looks at it in public data and shows what a client sees. No promises of a result.

Prefer to write? marketing@auraglobal-merchants.com

Next step

Let us check whether Aura fits your place

We do not take everyone: first we look at your processes, sales and current systems and tell you honestly whether it makes sense for us to come in. A few questions, about five minutes.

Take the assessment →