AURA

Restaurant Loyalty Program: What It Really Costs

A redeemed reward costs its plate cost plus the variable cost of serving it, not the menu price. This page counts earning, redemption and breakage on one closed cohort, sets the effective discount rate against member sales rather than house sales, and expresses break-even in incremental visits rather than in months.

Published
20 min read4035 words
Aura editorialAuthor

Key takeaways

  • A reward costs plate cost plus variable service cost: 8.25 PLN on a dessert priced at 24.00 PLN, which is 2.9 times less than the menu price.
  • Redemption, breakage and what is still open have to add to 100 % of one cohort: 30.0 %, 65.0 % and 5.0 % in the worked quarter.
  • The effective discount rate belongs against member sales, not house sales: 1.38 % against 186,000.00 PLN, but a flattering 0.62 % against 415,000.00 PLN.
  • Break-even is a count of visits, not a length of time: 3,954.00 PLN of program cost ÷ 11.00 PLN of contribution margin per visit = 360 incremental visits.
  • Member turnover proves nothing: members were 44.1 % of visits and spent 3.1 % more per check, and most of that predates the program.
  • Unredeemed rewards are a debt: 1,460 open rewards are 12,045.00 PLN of maximum exposure and 3,613.50 PLN of expected settlement.

A redeemed reward costs a restaurant the plate cost of what it gives away plus the variable cost of serving it — never the menu price. The program pays for itself only when the contribution margin of the visits it actually caused covers the reward cost and the program fixed cost. Member turnover proves nothing.

The mistake that breaks the whole calculation before it starts

Ask an owner what the tenth-coffee-free costs and you will hear the price on the board. That answer quietly inflates every other number on the page, because the price on the board contains margin the restaurant never paid to anybody.

Reward cost — the plate cost of the item given away plus the variable service cost of serving it. The menu price does not enter this number at all.

The first half of that definition is not ours. It belongs to the food cost page and we quote it as it stands there: "Plate cost — the costed sum of every recipe component at yield-adjusted prices, for one portion exactly as it is served." The method of costing a portion lives there — see food cost percentage.

Take the dessert this page uses as its worked example. Menu price 24.00 PLN, plate cost from the recipe card 6.80 PLN, variable service cost — paper sleeve, disposable spoon, card-fee share — 1.45 PLN. Reward cost is 6.80 + 1.45 = 8.25 PLN.

The gap is the whole argument: 24.00 ÷ 8.25 = 2.909, so the menu-price answer overstates the giveaway by 2.9 times, or 15.75 PLN per dessert. Every downstream number inherits that factor — the effective discount rate, the liability on unredeemed rewards, the extra visits the program has to produce. An owner who starts from the menu price is not being conservative; he is calculating a different business.

The menu price keeps creeping back because the guest sees it: the reward feels like a 24.00 PLN gift, and that perception is what the program is buying. Perceived value and incurred cost are two quantities sitting on the same dessert, and only one leaves your bank account.

Four kinds of reward, four different economics

"Loyalty program" is not one thing. Four common shapes differ mostly in when the cost appears and what it leaves behind on your books.

Reward typeWhat it costs the restaurantWhen the cost appearsWhat it leaves as an obligation
Percentage discount at the tillContribution lost on the discounted line: the discount times the item price, not the plate costImmediately, on the same checkNothing — settled when granted
Points that accumulateReward cost of whatever the points eventually buyLater, on redemption; possibly neverThe full balance of unredeemed points
A named free itemPlate cost plus variable service cost of that itemOn redemption, in a later period than the earningUnredeemed vouchers times the reward cost
Status or tier (priority booking, a standing perk)Recurring reward cost on every visit of every member holding the tierContinuously, growing with the tier populationAn open-ended commitment with no expiry

Read the last column first. A discount is expensive and honest: you pay now and owe nothing. Points and vouchers are cheaper per visit and harder on your accounts, pushing cost into a future period and leaving a debt meanwhile. Status has no expiry, so it never becomes breakage and never stops costing.

