A loyalty programme is a discount with a memory. If it rewards customers for orders they would have placed anyway, it gives away margin. If it changes behaviour — more frequent orders, larger baskets, a second order in the same month — it can pay for itself.
The design question is not “points or stamps?”. It is which behaviour you want to change and how much you can afford to pay for it.
| Model | How it works | Best for | Main risk |
|---|---|---|---|
| Points | Earn per currency spent; redeem for food | Broad menu, frequent orders | Liability and breakage accounting |
| Stamps | Buy N, get 1 free | Simple repeat purchase | Rewards the wrong margin item |
| Prepaid wallet | Customer tops up, gets bonus credit | Cash flow and retention | Unredeemed liability and refunds |
| Subscription | Monthly fee for free delivery or perks | High-frequency customers | Heavy users cost more than they pay |
| Tiered | Status and perks at spend thresholds | Mature customer base | Complexity and perceived unfairness |
Start with the behaviour you want
If the problem is first-to-second order, reward the second order, not the tenth. If the problem is basket size, reward a minimum spend. If the problem is frequency, reward the third order in a month. A programme that rewards everything rewards nothing in particular.
Model the margin before the mechanic
Assume a 10% reward rate on a $25 basket. That is $2.50 of cost. If the order contribution is $4, the reward consumes most of it. The programme only works if the reward changes behaviour enough to produce incremental orders, or if the reward is funded by a higher basket.
Use a simple formula: incremental orders × contribution per order must exceed reward cost + admin cost. If you cannot measure incrementality yet, start small and compare a test group with a control group.
Breakage is not free money
Unredeemed points and unused wallet balances are a liability. They improve short-term cash but must be tracked. If customers lose trust because points expire unfairly, the programme costs more than it saves. Publish clear expiry and refund rules.
Fraud controls
- One account per phone number and device where possible.
- Reward after delivery, not at order placement.
- Cap referrals and points per month.
- Review repeated refunds and new-account clusters.
- Make rewards non-transferable.
- Log every manual adjustment.
Launch a simple version first
- Pick one behaviour: second order, minimum basket or monthly frequency.
- Set a reward that costs less than the contribution you expect.
- Run it for 60 days with a test and control group.
- Measure incremental orders, basket size and redemption cost.
- Keep, adjust or stop based on contribution, not sign-ups.
What to show the customer
Make the balance visible in the app, the checkout and the receipt. Send a reminder before expiry. Show the next reward clearly: “2 more orders to a free delivery” is more motivating than a vague points balance.
See the food delivery software, the referral guide, or push notification strategy.
Loyalty mistakes
- Rewarding orders that would have happened anyway.
- Making points hard to understand or redeem.
- Ignoring the liability of unredeemed points and wallet balances.
Run a 60-day test with a control group. If incremental contribution does not cover the reward, stop or redesign it.
