Sample result
Repeat-Visit Campaign Builder for Restaurants
The owner asked this:"The ones who come do come back, but they take a good month. I want them back sooner without giving away the weekday lunch, which already fills up, and I want to hand something to my own-delivery orders too."
① From 31 days down to 26
The house interval is 31 days. The goal lands at 26. It comes out of 12 weeks of order slips from your own delivery and of dining-room checks with a name on them: 612 people bought twice or more, and the average between one purchase and the next came to 31 days. The step is five days. Someone who comes once a month does not switch to every fortnight because of a card, and promising that would be starting with a lie.
What the step is worth: 365 over 31 is 11.8 visits a year; over 26, 14.0. That is 2.2 more visits a year per guest who already returns. Each 48,000 COP visit leaves 31,680 COP of contribution margin once the food is paid at the house rate of 34%, so the step is worth 69,700 COP a year per guest, or 13,940 COP for every day taken off the interval. Illustrative figures, built from the data you gave.
What was ruled out, and why. Tuesday-to-Friday lunch and Sunday midday fill on their own: pulling a visit forward there adds no cover, it moves the same one around and tightens the kitchen for no peso more. The redemption window landed on Tuesday to Thursday, 6:30 to 9:00 p.m., expiring at 14 days. The delivery platform was also ruled out for the reminder phase: there the phone number stays with the app, not with the house. Only the insert goes in, and the contract is worth reading before it goes to print.
| Phase | Piece | Ready copy | Sales channel | Trigger moment |
|---|---|---|---|---|
| Seed | Coded card, inside the check folder | "The house cazuela is waiting for you Tuesday to Thursday, after 6:30. That one is on us." | Dining room | On payment at lunch, Tuesday to Friday |
| Seed | Insert stapled to the order slip | "Keep this slip. Good for the cazuela de frijoles, served in the dining room, Tuesday to Thursday." | Own delivery | In every dispatched order |
| Remind | WhatsApp message, day 11 of the 14 | "On Thursday the sancocho de tres carnes comes out at half past six. Your card runs until Sunday." | Own delivery | Three days before expiry |
| Reward | The cazuela against the code, one per table | "This one is on the house, for coming back." | Dining room | Tuesday to Thursday, 6:30 to 9:00 p.m. |
② The reward, picked by its cost
The reward is not chosen by what the owner likes. It is chosen by the cost of the plate and by what already sells with no help.
| Candidate | Menu price | Cost per plate | Food cost | Verdict |
|---|---|---|---|---|
| Bandeja de la casa | 52,000 COP | 18,000 COP | 34.6% | Falls on cost, and it is a star on top of that |
| Sancocho de tres carnes | 46,000 COP | 15,600 COP | 33.9% | Falls on cost |
| Trucha al ajillo | 44,000 COP | 13,600 COP | 30.9% | Fits under 32%, but gives up a sale that was coming anyway |
| Cazuela de frijoles de la casa | 34,000 COP | 9,900 COP | 29.1% | In: the workhorse, not a star |
The finding in this table is not the reward, it is the bandeja. At 52,000 COP with 18,000 of cost it sits at 34.6%, exactly the menu average and above the 32% demanded of a plate on promotion. To fit, it would have to sell at 56,300 COP. The problem there is not the offer, it is the menu price, and the house goal is to lift the operating margin from 8% to 14% without touching that price; so the bandeja stays out of the reward until the costing sheet says otherwise.
| Item | Figure | Where it comes from |
|---|---|---|
| Incentive cost, one cazuela per table | 9,900 COP | 34,000 COP menu price at 29.1% |
| Margin of the redeeming table, two people | 63,360 COP | 96,000 COP less 34% of food |
| Margin protected after the reward | 53,460 COP | 63,360 − 9,900 |
| Hard ceiling on the incentive | 31,680 COP | margin of a single 48,000 COP visit |
| Weight of the reward on that table | 15.6% | 9,900 over 63,360 |
The returns that pay for it: 300,000 COP of printed cards and count sheets for 12 weeks —assumed until you check it against your supplier— divided by 53,460 COP gives six tables. A threshold that low is no target, and saying so matters: six tables happen without a campaign. The number that decides is the interval, and that one lives on the count sheet.
③ The two pieces of the gesture
Both come out finished: one goes to the printer, the other gets scheduled. Neither carries fine print, and both read standing up, in the five seconds it takes to sign the receipt.
| Physical, for the dining room | Digital, for your own delivery | |
|---|---|---|
| Format | 9 × 5 cm card, heavy stock, printed on one side, inside the check folder and on top of the receipt. | WhatsApp message from the restaurant's number, sent when the day's order is closed. |
| Copy | "Thank you for coming back. The house cazuela de frijoles is waiting for you Tuesday to Thursday, after 6:30, and it is on us. Bring this card. Until DD/MM." | "Doña Marta, thank you for today's order. We have the cazuela de frijoles waiting for you whenever you come into the dining room on a Tuesday, Wednesday or Thursday after 6:30. Good until DD/MM. Code SO-0412." |
| The code | Four pre-printed digits, one per card. Whoever takes payment writes the expiry by hand, in pen, in front of the guest. | It sits inside the message and is copied onto the sheet the same day, before the till is closed. |
| Who hands it over | Whoever takes payment, not whoever walks past. | The same person who confirms the order. |
| What it does not say | No percentages, no conditions, no "cannot be combined". If it has to be explained, it is badly written. | Not one link. A link turns a gesture into a promotion. |
The cashier's line, one only, so nobody improvises:
"I am leaving the cazuela open for you on a Tuesday, Wednesday or Thursday evening. You have two weeks."
And the day-11 reminder, which talks about the dish and not about the prize:
"Don Julián, on Thursday the sancocho de tres carnes comes out at half past six. Your card runs until Sunday. Shall I hold a table for two?"
Nobody owes anything here, and the copy has to sound like it. A reminder that opens with "you have not used your benefit" reads like a collection notice and gets deleted unopened.
The full example has 2 more part(s): you see them inside the library, with your account.