Skip to content
Subscribe

What it costs to win a guest back

Points reduce contribution even from guests who would have returned anyway. This hypothetical restaurant example shows the return rate needed and how to test the points offer against a control.

September 22, 2026 · 16 min read

Два однакові набори білих керамічних фішок на світлій поверхні; у лівому наборі оранжевих фішок більше, ніж у правому

Loading audio…

—:—

With supply costs and wages rising, a win-back campaign can look inexpensive when you already have a guest list. But points reduce the contribution from each return order, including orders from guests who would have returned anyway. The test is whether additional visits cover the cost of those rewards.

For a points campaign, choose how long to wait after a guest’s last visit and how much the points will be worth at redemption. The calculations below assume that all campaign points are spent on a return order. A promo code needs its own calculation.

Every figure comes from a hypothetical restaurant. Use your own food cost, packaging cost, card processing fee, and return rate when applying the model.

Contribution from one return visit

Contribution is what remains from an order after variable costs. It is not net profit. Start with an average return order of $25:

Order$25.00
Food cost 32%−$8.00
Packaging−$0.70
Card fee 2% of $25−$0.50
Contribution C₀$15.80

C₀ is the contribution from a return order with no spending to bring the guest back.

How the bonus changes contribution

The guest receives points worth $6 at redemption and spends them all on a $25 return order. The dollar value describes what the points can pay for, not necessarily the number of points; that depends on the program’s terms.

Points reduce the amount due, not the cost of preparing the food. Food cost and packaging stay the same because the restaurant fulfills the whole order. The guest pays less money, and the card fee applies to that smaller amount. This example excludes other loyalty rewards. If guests earn or redeem regular points, include their cost in both C₀ and C₁.

Guest pays in money ($25 − $6)$19.00
Food cost 32% of the full order−$8.00
Packaging−$0.70
Card fee 2% of $19−$0.38
Contribution C₁$9.92

The $6 reward reduces contribution by $5.88. The twelve-cent difference is the saving on card fees for the $6 paid with points. The reward costs almost its face value.

C₁ is the order’s contribution after the reward, not the reward’s cost. Here it assumes full redemption. If some returning guests leave their points unused, average C₁ will be higher.

How many returns you need

Divide the lapsed guest segment into two equal groups. The test group receives a reminder and campaign points worth $6. The control receives neither. Any existing loyalty program can continue in both groups.

Use r₀ for the control group’s return rate, which estimates returns without the campaign. Use r₁ for the test group’s rate under the points offer used to calculate C₁. A message without points or a promo code may produce a different response.

The groups are equal in size, so contribution per guest is:

  • r₀ × C₀ in the control;
  • r₁ × C₁ in the test group.

The campaign matches or exceeds the control’s contribution when r₁ × C₁ is at least r₀ × C₀. With a positive C₁, the threshold is:

r₁ ≥ r₀ × C₀ / C₁

C₀ / C₁ is the price of the bonus in the formula: the multiplier applied to r₀ to offset the lower contribution per order. In this example, 15.80 / 9.92 ≈ 1.59: the rate must increase by more than half. This means matching the control’s contribution, not reaching break-even for the restaurant as a whole.

With a 9% baseline return rate, the threshold is 14.33%. A test group of 500 guests needs 72 returns.

When returns fall short

Suppose the campaign brings back 12% rather than the required 14.33%. The segment contains 1,000 guests, with 500 in each group:

With the reminderWithout
Guests500500
Returned12% (60 people)9% (45 people)
Contribution per return$9.92$15.80
Contribution of the half$595.20$711.00

There are a third more returns, but contribution is $115.80 lower.

At a 9% baseline, 45 of the sixty returns correspond to the number expected without the campaign, leaving 15 additional returns. This is a group-level estimate, not a way to identify which guests would have returned anyway. Each baseline-equivalent return contributes $5.88 less under the points offer.

That reduction totals 45 × $5.88 = $264.60. The additional visits contribute 15 × $9.92 = $148.80, which does not cover it. The difference is $115.80.

The panel shows how many guests returned after the campaign, but not how many would have returned without it. Estimating r₀ requires a control group that receives neither the reminder nor the campaign points.

Bonus size and days since last visit

The reward’s value changes C₁ and the required return rate. Halving the $6 bonus gives:

BonusContribution C₁C₀ / C₁Return rate needed
$6$9.921.5914.33%
$3$12.861.2311.06%

If the $3 reward still produces a 12% return rate, contribution is 60 × $12.86 = $771.60, compared with $711.00 in the control. The $115.80 shortfall becomes a $60.60 gain over the control.

A smaller reward may change the response, though. Keeping the same 12% is an assumption to test with actual guests. If the $3 reward brings back 10% instead of 12%, contribution becomes 10% × $12.86 = $1.29 per guest, versus 9% × $15.80 = $1.42 in the control. The control then contributes more.

To choose between $6 and $3, test the offers in separate randomly assigned groups and retain a control with no campaign. Check whether each offer reaches the threshold based on the control return rate r₀ before comparing the offers with each other.

