Skip to content
Subscribe

Restaurant loyalty programs: reward costs and break-even visits

A worksheet for pricing points, tiers, punch cards, and targeted offers. Calculate the additional visits each reward needs and compare results with a control group.

September 24, 2026 · 30 min read

A row of eleven small ceramic cups on a pale plaster counter by a window, ten matte white and the last one glazed orange.

In a model restaurant with a $25 average order, a loyalty program offering 5% back in points costs 98 cents per visit on average when members redeem 80% of their points. That looks small against the order total. But only $15.80 remains after food, packaging, and card fees. Rewards consume 6.2% of that contribution on every member visit, including visits that would have happened without the program.

With order size unchanged, the program earns only on the visits it adds. In this model, members need to visit 6.6% more often than they would without the program for points to break even.

Points, tiers, challenges, and personalized offers reward different sets of visits, so each needs a different increase in purchases. All model figures are assumptions: replace them with your restaurant’s data in the worksheet. The two studies discussed here measured customer behavior at a university café and a convenience-store chain; they are not results from the model.

Reward costs and the break-even threshold

An order’s contribution margin is the amount left after variable costs, not net profit. For the model’s average order:

Order$25.00
Food cost, 32%−$8.00
Packaging−$0.70
Card fee, 2%−$0.50
Contribution per visit, C₀$15.80

Rent and labor are excluded. The model assumes a few more visits each week require no additional shift. If they do, include that shift’s cost per visit.

Points redeemed against a bill cost nearly their face value. The restaurant still prepares the food and receives less cash; it saves only the card fee on the amount paid in points. At a 2% fee, $1.00 in redeemed points costs $0.98. The win-back calculation shows this for a single order.

A free item can be an addition to an order or a replacement for a paid item. A $4 coffee the guest would not otherwise buy costs $1.28 in ingredients at 32% food cost. Giving it to someone who buys that coffee every morning replaces a sale and costs $3.92.

Members earn $1.25 on a $25 order at the 5% rate. If they eventually redeem 80%, each visit accounts for $1.00 in redeemed points and $0.98 in reward costs. Contribution with the program becomes C₁ = $15.80 − $0.98 = $14.82.

Let v₀ be a member’s monthly visits without the program and v₁ their visits with it. Monthly contribution is v₀ × C₀ without rewards and v₁ × C₁ with them. Every visit earns points, so rewards reduce the contribution of existing visits as well as additional ones. Before program running costs, break-even requires:

v₁ ≥ v₀ × C₀ / C₁

The ratio C₀ / C₁ = 15.80 / 14.82 = 1.066 calls for a 6.6% increase in frequency. Starting at two visits a month, the threshold rounded up to two decimal places is 2.14. For 100 members, that means at least 14 additional monthly visits; 13 leave a $3.34 shortfall. A one-time promotion such as buy one, get one also needs comparison with the same month without the promotion.

A worksheet for your restaurant’s numbers

#LineModelWhere it comes from
1Average order$25.00POS, last three months
2Variable cost per order: food, packaging, card fee$9.20POS cost of goods, packaging invoices, processor statement
3C₀ = line 1 − line 2$15.80
4Earn rate5%your program terms
5Share of points spent80%points spent ÷ points earned over 12 months; a young program understates it
6Reward cost per visit = line 1 × line 4 × line 5 × 0.98 (a 2% card fee)$0.98add every per-visit reward; spread a card’s reward over every visit it covers
7C₁ = line 3 − line 6$14.82
8Visits per member per month without the program, v₀2a comparison group, see the measurement section
9Running cost per member per month$0.50software, SMS, printed cards and staff time, divided by active members; add per-head rewards per month, such as a birthday award ÷ 12 × the share of members it reaches
10Break-even visits = (8 × 3 + 9) ÷ 72.17
11Visits per member per month with the program, v₁measurethe same comparison
12Monthly result per member = 11 × 7 − 9 − 8 × 3measure

Running costs raise the threshold from 2.14 to 2.17 visits. The 8.3% increase is measured against two monthly visits without the program, using the break-even threshold before rounding. For 100 members, 210 monthly visits produce $97.80 less than the no-program scenario; 220 produce $50.40 more. Within this model, a 5% increase fails to cover costs, while 10% yields a small positive result.

The calculation assumes prices before sales tax, points earned on the full order and redeemed against the bill, no change in average order size, and no extra labor for additional visits. In a steady month, redemptions equal 80% of points earned, with the same redemption share in every segment and tier.

Redemption changes the required increase. Before running costs, the 6.6% threshold falls to 4.9% at 60% redemption and rises to 8.4% at 100%. Including the $0.50 monthly running cost gives 6.5% and 10.1%, respectively. Adjust the relevant worksheet lines when your assumptions differ. If members place larger orders with the program, recalculate lines 1 to 7 using the new average.