Note what the first row does not say. A percentage discount is the one case where the menu price is the right base: you give up revenue you would otherwise have collected, rather than handing over a plate. A one-off discount and the sales it has to add back are at how much extra sales a discount has to bring. This page is about the program: earning, redeeming, expiring, owing.

The cost of one redeemed reward: the formula

Reward cost = Plate cost of the rewarded item + Variable service cost

  • Plate cost of the rewarded item — the costed sum of every recipe component at yield-adjusted prices for one portion, PLN per portion;
  • Variable service cost — costs that appear only because this portion was served: packaging, disposables, the card-fee share, PLN per portion;
  • both terms are in PLN, so the sum is in PLN per redeemed reward.

What belongs in variable service cost and what does not

Only what moves with this one portion. The dishwasher runs whether the dessert leaves the pass or not, so its labour is not here; the paper sleeve exists because the dessert exists, so it is. Rent, the chef's salaried hours and the card fee on a bill that would have been paid anyway are not variable. Err in neither direction: an overloaded variable cost inflates the required incremental visits and gets a working program cancelled, an empty one hides a program quietly eating the contribution margin.

Where you choose the reward dish rather than the guest, choose on evidence. Which dishes are cheap to give away is a question of unit contribution and mix, answered on menu engineering.

Redemption and breakage: two shares that must add up to a hundred

Redemption rate — the share of earned rewards actually redeemed inside their validity period.

Breakage — the share of earned rewards that expire unredeemed.

100%
Redemption and breakage add up to 100 % of the rewards earned in a cohort; if they do not, some rewards are neither expired nor redeemed and are still an open liability.

Redemption rate % = Rewards redeemed ÷ Rewards earned in the same cohort × 100

  • Rewards redeemed — rewards from this cohort a guest actually took, units;
  • Rewards earned in the same cohort — rewards granted inside one earning period and followed to the end of their validity, units;
  • units divided by units is a dimensionless share; times a hundred, a percentage.

The word cohort is the whole formula. Counting this month's redemptions against this month's earnings is a ratio of two unrelated populations: what is redeemed now was earned months ago. In a growing program that ratio reads low, in a shrinking one high, and neither movement says anything about guests.

Take one earning quarter as the worked cohort. Members made 5,200 visits and the rules grant one reward every fifth visit: 5,200 ÷ 5 = 1,040 rewards earned.

30.0%
Followed to the end of the 90-day validity — 312 redeemed, 676 expired, 52 still inside their window — that is a redemption rate of 312 ÷ 1,040 × 100 = 30.0 %, breakage of 676 ÷ 1,040 × 100 = 65.0 %, and 5.0 % open.
100%
The three add to 100 %: 312 + 676 + 52 = 1,040.
5.0%
The residual 5.0 % is not rounding noise, it is money still owed.

There is no industry norm to compare those shares against, and this page will not invent one. Neither the Polish statistics office nor Eurostat collects anything about restaurant loyalty schemes: the Polish methodological glossary for trade and catering defines exactly five things about catering — establishments, restaurants, bars, catering points and revenue from catering activity — and the only place a discount appears in it is inside the definition of turnover, where sales are stated "at actual selling prices taking into account discounts, rebates and allowances — excluding value added tax (VAT)" (GUS, glossary of terms in the methodological handbook on trade and catering activity, opened 26.08.2026; the quotation is our translation of the Polish original). That is a Polish definition from a Polish publication. Discounts sit inside the revenue figure and are never reported apart from it, so there is no published redemption share, no published breakage share, and nothing to benchmark against except your own earlier cohort.

What moves redemption, and what is arithmetic rather than intelligence

Redemption is not weather. It responds to whether the guest knows the balance exists and whether anyone tells them before it expires. A reminder moves both shares at once — up on redemption, down on breakage — which is why the balance has to sit queryable in the guest record rather than on a card in a wallet, why the reminder needs a channel the guest actually reads, and why sending it on a schedule is a job for automatic messaging.

Say plainly what is happening here, because the word gets stretched: nothing on this page is artificial intelligence. Following a cohort to the end of its validity is a database query, the four formulas are arithmetic, and a reminder fired at a date is a scheduled job. The systems above collect and send; the deciding is division. Whether to build that layer or buy it ready-made is answered generally in custom automation versus ready-made SaaS.

