◆ Promotions

Restaurant promo codes, and the math before the Zayos button.

Published July 2026 · Updated July 26, 2026

Quick answer

A restaurant promo code is a discount attached to a code, a rule set and an expiry. It pays for itself only when it reaches somebody who was not already ordering. Set the caps before the discount value: minimum subtotal, maximum discount, total redemptions, one per customer.

What does 20% off really cost you?

Work it on one ticket, because that is the only place a discount is real. Take a $40 order at 30% food cost. The food costs $12, so before labor and overhead you keep $28. Now take 20% off. You give away $8 and keep $20. That is a 29% cut in contribution from a single order, and to end the week where you started you need roughly 40% more orders at the discounted price.

$40
ticket
$12
food cost at 30%
$8
given away at 20% off
40%
more orders needed to break even

Change the inputs and the shape holds: a discount is cheap to announce and expensive to run, because it comes entirely out of the margin left after food cost. This is also why a free item promotion is usually kinder than a percentage. You hand over an item at your cost while the guest values it at menu price.

Why do most restaurant promotions lose money?

Because they land on the people who needed no convincing. A code sent to your whole list is read fastest by your weekly regulars, and every one of their redemptions is a straight reduction on an order you already had. The promotion looks successful because redemptions are high. The margin says otherwise.

The second reason is leakage. A code that reads WELCOME20 and carries no total cap ends up on a deals forum, and the redemptions that follow are people who were never going to pay full price. A code with a total redemption limit fails safe: it stops.

The third reason is that nobody set an end date, so a promotion quietly became the price. If the discount has been running for six months, it is not a promotion, it is your menu with different numbers on it.

Which discount type fits which job?

Percentage off

Best for a whole basket you want to grow. Its weakness is that it scales with the ticket, so a large catering style order can hand away far more than you intended. Always pair it with a maximum discount cap.

Fixed amount off

The most predictable one. $5 off is $5 off whether the ticket is $22 or $220. Pair it with a minimum subtotal so it cannot be used to buy a $6 side for a dollar.

Free delivery

Aimed at the exact hesitation that kills a checkout, not at the food price. It reads as generous while costing you a known, fixed number, and it never devalues a menu item in the guest mind.

Free item or buy one get one

The margin friendly tool, because you give away food at your cost, not at menu price. Choose an item with a low food cost and a high perceived value, and scope the offer to that item so it cannot be swapped for a steak.

What are the six settings that keep a code from going wrong?

  • A minimum subtotal. Without it, a $10 off code becomes a way to buy a drink and fries for pennies, and your average ticket falls while your order count looks great.
  • A maximum discount. Caps the worst case on any percentage promotion. The bill you did not imagine is always a large group order placed at 7pm on a Friday.
  • A total redemption limit. This is the line between a promotion and an incident. When a code escapes onto a coupon aggregator, the total cap is the only thing standing between you and a very expensive weekend.
  • A per customer limit. One redemption per customer is the sane default for anything framed as a welcome or win back offer. Leave this blank or set it to zero in a tool that allows zero, and a single account can drain the whole budget.
  • An end date. Every promotion needs a date it dies on, including the ones that worked. A permanent discount is not a promotion, it is your new price list.
  • Item scoping. Attach the offer to specific items when the point is to move a specific item. A free dessert promotion that applies to the whole menu is not a dessert promotion.

Decide the worst case cost of the code first, then set the caps so they enforce that number, then pick the discount value. Doing it in that order is the difference between a marketing budget and a surprise.