Points, tiers, challenges, and personalized offers

The punch card and the second-order offer are priced without a base points program. The occasional-guest challenge and the new-member example explicitly include 5% points, while the tier is compared with the 5% rate. Each approach has its own C₁ and its own set of rewarded visits.

Points

Points are awarded on every visit by every member. The earn rate and redemption share determine the cost per visit; the most frequent guests account for the highest cost per person. Unredeemed points create no redemption cost this month but remain on the guest’s balance. The Help Center does not describe a points-expiration setting; check your program’s terms.

Tiers with higher earn rates

A tier raises the earn rate when a guest’s spending crosses a tier boundary. At 10%, reward costs double to $1.96 per visit and C₁ is $13.84. Moving up from 5% requires 7.1% more visits than before the move to break even, or 14.2% more than with no program.

For a regular making six monthly visits, the move adds $5.88 a month in costs on existing visits. It takes more than five additional visits a year to recover that cost. Check the spending period: with a lifetime tier boundary, a guest who keeps buying will eventually qualify. The push to reach the tier comes once; the higher rate stays.

In a longitudinal study, Liu (2007) tracked individual purchases by 1,000 members of a convenience-store franchise’s loyalty program. Comparisons with nonmembers used aggregate sales and transaction trends, not individual nonmember data. Initially heavy buyers were most likely to claim eligible rewards but did not change their buying behavior. Light and moderate buyers gradually bought more.

The study covers convenience stores, so treat its findings as a direction to test in a restaurant, not as proof of an effect. A working hypothesis for tiers is that a tier boundary can earn its cost only where many guests sit just below it and have a reason to reach it. Neither of the two studies tested that hypothesis.

Challenges and punch cards

A challenge pays after a target is reached, such as ten coffees or three visits in a month. There is no reward cost before completion. Once completed, it costs the same whether the guest changed their behavior or would have reached the target anyway.

At a university café offering “buy ten coffees, get one free,” Kivetz, Urminsky and Zheng (2006) measured a 20% reduction in time between purchases from the first stamp to the last. Members completed a card in 24.6 days, about 16% faster than the 29.4 days implied by the pace between their first two stamps. Purchases slowed after the free coffee, then accelerated toward the next reward. A 12-stamp card with two stamps already filled was completed faster than a standard 10-stamp card, even though both required ten purchases.

A paid $4 coffee contributes $2.64 at 32% food cost and a 2% card fee. A free coffee costs $1.28 in ingredients. Compare eleven cups consumed: without the card they contribute 11 × $2.64 = $29.04; with it, 10 × $2.64 − $1.28 = $25.12. The difference is $3.92 per card, or 35.6 cents per cup.

Break-even requires 15.6% more cups consumed, free cups included, or 5.1% more paid cups. These are different ways to count the same outcome. The free cup is already excluded from the paid count, so deducting its $3.92 again would count the cost twice.

A pastry the guest would not otherwise order uses a different calculation. At a $4 price and $1.28 cost, the gift adds 12.8 cents to each of ten coffees, all of which remain paid. The threshold is 5.1% more cups, whether counting purchases or consumption. A free coffee requires a larger increase in cups consumed: 15.6% rather than 5.1%, because an unchanged coffee habit now includes one fewer paid cup per card. Both rewards require the same 5.1% increase in paid cups. Unfinished cards reduce average reward costs in both cases.

Café participants could choose a baked good of the same price instead of coffee. Coffee accounted for 85% of redemptions, and results did not differ by reward choice. The study measured the effect of the prefilled stamps. A reward the guest would not otherwise order is worth testing as a way to lower reward costs.

Personalized offers

You choose the recipients and incur a reward cost only when they use the offer. Offers can outperform points only when recipients have room to increase their visit frequency. For your most frequent guests, an offer is mostly a discount on visits they would have made anyway.

Suppose guests whose first order was within the last 30 days receive $5 off a second order. A redeemed offer leaves $15.80 − $4.90 = $10.90 in contribution. If 30% of new guests order again within a month without an offer, break-even requires 30% × 15.80 / 10.90 = 43.5%. This assumes the offer does not move next month’s orders into this month. It is the win-back inequality applied to another group; measure the baseline among new guests who receive no offer.

“Bar” in the table below means the break-even threshold.

MechanicPaid onReward cost in the modelBar in the model
Points, 5%every member visit$0.98 a visit6.6% more visits
Top tier, 10%every visit of guests above the boundary$1.96 a visit7.1% more than at 5%
Punch card, buy 10 get 1every completed card$3.92 (free coffee) or $1.28 (pastry) a card15.6% or 5.1% more cups drunk
$5 off a second ordereach use in the chosen group$4.90 a use43.5% second orders against 30%