Effective discount rate: what the program costs as a share of member sales

Effective discount rate — the total reward cost of a period expressed as a share of the net sales made to program members in that same period.

Effective discount rate % = Total reward cost in the period ÷ Net sales to members in the period × 100

  • Total reward cost in the period — redeemed rewards times their reward cost, summed over the period, PLN;
  • Net sales to members in the period — sales on checks linked to a member, net of VAT, over the same period and the same set of guests, PLN;
  • PLN divided by PLN is dimensionless; multiplied by a hundred it is a percentage.

In the worked quarter the redeemed rewards cost 312 × 8.25 = 2,574.00 PLN, and net sales on member checks were 186,000.00 PLN.

1.38%
The effective discount rate is 2,574.00 ÷ 186,000.00 × 100 = 1.38 %.

Now the denominator trap, the commonest way this number is made to look harmless.

0.62%
The same 2,574.00 PLN against the whole restaurant's net sales of 415,000.00 PLN gives 0.62 % — less than half as expensive, because guests who never see a reward have been added to the base.

The house denominator is larger by 415,000 ÷ 186,000 = 2.231 times, and the rate shrinks by exactly that factor. Only members can earn and redeem, so only member sales belong underneath.

With tax or without: name the base before you divide

Both numbers above are net of VAT, and that has to be stated next to the number every time, because the two official Polish bases are not the same base. The glossary quoted above states revenue from catering activity "including VAT", while enterprise turnover in the same document is net of VAT and net of discounts. Mix a with-tax numerator into a without-tax denominator and the rate is wrong by the tax rate alone.

A second check on the same line: reward cost enters the numerator once, on redemption, not on earning.

4.61%
Counting all 1,040 earned rewards gives 1,040 × 8.25 = 8,580.00 PLN and an effective rate of 4.61 % — more than three times the truth, because two thirds of them will expire untouched.

Earned is a liability, redeemed is a cost.

The only honest test the program can pass

Incremental visit — a visit that would not have happened without the program. It is the only kind of visit a program is entitled to claim.

Everything else on this page is bookkeeping. This is the test. A program that rewards guests who were coming anyway is a discount on existing business — a pure loss of contribution margin, however healthy the member numbers look. No method of separating the two is free of a defect. Pick one knowing what it hides:

Way of comparingWhat you need to haveHow this method deceives you
Members against non-members, same periodA guest identity on enough checks to make both groups realSelection: people who join are already the frequent ones. The gap flatters the program by however much self-selection is in it
Members before joining against the same members afterA visit history that predates each member's join dateRegression to the mean and the joining moment itself: people join right after an unusually frequent stretch
One venue with the program against one withoutTwo comparable venues, no other promotion in eitherNothing else may differ, and something always does — a road closure, a new neighbour, a new manager
A randomly withheld group of eligible guestsThe willingness to deny the reward to a random slice of members, and a large enough sliceThe only clean method and the only one that costs goodwill; small holdouts produce differences you cannot tell from noise

Recognising a returning guest is a precondition for every row of that table, and it has its own trap — the share of checks you can attach to a known person. That is the subject of returning guests and how to count them.

Why member turnover is not the program's achievement

Member turnover is the number every loyalty vendor puts on the first slide, and it means the least.

44.8%
Members generated 186,000.00 PLN of the restaurant's 415,000.00 PLN in net sales — 44.8 %.
44.1%
They made 5,200 of 11,800 visits — 44.1 %.
3.1%
Their average check is 186,000.00 ÷ 5,200 = 35.77 PLN, against 229,000.00 ÷ 6,600 = 34.70 PLN for everyone else, which is 1.031 times higher, or 3.1 %.
44.8%
Read those three lines together. "The program produces 44.8 % of our revenue" collapses at once: the members were producing most of that before they were members. "Members spend more" survives, but at 3.1 % it is a fraction of what the slide implies, and even that is contaminated by selection — the guests who agreed to carry a card came often enough for a card to be worth carrying.

