Almost every café runs promotions, and almost every café measures them the wrong way. The day feels busy, the queue is out the door, the staff are slammed — so the promotion worked, right? Not necessarily. A promotion that increases traffic but shrinks profit is a worse day disguised as a better one.
This guide gives you the one piece of math that separates a real promotional win from an expensive illusion, the offer types that actually work for a café, and a practical set of rules so your next promotion adds profit instead of quietly subtracting it.
The only promotion math that matters
A discount is not free traffic. It is margin you give away on every sale, including the sales you would have made anyway. To come out ahead, the extra volume has to more than cover that giveaway. Here is the break-even formula:
Required volume increase = discount ÷ (gross margin − discount)
Both numbers are percentages of the selling price. Gross margin is the share of the price left after the cost of goods (beans, milk, cup, lid). Café drinks are famously high-margin, which is good news — but it also means owners underestimate how much volume a discount really needs.
Worked through a few cases for a 75% gross-margin drink (a $5 latte costing about $1.25 to make):
| Discount offered | Required volume increase just to break even |
|---|---|
| 10% off | ~15% more units |
| 20% off | ~36% more units |
| 30% off | ~67% more units |
| 50% off (≈ BOGO) | ~200% more units |
And the same discounts on a lower-margin food item at 50% margin:
| Discount offered | Required volume increase to break even |
|---|---|
| 10% off | ~25% more units |
| 20% off | ~67% more units |
| 30% off | ~150% more units |
These figures are illustrative — calculate with your own cost of goods. The pattern is the point: deeper discounts and thinner margins both demand dramatically more volume.
Two lessons fall straight out of the table:
- Deep discounts are brutal. A 30%-off offer on a normal drink needs two-thirds more volume just to not lose money. To actually profit, it needs even more.
- Discount your high-margin items, not your low-margin ones. A promotion on food (lower margin) needs far more lift than the same promotion on espresso drinks.
Why “it felt busy” is a trap
Run a 20%-off morning and you will very likely sell more units. But most of those units are sales you would have made anyway — your 8am regulars do not need a discount to show up. So you have handed margin to people who were already coming, and the incremental customers you gained have to cover not just their own discount but everyone else’s too.
This is why you must measure a promotion against the counterfactual — what you would have sold without it — not against zero. The tool for that is already in your hands: your Square sales reports. Compare net sales and units during the promo window to a normal comparable period, and watch net sales, not gross. If gross sales rose but net sales (after the discounts) did not, the promotion cost you money no matter how busy it felt.
BOGO: acquisition, not a reward
Buy-one-get-one is the most misunderstood café offer. A BOGO is effectively a 50% discount spread across two items, which from the table above needs an enormous volume lift to pay for itself on margin alone. It only makes sense when one of two things is true:
- It brings a genuinely new customer (the second drink goes to a friend who has never been in, who may come back at full price), or
- It moves a slow item you would otherwise waste (day-old pastry, an over-stocked seasonal syrup).
What BOGO should not be is a reward to your existing regulars, because there you are simply halving sales you already had. As a rule: BOGO is an acquisition tool, loyalty rewards are a retention tool, and confusing the two is how cafés lose money being generous.
The five rules of a profitable café promotion
1. Target your troughs, not your peaks
Run offers during slow hours and slow days. At peak, a discount mostly gives away margin on sales you would have made anyway. During the 2–4pm lull, your rent and staff are already paid for, so an incremental sale is nearly all contribution. Your Sales-by-Time report shows you exactly where those troughs are.
2. Discount the high-margin stuff
Promote espresso drinks, brewed coffee, and add-ons before food and retail. The math rewards you for it, and a discounted drink is the perfect anchor to attach a full-price pastry — which is really an average-order-value play wearing a promotion’s clothes.
3. Cap it — by time, quantity, or audience
An uncapped offer is an open-ended liability. Box every promotion in:
- Time: “today only,” “2–4pm,” “this week.”
- Quantity: “first 50 customers,” “while supplies last.”
- Audience: members only, lapsed customers only, first-time app users only.
A capped offer creates urgency and limits the downside.
4. Prefer adding value over cutting price
A free upsize, a free extra shot, or a bonus loyalty-point multiplier often drives the same behaviour as a discount while costing you far less, because you are giving away your cheapest input (a little more milk or a few points), not your price. “Double points today” can fill an afternoon for almost nothing — and it builds the loyalty habit instead of the discount habit. That is part of why a loyalty program earns its keep where blanket discounts do not.
5. Don’t train customers to wait
The fastest way to wreck your full-price business is a predictable discount. If every Tuesday is 20% off, your regulars learn to buy on Tuesday. Keep promotions occasional, surprising, and tied to behaviour — a one-day push, a birthday reward, a win-back offer for someone who has drifted away — so you drive action without permanently lowering what people expect to pay.
How to run and measure offers on Square
Square gives you the mechanics for free: automatic discounts and coded discounts at checkout, plus Square Marketing and Square Loyalty for sending offers to customer segments. That covers the basics — a happy-hour discount, a coupon code, a points promotion.
Where built-in tools get thin is precise targeting and direct delivery. “20% off for everyone” is easy; “a push notification only to customers who have not visited in 30 days, redeemable today only” is the kind of capped, behaviour-based offer that actually protects your margin — and it needs a channel that knows who your customers are and can reach them directly.
That is the gap a branded app closes. With customers captured automatically at order-ahead and a push channel you own, you can fire a tightly-targeted, time-boxed offer at exactly the segment and exactly the slow window your reports flagged — without broadcasting a discount to people who would have paid full price. Tany builds that for independent cafés on Square: a branded iOS and Android app with self-running loyalty, push notifications, and web ordering, live in about a day for $99 CAD/month per location.
The takeaway
A promotion is not a marketing decision; it is a margin decision wearing a marketing costume. Before you run one, do the three-line check:
- What’s my real margin on the discounted item?
- How much extra volume do I need just to break even (discount ÷ (margin − discount))?
- Is this offer hitting a slow window, capped, and aimed at people who wouldn’t have paid full price anyway?
Get those three right and a promotion does what it should — fills capacity you already pay for and brings people back — instead of giving away the margin that keeps the lights on.