Measuring new guests and return visits

Line 11 needs the measured visit frequency. A report may supply that number, but it cannot by itself show how many visits the program caused.

Joining the program is not the same as visiting the restaurant for the first time. In the first months, sign-ups include existing guests, so new members outnumber new guests. Group members by sign-up month and track the share of orders from identified guests. When that share stabilizes, registrations may better reflect new guests, but stability alone does not prove that most regulars have joined.

For each monthly cohort of new members, measure the share returning within 30, 60, and 90 days. For the full base, divide monthly visits by every member who joined before the month began. Include members who stopped visiting with zero visits rather than removing them from the denominator. This keeps lost guests visible in the measure.

Frequent guests have the most reason to install the app and register, so members visit more often than nonmembers from the outset. This gap exists before any reward is issued, so it does not measure the program’s effect.

For an offer or a challenge with audience controls, randomly withhold the reward from part of the target group, as in the win-back test. Withholding points from members is harder. A multi-location team can instead launch one location at a time, comparing changes in POS transactions at launched and waiting locations over the same weeks.

That comparison requires few shared guests between the location groups and matching transaction trends before launch. Waiting locations should not lose transactions: a decline may indicate guests switching locations rather than visiting more often overall. The POS must support the program separately at each location while one app serves the brand. For a single location with neither a random control group nor a staged launch, these methods cannot separate program effects from seasonality or a new menu.

At 95% confidence and 80% power, the standard sample-size formula gives about 200 new guests per group to detect a rise from 30% to 43.5%. That tests for a change, not for break-even. Establishing that the offer exceeds its threshold requires more observations: the threshold is 1.45 times the control rate, which is also estimated. At least 420 guests per group are needed if the true rate is 55%, and about 1,300 if it is 50%.

Costs and thresholds by segment

This model has 1,000 active members. Every segment has a 5% earn rate, 80% redemption, and the same $25 average order:

SegmentMembersVisits a month eachVisits a monthPoints cost a monthShare of cost
Regulars1506900$882.0045%
Occasional guests4502900$882.0045%
Infrequent guests4000.5200$196.0010%
All members1,0002,000$1,960.00100%

Regulars make up 15% of members but account for 45% of points costs. If they redeem more than 80% while other segments remain at 80%, their cost share exceeds 45%. A top-tier visit then costs more than $1.96, reaching $2.45 at 100% redemption.

Heavy buyers claimed rewards most often in the convenience-store study. However, that study counted requests for reward certificates, not points redeemed against restaurant bills. Check redemption by segment in your own data.

Under identical assumptions, each segment needs the same relative increase of 6.6%, but different numbers of additional visits: 4.8 a year for a regular, 1.6 for an occasional guest, and 0.4 for an infrequent guest, or one visit every two and a half years. The guests who cost the most per person must add the most visits in absolute terms. That group did not change its behavior in the convenience-store study; for restaurants, this is a reason to test the segment, not a prediction.

Options to test by segment:

  • For regulars, keep a modest base rate and recognition that does not grow with each visit. Do not launch a top tier until it is priced. Doubling the rate adds $70.56 a year per regular. A $10 promo code sent quarterly to a filtered list costs up to $39.20 a year per person. Whether the two approaches retain guests equally well needs a separate test.
  • For occasional guests, set a target just above their normal frequency. Suppose 20 of 100 make a third monthly visit without a reward, and the challenge adds a $6 dessert for that visit. After points, an extra visit contributes $14.82 before the dessert, provided it does not replace a visit next month. If the dessert is an extra the guest would not buy, its cost is $1.92 and break-even needs 23 completions out of 100. If it replaces a paid dessert, its cost is $5.88 and 34 completions are needed.
  • For infrequent and lapsed guests, price a targeted offer using the win-back formula and keep a control group.
  • For genuinely new guests among new members, test the second-order offer above against comparable new guests who receive no offer. Adding 5% points raises its threshold from 43.5% to 44.8%.

Birthday rewards are priced per person, not per visit. If the rule reaches every member with a birthday in their profile, a $10 reward costs up to $9.80 per person and $9,800 a year across this base. For an infrequent guest, that exceeds the annual points cost of $5.88. Confirm the rule’s audience in your setup first.