How do you run one that pays for itself?

  1. 01

    Pick one job

    Win back a lapsed customer, get a first order from somebody new, fill a dead Tuesday, or move an item you overbought. One code, one job. A promotion aimed at everybody mostly reaches the regulars who were coming anyway.

  2. 02

    Choose the discount type that fits the job

    Free delivery for checkout hesitation, a free low cost item for basket size, a fixed amount for a clean win back message, a percentage only when you want the whole basket to grow and you have capped it.

  3. 03

    Set every guardrail before you set the value

    Minimum subtotal, maximum discount, total redemptions, per customer limit, end date. Decide the worst case cost of the code and make the caps enforce that number.

  4. 04

    Send it to a named audience, not to the internet

    A code that goes to a defined list can be measured. A code printed on a public page becomes a permanent price cut the day somebody posts it to a deals forum.

  5. 05

    Judge it on incremental orders, not on redemptions

    Redemptions only prove the code worked mechanically. Compare order count and average ticket for the people who received it against the period before, then ask how many of those orders would have happened anyway. That is the number that decides whether you run it again.

How Zayos does it

How does Zayos build a promo code?

One screen, and the guardrails are fields on it rather than things you have to remember. You set a code in plain letters, numbers and hyphens, then choose the type: percentage, fixed amount, free delivery, buy one get one, or a free item. Percentages are validated between 1 and 100 so a typo cannot create a 1,000% discount.

Below that sit the caps: minimum subtotal, maximum discount, total redemptions, per customer limit, an optional list of the items the code applies to, and an end date. The per customer limit defaults to one, and redemption is enforced on the server at checkout, so it cannot be defeated by reloading the page or clearing a cookie. An active switch lets you stop a promotion instantly without deleting it, which matters when you need the record of what ran and when.

The reason all of this sits on your own ordering site is the part that decides the economics. A code you run on a marketplace is a discount you fund on an order that also pays commission, for a customer who stays theirs. A code you run on your own storefront costs you the discount and nothing else, and the customer, the email address and the next order belong to the restaurant. That is the same argument laid out in the commission free ordering guide.

Pricing is flat: $499, $599 or $699 per location per month, month to month, no setup fee. Promotions are included. Naya Grill in Pompano Beach and West Palm Beach runs direct ordering on Zayos today and keeps over $48,000 a year that used to leave as commission, on roughly 3,000 orders a month.

Promotion questions owners ask

What does 20% off actually cost my restaurant?
On a $40 ticket with 30% food cost, the food is $12 and you keep $28 before labor and overhead. Take 20% off and you give away $8, so you keep $20. That is a 29% cut in contribution from that order, and you would need about 40% more orders at the discounted price to end up where you started. Discounts are cheap to announce and expensive to run.
Why do most restaurant promo codes lose money?
Because they reach people who were already going to order. A discount handed to a weekly regular is a margin reduction with no new visit attached. Promotions pay for themselves when they are pointed at somebody who has not ordered in months, or never has, and when the code carries caps so the worst case is a number you chose in advance.
Is a marketplace promotion the same as running my own?
No. On a marketplace you usually fund the discount and still pay commission on the order, and the diner remains the marketplace customer, so winning them a second time costs you again. A code on your own ordering site costs you only the discount, and the customer record, the email address and the reorder are yours. That difference is the whole argument for direct ordering.
What promo types can I build in Zayos?
Percentage off, a fixed dollar amount off, free delivery, buy one get one, and a free item. Each one carries a code, a minimum subtotal, a maximum discount, a total redemption limit, a per customer limit, an optional list of items it applies to, an end date and an active switch you can flip without deleting the code.
Can one customer use the same code over and over?
Not unless you decide they can. In Zayos the per customer limit defaults to one redemption per customer, and the redemption is enforced server side at checkout rather than hidden in the front end, so it cannot be worked around by reloading the page or clearing a cookie.
Do promo codes cost extra on Zayos?
No. Promotions are part of the platform, not a paid module. Plans are $499 for Operator, $599 for Operator plus Marketplace and $699 for Concierge, per location per month, month to month with no setup fee. The only per order charge is the diner paid service fee of $0.99 pickup, $2.99 delivery, $0 dine in and 10% on catering, and the restaurant keeps 100% of food revenue and tips.

Before you discount, find the leak.

The free AI report shows what commissions and fees are already taking off every ticket, in about 60 seconds. No card, no call.

Also useful: online ordering best practices.