Last month, a café owner in Cubao asked me to settle a debate. Her partner wanted to run a 10% discount for repeat customers. She wanted a punch card, buy nine coffees, get the tenth free. They had been arguing about it for two weeks. Here is why she was right, with the actual math behind it and the exact threshold to pick for your own shop.
The math looks identical. It isn't.
On the surface, both cost the shop about 10%. A 10% discount takes ₱15 off a ₱150 latte every time. A 10-stamp card gives away one ₱150 coffee for nine paid ones, roughly 11% on completion. Same number on the spreadsheet.
The behavior is not the same. To see why, you need to look at three things: what the customer is being trained to do, what your real cost is (not your menu price), and how the program shifts visit frequency over 90 days.
What a 10% discount actually trains
A 10% discount is a price cut. It teaches your regulars that ₱150 is not the real price, ₱135 is. The first time you stop offering it, those customers feel the absence as a loss. They don't feel grateful for the discount; they feel cheated when it disappears.
Discounting also flattens the visit. Every coffee becomes a slightly cheaper coffee. There is no second-week pull, no third-week excitement. The customer comes when they would have come anyway, just paying less. You're paying for visits that would have happened on their own.
And there's a third effect that owners always miss: a permanent discount erodes your right to ever raise prices. When inflation hits and you need to push the latte from ₱150 to ₱165, your discounted regulars see ₱148 on the receipt and grumble. Your full-price walk-ins see ₱165 and shrug. The customers you trained to expect a deal are the loudest critics of every price move you make.
What a punch card actually trains
A punch card has a finish line. The customer can see it. Visit 3 of 10 looks different from visit 9 of 10, and the closer they get, the more pull the reward exerts. Behavioral economists call this the goal-gradient effect. People speed up as they approach a visible reward.
By the time the customer redeems, the shop has logged nine paid visits, visits that often would not have happened without the card, because there was no reason to come back this week instead of next. The free coffee on visit 10 isn't the prize. The eight extra visits on the way are.
The other thing punch cards do quietly: they restore your right to charge what you charge. The price on the menu stays ₱150. The customer pays ₱150. The reward is something separate, something earned, not a discount that's owed. When you raise prices, regulars don't feel betrayed because the price was always the price.
Side-by-side: the COGS table
Here is the same customer over 10 visits, modeled two ways. Café numbers: ₱150 menu price, ₱40 cost of goods sold (beans, milk, cup, lid, the labor minute that pulls the shot).
| 10% discount | 9-buy, 10th free | |
|---|---|---|
| Visits | 10 | 10 |
| Revenue per visit | ₱135 | ₱150 (₱0 on visit 10) |
| Total revenue | ₱1,350 | ₱1,350 |
| COGS per visit | ₱40 | ₱40 |
| Total COGS | ₱400 | ₱400 |
| Total gross profit | ₱950 | ₱950 |
| Lift in visit frequency | ~5% | ~38% |
| Adjusted 90-day revenue | ₱1,418 | ₱1,863 |
On the unadjusted line, both programs come out the same. ₱950 of gross profit per cycle. But repeat-visit data tells a different story. Customers on a punch card visit roughly 38% more often than customers without one. Apply that to the same 10-visit cycle and the punch card delivers ₱513 more revenue per customer over 90 days.
One regular over a year, that's ₱2,000 of additional contribution. Across 100 regulars, ₱200,000. Across the same number of customers running a discount instead, ₱68,000. The "same" 10% costs you nothing on paper and three quarters of your retention upside in practice.
Where to set the threshold
Match the threshold to your average visit frequency. If a regular comes every 10 days, a 10-stamp card maps to about 100 days. That's long enough to lock in habit, short enough that finishing feels possible. The reward at the end has to feel reachable. If it doesn't, the card stops mattering after week three.
Three reference points based on what we see across 200+ Filipino shops:
| Business type | Avg ticket | Stamps to reward | Reward example |
|---|---|---|---|
| Café (specialty) | ₱150–250 | 9 buy, 10th free | Free signature drink |
| Boba / milk tea | ₱120–180 | 9 buy, 10th free | Free large with toppings |
| Salon (express services) | ₱350–800 | 5 visits, 6th 50% off | Half-price service |
| Salon (full services) | ₱1,500+ | 4 visits, 5th free add-on | Free brow shape with cut |
| Restaurant (casual) | ₱400–600 | 9 visits, 10th free meal | Free entree under ₱400 |
| Pet groomer | ₱600–1,200 | 5 grooms, 6th free | Free wash + nail trim |
| Yoga / pilates studio | ₱500–800/class | 10 classes, 11th free | Free drop-in class |
When a discount actually wins
Discounts are not always wrong. Three situations where they outperform a punch card:
- Inventory clearance. Perishables, seasonal stock, end-of-day pastries. Discount converts faster because the customer doesn't have to come back. They just have to buy now. Punch cards are about repeat behavior; discounts are about right-now decisions.
- One-time promotions tied to an event. "20% off all services this Friday for our 5th anniversary." That's not a loyalty mechanism, it's an event marketing tool, and it works for the day it's open. Don't make it permanent.
- Senior or PWD legal discounts (in the Philippines). These are required by law (RA 9994 / RA 10754). Run them properly, separate from any loyalty program. Don't let the legal discount confuse the loyalty math.
The thing that distinguishes these three from the "10% off for repeats" idea is that they're bounded. They have a clear end (inventory gone, event over, qualifying ID required). The toxic version of discounting is the unbounded "loyal customer discount" that quietly becomes the new floor price.
A 30-minute audit you can run today
If you already have a discount program running and you suspect it's underperforming, here's the audit. It takes about 30 minutes with a notebook and your sales data.
- Pull your top 20 customers by visit count over the last 60 days. Most POS systems let you sort by visit. If yours doesn't, eyeball the receipts.
- Calculate average days between visits for each. Add them, divide by 20. Call this
D. - Multiply
Dby your candidate stamp count. If you're considering a 10-stamp card andD= 9 days, that's a 90-day card. Good. - If the answer is over 120 days, lower the stamp count or pick a smaller reward. Few people finish a 4-month card. Most finish a 3-month one.
- If the answer is under 30 days, raise the count or pick a larger reward. The reward should feel earned. Free coffee after 5 visits at a daily-regular café feels too easy. Free pastry + drink combo, or a 12-stamp card to a free signature drink, hits better.
Action items for this week
- If you're running a permanent discount, end it. Pick a final-day announcement, send a friendly note, and switch.
- Calculate your
D(avg days between visits for top 20 customers). - Set a punch-card threshold of
90 / Dstamps, rounded down to a clean number. - Pick a reward that feels worth the wait at full menu price (your hero item, not a leftover).
- Print 100 cards or share the digital link. Don't agonize over the design. Get it in customers' hands by Friday.
The reason punch cards beat discounts is not that they cost less. They cost the same. They beat discounts because they get the customer to come back nine extra times to redeem the prize. Math you can put in front of your accountant. Behavior you can see in your front door.