Five ways a loyalty program looks profitable when it isn’t

  1. Attributing the member–nonmember gap to the program. It may reflect starting visit frequency and who chose to sign up. Test the effect against a comparable group receiving no reward.
  2. Counting every challenge completion as an additional purchase. Some guests would have reached the target anyway; count purchases above the comparison group’s result.
  3. Treating sign-ups as new guests. Until the identified-order share stabilizes, many new members are existing visitors.
  4. Launching a top tier without pricing it. Moving a regular from 5% to 10% adds $5.88 a month on existing visits. Calculate the additional annual visits required and test against a comparison group.
  5. Pricing rewards one at a time. Each looks affordable on its own, but a top-tier member who also finishes a punch card and receives a birthday reward collects all three. Add per-visit costs in line 6, spreading each card’s cost across all covered visits, including the free one. Put per-person gifts in line 9 as monthly costs per member.

Where to find data in Eatery Club™

Get food cost and the average order across all guests from accounting or your POS. Set loyalty tiers and cashback percentages in the ERP (the POS). Create promo codes there too, then set their limits in the panel. Enter birthday and referral program points in the panel, which also holds points and visit data for identified guests.

Rates and redemption

Tier boundaries and cashback are configured in the ERP. The panel displays tiers to guests, lists members at each tier, and provides a weekly report for download (loyalty levels). Check that the settings agree: otherwise the app displays one set of terms while the register applies another.

Widgets in «Клієнти» (Clients) show points earned and spent by month over periods from six months to three years. The table includes each guest’s current balance and lifetime points (clients).

Segments and offers

«Топ клієнти» (Top clients) filters guests by average order amount over 30, 60, or 90 days, points-accrual frequency and interval, and last visit (top clients). Clients also filters by record creation date, last visit, last order date, order count, and points spent. Record creation may not be the date a guest joined the program.

Filter and select guests in Clients to assign a promo code in bulk. Create the code in the ERP, then set its expiration, activations per guest and overall, minimum and maximum order, days and hours, restaurants, categories, and products in the panel (promo codes). The documentation does not confirm that a code assigned to a list works only for that list. Before testing, verify that control guests cannot redeem it; the «Прихований» (Hidden) flag does not guarantee this.

The client groups page, updated September 9, 2026, lists one available built-in rule: online payment only. Other groups are populated manually, or support creates a group from guest phone numbers you submit (client groups).

Challenges and birthdays

The panel’s collection promotion gives a gift after a specified number of purchases of selected products. Rules are stored in the ERP, and the gift is issued at the register using a QR code (collection promotions). The documented promotion card has no audience or date fields. Verify ERP and project support before planning a third-visit challenge, a monthly limit, or a control group.

The automated birthday rule uses the date in the guest’s profile. Its settings include a period before or after the birthday in days, a send time, and a points action to award or deduct. Push notifications are enabled separately; the push is not sent without a translation in the guest’s language (automated notifications). The documentation does not specify the audience. Confirm it in the ERP and project settings before pricing a reward for the full base.

Cohort data

Export website, app, kiosk, and QR-menu orders from «Замовлення» (Orders); the file appears in Export (export). POS transactions are separate from online orders in each guest’s record. If guests mainly pay at the register, use the POS transaction report or the number-of-transactions column in Clients.

The Help Center describes the export log’s columns, not the exported file’s, and does not specify the period covered by the transaction-count column. Build cohorts from a file containing guest IDs and order dates, or from snapshots of that column taken on the same day each month.

What to keep, restrict, or stop

  1. Fill in line 6 with all per-visit rewards, spreading each card’s cost over every covered visit, including the free one. Put per-person rewards such as birthday gifts in line 9. Line 7 gives contribution after visit rewards.
  2. Calculate the threshold: line 10 for points and tiers; the share formula for a targeted offer or a monthly third-visit challenge; the entire card, free coffee included, for a punch card.
  3. Direct challenges and offers to occasional and new guests, and fixed recognition to regulars. Compare the required increase with how much the guest can reasonably change their purchases.
  4. Measure against a group receiving no reward for at least one full visit cycle.
  5. Keep an approach when its measured result exceeds its threshold. If only one segment qualifies, restrict the offer to that segment. If none covers its cost, reduce the rate or stop the approach; move the money to the offer that cleared its threshold.

Even with a 10% increase, roughly nine in ten rewarded visits would have happened without the program. Set up the comparison group before choosing the earn rate so you can distinguish additional purchases from discounts on existing ones.


Eatery Club points, tiers, and segment settings are documented in the Loyalty Program section of the Help Center.

Published in

The latest industry stories in your inbox

Tech, cases and numbers for HoReCa. Every two weeks, no spam.

Cookies

We use cookies!

Hello! This website uses essential cookies to ensure proper functionality and analytics cookies to understand how you interact with it. Analytics cookies will be set only after your consent.

Cookie settings

Cookie usage 📢

We use cookies to ensure basic functionality of the website and to understand how you interact with it. You can enable or disable each category individually. For more detailed information about cookies and other sensitive data, please read our full Privacy Policy.