The number of days since a guest’s last visit affects r₀. An early reminder may include guests who are still within their normal visit cycle and would return anyway. That raises the required rate. A 30-day cutoff is a starting hypothesis to test, not a threshold the model recommends for every restaurant.

Use dated visits from identifiable guests in the channels your test will cover. For guests with at least two visits, calculate the gaps between consecutive visits and estimate the gap that covers three quarters of guests. If that is 41 days, a 45-day cutoff can be a starting point for testing guests outside their usual cycle. Those intervals alone do not establish that every selected guest is outside their usual cycle.

The panel separates register transactions from online orders (guest record). If most guests pay at the register, use dated POS transactions. An online-only export can mistakenly classify active guests as lapsed.

A promo code has different conditions. You can restrict it by working hours for each day of the week, categories and products, minimum order value, service type, and activations per guest (promo code settings). Measure actual code use and contribution from those orders separately. The point-based C₁ and thresholds do not price a promo-code campaign.

Preparing the test in Eatery Club™

Step 1. Select the guests

For register visits, obtain dated POS transactions with guest identifiers. For online orders, start an export in Orders and retrieve the file in Export. Check for a guest identifier and order date, then calculate visit gaps using a source that covers the test audience. Do not assume the panel offers a bulk export of POS transactions.

In «Клієнти» (Clients), filter by last visit, last order, and number of orders. Check that these fields cover the same channels used to calculate the cutoff.

Step 2. Create the groups

In «Групи клієнтів» (Client groups), create “lapsed-test” and “lapsed-control”, for example. Populate both from the same list using the bulk action for adding guests to a group. Assign guests randomly: splitting alphabetically or by registration date can create groups with different characteristics and distort the comparison.

There is currently one built-in group rule, “online payment only”, so random assignment must be done manually. Support sets up more complex rules (client groups).

Step 3. Check the offer you can deliver

In Clients, select “lapsed-test”, check the guests, and use the documented bulk push action (bulk actions). If you want to test a promo code, assign an existing one through a separate bulk action.

The code is created in the ERP and appears in the panel after synchronization. A Syrve promotion needs “manual application” for an app order (promo code settings). The guide documents assignment to selected guests, but not exclusive redemption by those guests. Verify that control guests cannot use the code in your project.

Step 4. Prepare the points rule separately

In «Регулярні повідомлення» (Regular notifications), configure a Last transaction rule with Period After, the number of days, send time, and a points award action (automated notifications). The guide does not explain how to exclude the control. Keep the rule inactive while observing that group. If you activate it earlier, verify that control guests receive neither the campaign message nor its points. Otherwise, their return rate no longer estimates an untreated r₀.

The documentation covers bulk push and promo-code assignment, but not bulk points awards to selected guests. Testing the model requires points only in the test group, a control without points or a reminder, and records of returns and actual redemption. A promo code with the same face value does not measure r₁ for the points offer or validate its C₁.

Before using the calculation to justify an automated rule, check whether your project can run that points test. If not, the tables remain illustrations.

Do not substitute the last order date for the last transaction; the guide warns against this. Push delivery and points awards have separate switches. Turning off push does not stop points from being awarded.

Before launch

Complete the translations for guests’ languages. Guests will not receive a message if the translation for their language is missing.

Check the terms against the ERP, which holds cashback percentages, level boundaries, and promo codes. The panel displays and activates them. If the values differ, the app will show one set of terms while the register applies another.

The model includes bonus costs, not paid message delivery. If you use SMS or another paid channel, add the cost at your provider’s rates.

What to check after a month

  1. Compare return rates. An untreated control estimates r₀. The test group’s rate represents r₁ in this model only if it receives the same points offer. A push-only message or a promo code is a different offer with its own return rate.
  2. Calculate contribution per return order separately from order value. If returning guests spend less than other guests, the reward may consume more of the contribution and raise the threshold.
  3. Check the test group’s redemption and contribution. A points test needs guest- and transaction-level records of points awarded, points spent, and contribution from return orders. Clients widgets show project-wide totals for points awarded and spent over 30, 60, and 90 days; they do not establish the test group’s observed C₁. Treat points remaining at the end of the period as an outstanding obligation, not a permanent saving. For a promo-code test, use orders where the code was actually redeemed and their contribution. Points widgets do not measure the code’s cost.
  4. Compare average order value for the selected period. Top clients provides an average order value column and filter for 30, 60, or 90 days. Last visit is a separate filter, not a neighboring table column.

Adjust the cutoff using observed r₀. If many control guests return on their own, test another cutoff: the current one may include guests who are still on their normal visit cycle. If both groups have few returns, check sample size and observation length before concluding that the reminder came too late.

You can calculate C₀ and C₁ from your own order costs. The control estimates r₀, while a comparable points test measures r₁ and actual redemption for that offer. Together, those figures let you compare the offer’s contribution with the no-campaign alternative.


For details on Eatery Club points, levels, and segments, see the Loyalty page.

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.