A gastropub in Istanbul's Kadıköy Moda district ran a daily 30% off on beer and small plates from 5pm to 7pm throughout 2025. The year-end review surprised everyone: new customer share rose from 22% to 28%, but full-price sales after 7pm dropped 14%. Net effect was +5%, but 71% of happy-hour traffic was already a returning regular. Did the campaign earn its keep — or did it just shift money from one wallet to the other?
The cannibalization trap
Cannibalization happens when discounted hours steal revenue from full-price hours rather than create incremental demand. In Moda, the 7pm–9pm window — historically the peak — fell from an average of 380 TL/table to 326 TL/table. Customers learned the routine: "let's go a bit earlier" became the new normal.
Gross margin during happy hour collapsed from 62% to 48%. Volume rose 38%, but gross profit per drink fell from 21.80 TL to 14.60 TL. The volume jump barely offset the unit-margin loss — net incremental profit was about 18,000 TL/month, far below the manager's 45,000 TL expectation.
How to actually count new customers
You cannot calculate happy hour ROI without identifying who is "new". Capturing phone numbers, loyalty IDs, or WiFi captive portal sign-ins is non-negotiable. In the Moda case, 71% of happy-hour visitors had been in the venue at least twice in the prior 90 days.
- True new customers: 142 per month
- Existing customer time-shift: 412 per month
- 30-day repeat rate of new customers: 18% (industry average 22%)
A smarter happy hour design
Reducing the discount (30% → 20%) and limiting it to specific SKUs — seasonal cocktails with strong unit margin, low food-cost plates — cuts cannibalization roughly in half. Shrinking the window (2 hours → 1 hour) preserves the volume bump while protecting gross margin.
The second lever: a "happy hour + dessert hook". Offering a 15% dessert coupon valid only after 7pm pulled some guests back into prime time. In Moda's case, post-7pm revenue recovered 9% within two months.
FAQ
Which metrics matter for happy hour ROI? True new customer count (via phone or WiFi sign-in), full-price-hour revenue change, hourly gross margin, 30-day repeat rate, and net profit per unit served.
How do I measure cannibalization? Baseline the full-price hours for 4–6 weeks before launch, then compare the same time slot after. A drop above 10% likely means the campaign is unprofitable.
What discount level works? 15–25% is the sweet spot. Anything above 30% multiplies cannibalization and erodes perceived value — guests start treating the discount as the new baseline.
Found this helpful? Share it.
Related articles
Why Digital Menus Increase Restaurant Revenue by Up to 30%
Studies show restaurants using digital QR menus see measurable increases in aver…
When a Customer Downgrades, What Happens to Old Features? — The Silent Feature-Drift Problem in SaaS
Most SaaS apps run a single line of code when a customer downgrades — but old fe…
JWT alg-confusion attack — why Supabase's HS256 → RS256/JWKS migration breaks legacy verifiers
Verifiers that never decode the JWT header are wide open to `alg=none` and alg-c…