Pizza Shop Marketing: Fill Slow Nights With AI-Written Offers

Coding Liquids tutorial cover featuring Sagnik Bhattacharya for Pizza Shop Marketing: Fill Slow Nights With AI-Written Offers.
Coding Liquids tutorial cover featuring Sagnik Bhattacharya for Pizza Shop Marketing: Fill Slow Nights With AI-Written Offers.

Find your slow nights in your order data, work out what an average order leaves after food, packaging and card fees, then have AI write offers that add value rather than cut price, such as a free side with a large pizza. Check each offer's break-even sum by hand and run it for two weeks.

Lists of twenty slow-night ideas are everywhere, and the ones built on percentage discounts lose money for a reason the list rarely mentions. An order that leaves $21.10 after food, packaging and card fees leaves about $15 once the price is cut by 20%. To make up the gap you need roughly 41% more orders, which a quiet Tuesday rarely delivers. AI is useful here as a fast writer and a patient calculator, so long as it is told to show every sum and never to forecast demand.

Follow me on Instagram@sagnikteaches

Find the slow nights in your own order data

Pull a recent eight weeks of orders and total them by weekday, together with the staffed hours you scheduled each day. If you have already built the weekday table for planning dough, the one in the tutorial on planning dough and toppings from weekend orders gives you the same numbers. Illustrative figures for one week:

Connect on LinkedInSagnik Bhattacharya
DayOrdersStaffed hoursOrders per staffed hourContribution before labour
Monday33103.3$696
Tuesday41104.1$865
Wednesday47104.7$992
Thursday66144.7$1,393
Friday128225.8$2,701
Saturday151246.3$3,186
Sunday92165.8$1,941
Week5581065.3$11,774

Monday to Wednesday bring 121 of 558 orders, 22%, on 30 of 106 staffed hours, 28%. Those are the nights to fill. The last column uses the average order worked out in the next section, so it is a guide to what is at stake, not a bank statement. The point of measuring orders per staffed hour is that on these nights the staff are on shift anyway. An extra order costs you food, packaging and card fees, and not extra labour, unless it means another driver for an hour; if it does, subtract that.

Subscribe on YouTube@sagnikteaches

What an order leaves you with, before labour

Take a direct order averaging $32.00. Food and packaging on it come to $9.80, from your recipe and packaging costs. Card fees come to about $1.10: Square's published rates work out at roughly $0.98 on a $32 in-person order (2.6% plus 15 cents) and $1.36 online (3.3% plus 30 cents on its Free plan), so $1.10 is a fair blend, and your own statement will give the true figure. That leaves $32.00 minus $9.80 minus $1.10, which is $21.10. Call that the contribution: what each order contributes towards labour, rent and profit.

The same order through a delivery marketplace looks different. As of October 2026, DoorDash's merchant pricing page lists commission of 15%, 25% or 30% of the subtotal for delivery on its Basic, Plus and Premier plans, says there is no separate payment processing fee, and gives 6% for pickup. On the 25% plan, the $32 order leaves $32.00 minus $9.80 minus $8.00, which is $14.20, against $21.10 direct. Now add a 20% discount you fund. DoorDash's promotions page says commission is applied to the order subtotal less discounts, so the order leaves $25.60 minus $9.80 minus $6.40, which is $9.40, and you need 51% more orders to break even, against 41% on a direct order. That is before the DoorDash Marketing fee, which the same page adds to the cost of every promoted order without giving a figure, so read your own agreement before you fund any offer on an app. The tutorial on delivery app commission and menu prices goes further into that choice.

The break-even test every offer must pass

Every offer does two things. On an order you would have had anyway, it costs you money. On a new order, it still earns you something. The test is how many new orders you need to cover the cost on the old ones. The sum is short: the cost of the offer on an order you would have had anyway, divided by the contribution of an order that uses it. A $6.18 cost against a $14.92 contribution is 41%. Here is that test on five offers, using the $21.10 order above:

