Skip to content
Subscribe

What it costs to win a guest back

How long to wait and how much to give

September 22, 2026 · 16 min read

Platon Sobko

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

Loading audio…

—:—

You know how to cook and you know how to run a team. For a long time that was enough. Then supply costs went up, wages went up, and the numbers became your job too, when you would rather be working on dishes people come back for on their own.

The cheapest idea in that situation is to bring back the people who have already been in. The guest list is there, the send button is there, and the bonus looks like small change.

For the campaign to make money, you have to decide two things: after how many silent days you write to a guest, and how much bonus you give. Both decisions come out of the same calculation.

Every figure below is hypothetical. I ran the numbers on a model restaurant, not on anyone’s guest base. Put in your own: food cost, packaging, card fee, and your own return rate. We start with the contribution of one return visit.

The contribution of one return visit

We work in contribution: what is left of an order after every variable cost.

Take 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

Call it C₀: the contribution of a return visit you paid nothing for.

What the bonus does to the contribution

The guest gets 6 bonus points and pays part of the bill with them. The bonus comes off the amount due, not off the kitchen: the dish is still made for the full order, so food cost and packaging do not move. Two things change — the amount the guest hands over in money, and the card fee, which is charged on that smaller amount.

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

A bonus with a face value of $6 takes $5.88 out of the contribution. The only saving is the card fee on the $6, twelve cents.

A bonus the guest spends on the bill costs you almost its face value. That is the second number, C₁. It is calculated for a guest who spends the bonus in full; if some guests never use theirs, your average C₁ is higher.

How many returns you need

Now the comparison. Take the segment of guests who stopped coming and split it in half in your head. One half gets the reminder with a bonus, the other gets nothing.

The half with no reminder will also produce returns: some of those guests were going to come anyway. Call that share r₀. Call the share of returns in the half that got the reminder r₁.

If the halves are the same size, you can compare per guest:

  • the half with no reminder brings in r₀ × C₀ per guest;
  • the half with the reminder brings in r₁ × C₁ per guest.

The campaign is worth running as long as r₁ × C₁ is not smaller than r₀ × C₀:

r₁ ≥ r₀ × C₀ / C₁

The ratio C₀ / C₁ is the price of the bonus inside the formula. With these numbers, 15.80 / 9.92 = 1.59. The campaign has to lift the return rate by more than half again just to break even.

Say the baseline share is 9%. Then you need 14.33%. On a half of 500 guests that is 72 returns.

What happens when returns fall short

Say the campaign delivered 12% instead of the 14.33% you needed. A segment of 1,000 guests, 500 in each half:

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

A third more returns, and $115.80 less money.

The breakdown inside those sixty explains it. Fifteen guests are the lift the campaign produced. Forty-five would have come anyway, and each of them brought in $5.88 less than they could have.

45 × $5.88 = $264.60. The fifteen new returns bring in 15 × $9.92 = $148.80, and the difference between those two numbers is the same $115.80.

The third number in the formula, r₀, is not in any report. The panel will show you how many guests came back after the campaign. It will not show you how many would have come back without it. Only the half of the segment you sent nothing to can tell you that.

Two levers: the size of the bonus and the day

The bonus sets C₁, and with it the bar. Cut the $6 in half:

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

The same 12% return rate with a $3 bonus gives 60 × $12.86 = $771.60 against $711.00 in the control half. Plus $60.60 where a moment ago there was minus $115.80.

One condition on that table: the response depends on the size of the bonus, and the assumption that you still get 12% can only be checked on a live guest base. If $3 brings 10% instead of 12%, the arithmetic changes: 10% × $12.86 = $1.29 against 9% × $15.80 = $1.42 per guest in a half, and the half with no reminder wins. That is why the second test is “$6 against $3”, not “campaign against silence”.

The day sets r₀. The earlier you write, the more people in the segment were coming anyway, and the higher the bar in the formula. Thirty days is the most common threshold, though its only justification is that a month has thirty days.

Your own number is in the order export. Take the guests who have been in at least twice, work out the gaps between consecutive visits, and see which gap covers three quarters of them. If that is 41 days, a threshold of 45 days leaves mostly the people who have genuinely dropped out of the cycle.