Following a cohort to the end of its validity, joining a join-date to a visit history and holding out a random slice all need the visit data queryable rather than printed, which is what a reporting layer is for — and which numbers an owner actually looks at, as opposed to the ones a vendor prints, is worked through in reporting automation.

How many extra visits the program has to produce

Required incremental visits = (Total reward cost + Program fixed cost) ÷ Contribution margin per visit

  • Total reward cost — redeemed rewards times reward cost over the period, PLN;
  • Program fixed cost — what the program costs whether or not anybody redeems: subscription, printed cards, integration, staff time, PLN per period;
  • Contribution margin per visit — money left from one visit's net sales after that visit's variable costs, PLN per visit;
  • PLN divided by PLN per visit gives visits: a count, not a length of time.

The middle term is quoted, not invented. Contribution margin is defined on the break-even page and used here exactly as written there: "the money left from net sales after variable costs, available to cover fixed costs and, once they are covered, to become profit" — see the restaurant break-even point for how the per-visit figure is derived and why it drifts without anyone touching a price.

In the worked quarter the program fixed cost adds up to 1,380.00 PLN: 720.00 PLN of subscription over three months, 180.00 PLN of printed cards, 480.00 PLN of staff time. Total reward cost was 2,574.00 PLN.

30.8%
Contribution margin per visit is 11.00 PLN, which on a 35.77 PLN member check is a contribution margin ratio of 30.8 %.

So the program has to pay for (2,574.00 + 1,380.00) ÷ 11.00 = 3,954.00 ÷ 11.00 = 359.45 visits, and half a visit does not exist, so 360 incremental visits. Backwards: 360 × 11.00 = 3,960.00 PLN covers 3,954.00 PLN, while 359 × 11.00 = 3,949.00 PLN does not.

6.92%
Against 5,200 member visits, 360 is 6.92 % — roughly one member visit in fourteen had to be caused by the program for it to have been free.

Why the answer is in visits and not in months

Because a month is not a unit of anything here. Turning 360 visits into "pays back in N months" needs a claim about how often your guests come, and that claim is a guess dressed as a schedule. Two restaurants with identical arithmetic and different visit frequencies would get different payback times out of the same formula, presented as if measured. A restaurant has visits, not a subscription. So the answer stays in visits, where it is checkable against your own book.

The degenerate case: when the formula has no answer

If contribution margin per visit is zero or negative, the division is meaningless and the reading is not "an enormous number of visits" but "no number of visits". A venue losing money on the marginal visit cannot buy its way out with more marginal visits: the problem is upstream, in price, mix or variable cost, and belongs to what the owner actually keeps.

Two more ways the answer gets inflated, both from mistakes named earlier. Costing the giveaway at menu price gives 312 × 24.00 = 7,488.00 PLN and (7,488.00 + 1,380.00) ÷ 11.00 = 806.18 → 807 visits, 2.24 times the honest requirement. Counting all earned rewards instead of redeemed ones gives 906 visits, 2.52 times. Both errors point the same way: they make a working program look unaffordable and get it cancelled for arithmetic reasons rather than commercial ones.

Points already earned are a debt, not a marketing line

Outstanding liability — the reward cost of everything earned and not yet redeemed or expired: money already promised and not yet paid.

Outstanding liability = Rewards earned, unredeemed and unexpired × Reward cost

  • Rewards earned, unredeemed and unexpired — the standing balance at the close of the period across all live cohorts, units;
  • Reward cost — the per-reward figure from the first formula, PLN per unit;
  • units times PLN per unit is PLN: a stock at a point in time, not a flow over a period.

At the close of the worked quarter the live balance across all cohorts is 1,460 rewards, so the outstanding liability is 1,460 × 8.25 = 12,045.00 PLN. That is 4.7 times the 2,574.00 PLN the quarter actually spent on redemptions — which is why a program that looks cheap every month can still carry a number nobody has written down.

That 12,045.00 PLN has two honest readings and you need both. Maximum exposure is the whole 12,045.00 PLN, if every holder redeems.