OfferWhat the customer seesContribution on an order that uses itCost on an order you would have had anywayExtra orders needed to break even
20% off direct orders$6.40 off a $32 order$14.92$6.1841%
Free garlic bread with any large pizza$5.50 free$20.05$2.3912%
$2 off, collected before 6:15 pm$2 off$19.17$1.9310%
Family bundle at $32 (worth $39)$7 saving$19.65$1.457%
$4 voucher in the box, Monday to Wednesday$4 off the next order$17.24$3.8622%

Three details make these numbers honest. First, the garlic bread costs you $1.05 to make and box, but it is not free to give away: if 3 in 10 of your large-pizza orders already include one, the average cost of the offer is 0.3 times $5.50 plus 0.7 times $1.05, which is $2.39, not $1.05. Second, the discount lowers card fees slightly, which is why a $6.40 discount costs $6.18. Third, the bundle's cost is measured against an average order, since customers trade up into it; if your regulars would have bought the same items at full price, the bundle costs $6.76 an order and the hurdle rises from 7% to 34%.

The test bites hardest where margins are thin. Suppose another shop's food and packaging cost $12.20 on the same $32 order, so its contribution is $18.70. The 20% discount now leaves $12.52 and still costs $6.18, so it needs 49% extra orders. The free garlic bread leaves $17.65 and costs the same $2.39, so it needs about 14%. The gap between a price cut and a giveaway widens as the margin narrows, which is why a shop with a thinner margin should be more suspicious of percentage discounts, not less.

Read the last column as a hurdle. A 20% discount needs 41 extra orders for every hundred you take now, a free garlic bread about 12. On a night that takes 41 orders, the first needs 17 more, the second 5. Set your own rule before the AI writes anything, for example: flag any offer that needs more than 25% extra orders. Here that rule rejects the 20% discount and leaves the $4 voucher borderline. The tutorial on setting a bundle discount that still clears your margin gives the same test for bundles in more detail.

A prompt that returns offers with the sums shown

Give the tool your numbers and forbid it to forecast. Without that instruction, it is likely to produce confident uplift figures that no one can check:

You are helping a pizza shop write slow-night offers and check their margin. Use only the numbers below.

SHOP NUMBERS
- Average direct order: $32.00
- Food and packaging on an average order: $9.80
- Card fees on an average order: $1.10
- Staff are on shift anyway Monday to Wednesday, so ignore labour
- Garlic bread sells for $5.50 and costs $1.05 including packaging
- Medium pizza food and box: $4.55; large: $5.90
- 30% of orders with a large pizza already include garlic bread
- Nights to fill: Monday to Wednesday, 4 pm to 8 pm

TASK
Write five offers. For each give:
1. The offer line a customer would read.
2. Exclusions: sizes, channels, one per order, collection only, hours, not combinable.
3. Contribution per order with the offer.
4. What the offer costs on an order I would have had anyway.
5. Extra orders needed to break even (cost divided by contribution).
Show every sum on its own line.
Do NOT predict how many extra orders the offer will bring. Do not use percentage margin as the test.
Flag any offer that needs more than 25% extra orders to break even.

A tool that has not been told these rules might return this (illustrative):

Offer: 20% off every direct order on Tuesdays. Price after discount: $25.60. Margin after discount: 61.7%, comfortably above your target. Expected uplift: 25 to 40% more orders.

Three faults. The 61.7% is the discounted price less food cost, divided by the discounted price: (25.60 minus 9.80) over 25.60. It looks healthy because percentages hide what has been given up: contribution per order has fallen from $21.10 to $14.92, down 29%. The "expected uplift" is invented. And the offer needs 41% more orders to break even, so even the top of its own guess would lose money. Ask again with the instructions above, then check one row by hand, starting with the garlic bread, because that is an easy place for a tool to forget the customers who would have paid anyway.

Offer lines that close the loopholes

An offer is only as safe as its exclusions. AI will write an attractive line and leave the gaps wide open, so state the limits in the offer text itself. Here are the five lines in a form you could publish (illustrative):

  • Garlic bread. Free garlic bread with any large pizza, ordered direct, Tuesdays 4 to 8 pm. One per order.
  • Early collection. Collect before 6:15 pm on Wednesdays and take $2 off orders over $25. One per order, not combinable.
  • Family bundle. Monday to Wednesday: two medium pizzas, garlic bread and a 1.5 litre soft drink for $32 (worth $39). Direct orders only.
  • Return voucher. Order on a Friday or Saturday and find a $4 voucher in the box, valid Monday to Wednesday on orders over $25. One per customer.
  • The one to leave out. 20% off every order. It fails the test above.