One detail about where the data comes from. In the panel, till transactions and orders from the website and the app are held separately (guest record). If most of your guests pay at the till, count the gaps from transactions, or half of your active guests will land in the lapsed segment.

You can also narrow the bonus instead of shrinking it. A promo code can be limited to working hours by day of the week, to specific categories and products, to a minimum order value, to a service type, and to a number of activations per guest (promo code settings). The same discount costs you the same on a dead Tuesday and on a Friday night, and returns something different.

How to set it up in Eatery Club

Step 1. Work out your threshold and pick the segment. The order export runs from the Orders section, and the finished file sits in Export. Use it to calculate the gaps between visits and get your own threshold in days. Then, in the «Клієнти» (Clients) section, filter by date of last visit, date of last order, and number of orders.

Step 2. Split it into two groups. In «Групи клієнтів» (Client groups) create two groups, say “lapsed-test” and “lapsed-control”, and fill them from the same list with the bulk action that adds guests to a group. Split at random: alphabetically or by registration date the groups come out different in composition and the comparison shows nothing. Know in advance that there is currently one built-in group rule, “online payment only”, so the split is manual, and more complex rules are set up by support (client groups).

Step 3. Send to the test group only. In Clients, filter by the “lapsed-test” group, tick the guests, and choose the bulk push notification from the actions list, plus a promo code if you want one. The promo code has to exist already: it is created in the ERP and reaches the panel after synchronization, and for Syrve the promotion needs “manual application” switched on, or it will not work on an order placed in the app.

Step 4. Turn the automation on after the test, not instead of it. In «Регулярні повідомлення» (Regular notifications) you create a rule of the Last transaction type, period After, the number of days equal to your threshold, a send time, and a bonus point action (automated notifications). The rule works from a date in the guest profile and has no audience selector. Switch it on during the test and it will cover your control group as well: both halves get the same bonuses and you never learn r₀. Manual test first, then automate a threshold and a bonus size you have already checked.

The instruments in those two steps are not the same. Bulk actions assign a promo code, while the rule awards bonus points. In money terms both do the same thing, they reduce what the guest pays, but keep the face value identical when you move to automation, or you will be automating something other than what you tested.

The guide to that rule warns separately against substituting the date of the last order for the last transaction. Push delivery and the bonus action are separate switches there: turning push off does not stop the points being awarded.

Fill in the translations. With no translation in the guest’s language, the message does not reach them at all. One empty language quietly cuts a whole group of guests out of the send.

Check the terms against the till. The cashback percentage, the level boundaries and the promo codes themselves live in the ERP; the panel displays and activates them. If the values drift apart, the guest sees one set of terms in the app while the till calculates by another.

The calculation above covers the bonuses only. If you add a paid channel such as SMS, add its cost at your provider’s rates.

What to check a month later

  1. The return rate in both halves. These are r₁ and r₀ from the formula.
  2. The contribution per return. Not the order value. If returning guests order more cheaply than the rest, the bonus eats a larger share of the contribution and the bar goes up.
  3. The share of bonuses actually spent. The widgets in Clients show points awarded and points spent over 30, 60 and 90 days. If not everyone spends them, your average C₁ is higher than the one you calculated, and the bar comes down with it.
  4. Average order value per guest over 30/60/90 days. It sits in Top clients, next to the date of the last visit.

Move the day threshold according to r₀. If the control half comes back too readily, you are writing to people who are in the cycle anyway and the bar for the campaign is set artificially high. If only a handful come back in either half, the threshold is too late and the guest has already found somewhere else.

The formula rests on three numbers. The contribution without a bonus and the contribution with one you can work out yourself in half an hour. The baseline return rate comes only from the control half of the segment, and until you have it, the campaign shows you how many guests came back but not what they cost you.


For how bonus points, levels and segments work in Eatery Club, see the Loyalty page.

Published in

Platon Sobko

News Editor at Eatery Club. I write about technology, software, the internet, and science

All stories by this author
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.