30.0%
Expected settlement, at the 30.0 % redemption rate measured on your own closed cohort, is 12,045.00 × 30.0 % = 3,613.50 PLN.

Plan cash on the expectation, size risk on the maximum, and never quietly book the difference as income: breakage is not revenue, and the day you extend validity the whole balance comes back.

This is why the balance cannot live only inside a vendor's dashboard: it is a liability of your business and belongs where guest records live — which system layer holds what is worked through in CRM or ERP. To model what the balance does to cash under different validity rules before changing them, that is what an on-site calculator is for.

When a loyalty program is the wrong tool

Four situations where the arithmetic says no, and saying no is cheaper than running the program badly.

When you cannot recognise the guest. With few checks attached to a known person you cannot measure redemption by cohort, build a holdout, or tell a member visit from any other. The program still produces a dashboard, but not a number you can act on.

When contribution margin per visit is thin. Every incremental visit repays only its own contribution.

30.8%
A venue at 30.8 % needs 360 extra visits in the worked example; the same program at half that margin needs twice as many, and there is a margin below which no plausible uplift closes the gap.

When a small group carries the business. Then the instrument is segmentation and targeted attention, not a blanket earn-and-burn scheme that pays the frequent ones for behaviour you already have. Who is worth a reward is the subject of guest segmentation, and what a retained guest is worth in total is at guest lifetime value.

When the thing being fixed is not loyalty. A guest who did not come back because nobody answered the phone or the confirmation never arrived is not disloyal. That is a process gap, cheaper to close than to pay for: see follow-up automation and the restaurant-specific version, restaurant automation. What such a layer costs in general terms is set out in what process automation costs.

Frequently asked questions

How much does a free dish actually cost the restaurant?

Its plate cost plus the variable cost of serving it, and nothing else. In the worked example a dessert priced at 24.00 PLN has a plate cost of 6.80 PLN and a variable service cost of 1.45 PLN, so the reward cost is 8.25 PLN — 2.9 times less than the menu price. The difference is margin never collected and never paid out.

Is member turnover proof that a loyalty program works?

No. In the worked quarter members produced 44.8 % of net sales and 44.1 % of visits, but almost all of that existed before the program did. The only figure a program may claim is the visits it caused, and that needs a comparison group, not a member roster.

What is breakage and why does it flatter the numbers?

Breakage is the share of earned rewards that expire unredeemed — 65.0 % of the cohort in the worked example. It flatters the accounts because unredeemed rewards cost nothing today. It is not free: it is a standing promise, and a guest who earned something and received nothing is not more loyal for it.

How do I separate incremental visits from visits that would have happened anyway?

By comparison, and every comparison has a defect. Members against non-members carries selection; before and after joining carries regression to the mean; two venues are never truly comparable; a withheld group is clean but costs goodwill. Choose one, write down the defect you accept, and keep using it so the series stays comparable.

Should unredeemed points be treated as a liability?

Yes. At the close of the worked quarter the balance is 1,460 rewards at 8.25 PLN: 12,045.00 PLN of maximum exposure and 3,613.50 PLN of expected settlement at the measured 30.0 % redemption rate. Plan cash against the expectation, size risk against the maximum.

When is a loyalty program the wrong tool?

When you cannot recognise the guest well enough to measure anything, when contribution margin per visit is too thin for any plausible uplift, when a small group carries the business and needs targeting instead, or when the actual leak is an unanswered phone. All four are cheaper to fix directly.

What happens to the liability when points are never redeemed?

It converts to breakage at expiry and the obligation ends there. What it does not do is become income: nothing was sold and nothing was earned, a promise simply lapsed. Keep it out of the revenue line, and remember that extending validity or changing the rules revives the whole balance at once.

Take one earning cohort from three months ago and follow it to the end of its validity. Count what was redeemed, what expired and what is still open, multiply the redeemed count by plate cost plus variable service cost rather than by the menu price, and divide the total by your contribution margin per visit. The incremental visits that come out are the program's actual price, measured on your own guests. To assemble that arithmetic on your own data, start from the restaurant section and the guest record that has to hold the balance.

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 →