The gap that costs real money is the missing size. A draft line such as "Any pizza for $10 on Tuesdays" says nothing about size. A large costs you $5.90 in food and box, sells at $19 and leaves $12.45 after card fees. At $10 it leaves $3.76, a loss of $8.69 a pizza against normal. If 30 of Tuesday's 41 orders include a large, that single missing word costs about $260 in a night. Check each line by asking one question: what is the most expensive thing a customer could legitimately do with this offer?

The second loophole is stacking. If the till accepts the $4 voucher and the $2 early-collection discount on the same order, a $32 order drops to $26 and leaves $15.31, 27% below a normal order, with no extra order to show for it. Write "not combinable" in every offer line, switch off stacking in the till's discount settings if it has them, and then place a test order with two codes to see what actually happens.

A four-week calendar with a control night

Run one offer on one night at a time, and keep one night clean so you can see whether the whole week moved for another reason, such as weather or school holidays. Monday stays a control night.

WeekMondayTuesdayWednesdayMessages
1No offerFree garlic bread with a largeNo offerText and Google Offer post for Tuesday only
2No offerFree garlic bread with a largeNo offerSame offer, a different headline in the text
3No offerKeep if it passed, otherwise stop$2 off, collected before 6:15 pmText for Wednesday; Offer post for the run
4No offerKeep or stopKeep or stopRead the numbers; choose what to run in the next four weeks

The early-collection deal is the cleverest of the five for a pizza kitchen, because it does something besides discount: it moves orders into the hours before 6:15 pm, when the oven is idle, and away from the 7 pm crush. That benefit is real but hard to price, so keep it as a tiebreaker and not as part of the sum. If the sums for two offers are close, run the one that moves demand into an idle hour.

Texts and Google posts for the offer

AI drafts both well, and both need your edit. For texts, send only to people who agreed to receive offers, include a clear way to opt out, and check the length after the shop name goes in. Two examples (illustrative), at 139 and 111 characters with the placeholders as shown:

Hi [first name], Tuesday deal at [shop]: free garlic bread with any large pizza ordered direct before 8pm. Code TUE. Reply STOP to opt out.

[Shop]: collect before 6:15pm today and take $2 off your order over $25. Valid Wed only. Reply STOP to opt out.

Send them mid-afternoon on the day, not the day before: the offer is for tonight's dinner decision. The tutorial on drafting marketing texts and then checking consent rules explains what to verify, even though it is written for online shops.

For Google, use an Offer post. Google's help says an Offer post requires a title plus dates and times, adds a "View Offer" button automatically, and treats a coupon code, link and terms as optional. It also says posts older than six months are archived unless a date range is set, and that phone numbers in a post description may be rejected, so leave the number to your profile. Its list of things to avoid includes auto-generated or distracting content and text that adds no value. Create one post per run, dated for the run, and put "Tuesdays, 4 to 8 pm" in the description. A first AI draft might read (illustrative):

The best pizza deal in town! Limited time only. Call 555-0100 now for amazing savings.

Everything to fix is visible: "best" is a claim you cannot prove, "limited time" has no date, the phone number may be rejected, and "amazing savings" says nothing. The edited version states the offer, the days, the hours and the terms: "Free garlic bread with any large pizza, ordered direct, Tuesdays 4 to 8 pm, 3 to 24 November. One per order. Code TUE at checkout." For more routines on posting, see writing Google Business Profile posts with AI every week.

Phone, website and box: three more places to say it

A text reaches people who already agreed to hear from you. Three other places reach everyone else, and AI can write all of them from the same offer line. On the phone, give the person taking orders one sentence: "It's Tuesday, so I'll add a free garlic bread to any large pizza. Shall I do that?" That only works if the till can add a zero-priced item, so test it before the first Tuesday. On the ordering page, put a banner at the top of the menu: "Tuesdays 4 to 8 pm: free garlic bread with any large pizza, ordered here." In the box on Friday and Saturday, print the voucher with its limits on it: "$4 off orders over $25, Monday to Wednesday, one per customer, no cash value."

