Take a $30 order at a 15% net margin. After food, labor, packaging, and delivery you keep $4.50. Run a "10% off" promo on that order and $3.00 of the $4.50 is gone. The customer saved 10%; your profit on the order dropped 67%. That is the trade behind every promo month that looks busy on the dashboard and still ends in the red.
A discount is paid in full, today, on every order
A discount is expensive for a few reasons that stack up. You fund the whole headline number, so 10% off a $30 order is $3.00 gone with no exceptions. You pay it on orders that were going to happen anyway; your Friday regulars pocket the coupon along with everyone else, and that share of the spend does nothing for you. And whatever the discount does buy is the current order, the one you already had, not the next one.
The slower cost is worse. Every discount teaches customers that your menu price is negotiable. Run 20% off often enough and full price starts to read like a ripoff, volume sags between promos, and you promo again to fix it. That loop is exactly what the big marketplaces run on their promo calendars, and the restaurant funds all of it.
Cashback moves the cost to the next order, and shrinks it
Now take the same "10%" and run it as cashback. The customer pays the full $30, so your $4.50 stays intact today. What they get back is $3.00 of credit they can only spend on a later order in your app or on your ordering site.
Two things follow. Start with breakage: not all of the credit ever gets spent. Some customers forget, some move away, some never come back, and credit nobody claims costs you $0. Loyalty programs across industries lose a meaningful share of points this way, so let's use a fairly generous 60% redemption for the math. Your expected cost on a $30 order becomes 60% × $3.00 = $1.80, against the discount's $3.00. Same number on the customer's side, 40% cheaper on yours.
The second effect matters more. Redeeming that credit isn't a refund; it's another order. To spend the $3.00, the customer comes back and buys another $30 worth. You collect $27 in cash on a ticket that still carries about $4.50 of margin, so even after the credit comes off, that order nets you roughly $1.50 — a visit the discount version never produced. You spent $3.00 and got nothing extra; you spent $1.80 and got a customer back through the door.
We'll model discount vs. cashback on your actual ticket size and repeat rate in one call.
Scale it to a month and the gap gets loud
Say you run 1,000 direct orders a month at a $30 average. The discount costs a flat $3,000. The cashback books $3,000 in liability, but only about $1,800 of it ever gets spent, and spending it means up to 600 more visits worth of orders, somewhere near $18,000 in gross revenue you can trace directly in your reports. One version is a $3,000 expense. The other is $1,800 you only pay out once a customer has proven they came back.
The usual objection is "what if everyone redeems?" Fine, run that case. At 100% redemption cashback costs the same $3.00 as the discount, except every one of those dollars arrived inside a new order from a returning customer, and that order carried its own margin. Cashback's worst case ties the discount's ordinary case and throws in the extra visits on top. There's no redemption rate where the discount comes out cheaper per order it actually generated.
That's why we make cashback the default loyalty mechanic on our platform instead of coupon codes. It works well alongside everything else you do to keep customers: a push that says "you have $4.20 waiting" beats almost any promo blast, because it's the customer's own money calling them back. We cover more mechanics and their trade-offs in our loyalty program guide.
Where discounts still win
Discounts aren't useless. They're the right tool for a first order. A new customer has no cashback balance and no reason to trust one yet, so "20% off your first app order" converts strangers better than "earn credit for later," because the stranger isn't planning a later. Discounts also earn their keep on dated inventory and on win-back offers to people who've been gone 60+ days, where the current order genuinely wouldn't happen without the nudge. So use discounts to acquire and cashback to retain. The costly mistake is aiming the acquisition tool at people you've already acquired.
Three settings decide whether cashback works
Three numbers do most of the work. On the percentage, 5% is forgettable and 20% turns into a margin problem, so 8–10% tends to be the range where a balance feels worth protecting. On expiry, 30 to 60 days works well: no expiry kills any sense of urgency, while seven days feels like a trick. The one that matters most is visibility. Keep the balance one tap away, show it at checkout, and remind people with a push before it expires. Our marketing tools send that expiry nudge automatically, and it's reliably one of the highest-converting messages a restaurant will send. Cashback the customer never sees is just a discount you postponed.
One thing to do today: pull your total discount spend from last quarter and multiply it by 0.6. That's roughly what the same generosity would have cost you as cashback, with one difference worth repeating: every redeemed dollar would have shown up attached to another order.
Cashback, wallets, expiry nudges, and the reports to prove it works — live in about two weeks.