Ask for three versions of each and choose the plainest. Then check every price and day against the live menu on every channel, because a draft will confidently restate a price from an old menu, such as a medium at $14.99 when yours is $15.00, and customers will quote the lower figure back to you.

Reading the results after two Tuesdays

Use one measure: the night's contribution, which is orders times contribution per order, less the cost of the giveaways. Compare it with the average of the same weekday before the offer, and with the control night. Take a Tuesday that normally brings 41 orders and $865 of contribution, and two ways of running it (illustrative):

Normal Tuesday20% offFree garlic bread
Orders4153 (up 29%)51 (up 24%)
Contribution per order$21.10$14.92$21.10, less $2.39 on each of 33 claims
Night's contribution$865$791$997
Change on a normal TuesdayDown $74Up $132

The discount brought more orders and less money: it needed 41% and got 29%. The free side brought slightly fewer orders and $132 more. If you had judged on order counts, you would have picked the wrong offer. That is the case for the break-even sum before the test, and for judging after it by contribution.

Two cautions on reading the table. The first run flatters an offer, because a new deal gets attention: in this illustration the garlic bread took 56 orders on its first Tuesday and 46 on its second, and the discount 58 and 48. The figures above are the averages of the two, so wait for the second run before you decide. And check the neighbours. A slow-night offer can pull orders off a night that paid full price. If Thursday lost three orders in the same weeks, that is 3 times $21.10, or $63, given back, and the free garlic bread's net gain falls from $132 to $69 a week. Judge by the week's total contribution, not only the offer night's.

Set a kill rule at the start. If an offer's night contribution is under the normal night's after two runs, stop it. If it is above, keep it for four, then try raising the bar: a larger minimum order, a narrower time window, or a smaller giveaway. Note any week that was not normal, such as a wet Tuesday or a school holiday, and do not read too much into a single night.

When the numbers say an offer works, the kitchen has to cope with the orders it brings. Tuesday's 51 orders work out at 5.1 an hour over ten staffed hours, well under the 6.3 an hour that Saturday handles, so there is room. Do the same check before you widen an offer to a busier night. Then tie it back to stock: 33 free garlic breads is 33 small dough balls, and a quiet night that takes a fifth more orders still needs the dough and cheese to be there. The weekday table behind your dough plan is where that gets checked.

Questions pizza shop owners ask about slow-night offers

Should I run slow-night offers on delivery apps?

Start on your own channel. DoorDash's merchant pages list commission of 15%, 25% or 30% of the order subtotal, applied after discounts, but a promotion run through DoorDash also carries a DoorDash Marketing fee that the page does not price. In the worked example, a funded 20% discount needs about 51% more orders on the 25% plan before that fee, against 41% on a direct order.

How long should a slow-night offer run before I judge it?

Run the same night at least twice, and four times is better, then compare each night's contribution with the average of the same weekday before the offer and with a night that had no offer. Stop early only if the sums show it losing money at the order counts you are seeing.

Can I text my past customers about the offer?

Only people who agreed to receive offers, with a clear way to opt out in every message. The consent rules for marketing texts differ between places, so check yours before the first send. Customers who ordered once and never agreed to marketing should not be on the list.

Can AI predict how many extra orders an offer will bring?

No, and a tool that gives you a confident percentage is guessing. What it can do is calculate how many extra orders the offer needs to break even, from your own costs. Your test nights then tell you whether you got there, which is a far better use of the arithmetic.

Further reads

Sources: Google Business Profile Help (posts), DoorDash merchant pricing and promotions pages (commission plans, commission on discounted orders), Square pricing page (card processing rates). Order counts, costs and results in this tutorial are illustrative and worked by hand.

Want slow-night offers tested instead of guessed?

On a 1:1 call we'll work through your order data and costs, build the margin check once, and decide how to run the two-week test without extra software.

Book a 1:1 call with me