Most promo disasters don't happen at the register. They happen three days earlier, when someone looks at a slow Tuesday, panics a little, and decides to run a buy‑one‑get‑one on croissants to drive traffic. Nobody asks how many croissants the oven can actually produce between 5am and 9am. Nobody checks whether there's enough laminated dough in the walk‑in. The offer goes live, it works too well, and by 8:15 you're selling out of your highest‑margin item while turning away regulars who came in for coffee and a scone.
That's the trap. A promo that "succeeds" on paper can quietly wreck your morning, burn out your two bakers, and leave you with negative margin on the exact product you were trying to move. The problem isn't marketing — it's that promos get planned as a demand exercise when they're really a capacity exercise.
This piece is about building a simple risk matrix and a pre‑mortem routine so you can test limited‑time offers without betting your whole production window on a guess. The goal isn't to run fewer promos. It's to run them with cutoffs and guardrails baked in before the sign ever goes up.
Why promos break production specifically
A promo does three things to your kitchen at once, and each one compounds the others.
First, it concentrates demand into a window. Your normal croissant sell‑through might be spread across the whole morning. A promo pulls that demand forward — everyone shows up early because they heard about the deal, and your 5am–8am bake has to cover what used to be a 5am–11am curve.
Second, it shifts the product mix toward one SKU, usually your most labor‑intensive one. Laminated items, filled pastries, and anything that proofs overnight can't be flexed up at 7am. If you're out, you're out until tomorrow.
Third, it steals oven time from everything else. Ovens are the one resource you can't fake. If a promo surge eats two extra deck loads, your bread, muffins, and custom orders all slide back. The customer who pre‑ordered a birthday cake for 10am pickup is now waiting behind your flash sale.
What tends to happen in small bakeries is that owners track the demand side of a promo obsessively — views, redemptions, foot traffic — and track the production side not at all. Then they're surprised when a "winning" promo produced a terrible Saturday.
The pre‑mortem: assume the promo already failed
A pre‑mortem is the opposite of a post‑mortem. Instead of explaining a disaster after it happens, you sit down before launch and pretend it already blew up. Then you work backward: what went wrong?
Never miss a bake or delivery again.
Bakeryly helps you schedule, track, and manage every order effortlessly.
- Unified order tracking
- Real-time inventory alerts
- Staff shift management
No credit card required
This takes about twenty minutes and it's the single highest‑leverage thing you can do before any offer goes live. Run it with whoever actually bakes, not just whoever runs the Instagram.
-
"We sold out by 7
30. What did that cost us?"
If selling out early means turning away your coffee crowd and losing attach sales, the promo item needs a hard cap, not an open offer. -
"The promo item took oven time from pre‑orders. Which orders got late?" If any committed order — catering, wholesale, custom — could slip, the promo must be fenced off from that production entirely.
-
"We ran out of a key ingredient mid‑service. Which one?" Usually it's butter, a specific flour, or a filling. Identify the constraint ingredient before you promise anything.
-
"We hit the sales target but lost money. Why?" Discounting your highest‑cost item at volume is how a popular promo posts a negative contribution margin.
-
"Staff got slammed and quality dropped. Where?" A rushed lamination or under‑proofed batch during a surge damages your brand more than the promo helps it.
The point of the pre‑mortem is to surface the constraint — the one resource that will break first. Almost every promo has exactly one binding constraint. Find it, and the rest of the plan designs itself.
The promo‑capacity risk matrix
Once you know your constraint, score the promo before committing. The matrix below is deliberately simple — you want something you'll actually fill out, not a spreadsheet nobody opens.
For each promo idea, rate these five factors Low / Medium / High:
| Factor | Low risk | Medium risk | High risk |
|---|---|---|---|
| Oven time flexibility | Item shares bakes with existing production, no extra loads | Needs 1 extra deck load during peak | Needs dedicated oven time that displaces other SKUs |
| Ingredient constraint | Uses common stock, easy to reorder | Uses one specialty input with lead time | Uses a scarce/perishable input that can't be restocked mid‑run |
| Labor intensity | Grab‑and‑go, already made | Minor finishing or assembly | High‑skill, time‑sensitive (lamination, decorating) |
| Margin cushion | Promo price still above full cost | Thin margin, covers variable cost only | Below variable cost at promo volume |
| Pre‑order collision | No overlap with committed orders | Shares a station with pre‑orders | Directly competes for the same oven window as committed orders |
The rule worth following: any single "High" means the promo needs a hard cap and a cutoff. Two or more "High" means redesign it or kill it. You're not chasing a perfect score. You're looking for the one or two cells that will burn you so you can put a fence around them.
A croissant BOGO typically scores High on oven flexibility, High on labor, and Medium‑to‑High on margin. That's an instant redesign. A promo on day‑two cookies you'd otherwise discount? Low across the board — run it freely.
Below is a simple workflow to score a promo and set its cap.
A croissant BOGO typically scores High on oven flexibility, High on labor, and Medium‑to‑High on margin. That's an instant redesign. A promo on day‑two cookies you'd otherwise discount? Low across the board — run it freely.
Setting cutoffs tied to the kitchen, not the calendar
This is where most promos go wrong even when they're well‑intentioned. People set time‑based cutoffs ("offer ends at 10am") when they should be setting capacity‑based cutoffs ("offer ends at 120 units or when the 7am bake sells out, whichever comes first").
If ingredient and oven limits disagree, let the ingredient limit control the cap.
A time cutoff doesn't protect your oven. A capacity cutoff does.
-
Calculate your true promo ceiling. Take your available oven loads in the promo window, subtract what's already committed to pre‑orders and standard production, and convert the leftover into units of the promo SKU. That number — not your sales ambition — is your ceiling.
-
Subtract a safety buffer. Knock 15–20% off the ceiling so a surge doesn't eat into committed orders. If the math says 150 croissants of headroom, cap the promo at around 120.
-
Set the ingredient cutoff separately. If you have butter for only 140 laminated units across all products that day and your standard bake needs 60, the promo can't exceed 80 regardless of oven time. The tighter constraint wins.
-
Make the cutoff visible to the front counter. A simple tally or a POS limit that stops the discount automatically once the cap is hit. The person at the register should never have to guess whether there's still promo stock.
-
Pre‑decide the sold‑out script. "We're out of the deal croissants, but we've got fresh ones at full price" protects margin and keeps the customer. Write it down before service starts.
This discipline mirrors what works for time‑based order‑batching rules — protecting the peak window from being overrun by a single surge, just with a promo as the trigger instead of normal demand.
Run it as a limited A/B test, not a full rollout
The other mistake is treating a promo as all‑or‑nothing. You don't need to launch a BOGO across every channel on your busiest Saturday to learn whether it works. You need a small, measurable test that can't hurt you much if it flops.
-
Pick one low‑risk window. A slower weekday, not your peak. You're measuring lift, and lift is easier to see against a quiet baseline.
-
Cap the test volume hard. Enough units to get a real read (somewhere in the 80–150 range depending on your traffic), not so many that a surge breaks production.
-
Run an A and a B. For example, A = 15% off croissants, B = free coffee with a croissant. Same SKU, two offer mechanics. Measure which drives more total basket value, not just redemptions.
-
Hold a control. A comparable day or channel with no promo, so you can tell the difference between real lift and normal variation.
-
Measure the production cost, not just the revenue. Log the extra oven loads, the overtime minutes, the wasted units. A promo that drove $400 in sales but needed $180 of extra labor and burned two deck loads of other product isn't a win.
This same measurement habit is what makes front‑of‑house pricing and display tests actually useful — you decide what counts as a win before you run it, so you're not rationalizing the results afterward.
A real scenario: the BOGO that cost money while "winning"
A two‑location neighborhood bakery wanted to lift slow mid‑week mornings. They launched a buy‑one‑get‑one on butter croissants — open‑ended, across both shops, promoted the night before on social.
It drew a crowd. Foot traffic roughly doubled before 8am. On paper it looked like a smash. But by the end of the week the owner noticed the mid‑week numbers were worse, not better.
Croissants are their most laminated, most butter‑heavy, lowest‑flex item. The surge sold them out by around 7:45 both days. The coffee regulars who normally bought a croissant and a latte showed up at 8:15 to find the case empty, and a chunk of them just left. Meanwhile the extra bakes had pushed two wholesale orders late, which cost a credit on one account. And because the croissant was already their thinnest‑margin item, giving the second one away at volume meant the promo was running at a loss on every pair sold.
The giveaway cost on redeemed pairs ran a few hundred dollars across the week. The lost attach sales from the walked‑away latte crowd likely matched or exceeded that. The late wholesale credit was a separate hit on top. "Successful" promo, negative week.
When they re‑ran it later with the matrix applied, almost everything changed. They moved the offer to day‑old and second‑bake croissants — Low margin risk, Low oven risk — capped it at 60 units per shop with a POS limit, set the cutoff at "sold out or 9am," and kept it off the days with wholesale production. Same marketing energy, same traffic bump, but this time the oven was protected, committed orders weren't touched, and the capped loss on discounted units was small and fully predictable. The mid‑week lift finally showed up as actual incremental revenue instead of a reshuffled, costlier version of a normal day.
When a promo like this actually makes sense
Flash promos aren't the enemy. They work well when the mechanics line up:
-
The promo item has oven and labor slack. Grab‑and‑go, pre‑made, or already in surplus.
-
You're moving product you'd otherwise discount or waste. Day‑old, overstock, or a SKU you're trying to retire.
-
The constraint is clearly identified and capped. You know the one thing that breaks first and you've fenced it.
-
The window is genuinely slow. You're filling empty capacity, not stacking demand onto a full one.
Flash promos aren't the enemy. They work well when the mechanics line up:
When it's a bad idea
Skip or redesign the promo when:
-
The item is your highest‑skill, lowest‑flex product and you're running it during peak. That's how quality drops and pre‑orders slip.
-
The promo SKU shares an oven window with committed orders. Never let a flash sale compete with something a customer already paid for.
-
The discount pushes your top‑cost item below variable cost at volume. Popularity just multiplies the loss.
-
You can't set a hard cap. If you can't stop the offer at a number, you don't control it — it controls your morning.
The honest filter: if you can't name the constraint and the cutoff in one sentence, you're not ready to launch.
Keeping the whole thing visible during service
A promo plan that lives in someone's head falls apart the moment the rush hits. The cap, the cutoff, the sold‑out script, the fence around pre‑orders — all of it has to be visible to the people actually running the counter and the bake.
This is where keeping your allocation and limits inside the same system you use for orders and production pays off. When the promo cap is a real number the POS enforces, when the counter can see remaining promo stock without walking to the back, and when committed pre‑orders are protected in the production schedule automatically, the guardrails hold under pressure instead of collapsing the second it gets busy. AI‑assisted production planning can flag the collision before launch too — surfacing something like "this promo cap exceeds your available oven time once pre‑orders are accounted for" while you're still deciding, not at 7:40am when the case is already empty. That's the difference between a plan and a hope.
Bringing it together
A promo is a production decision wearing a marketing costume. The bakeries that run limited‑time offers without regret aren't the ones with the best discounts — they're the ones who figured out the binding constraint, capped the promo to protect it, tied the cutoff to the kitchen instead of the clock, and tested small before going wide.
Run the pre‑mortem. Score the matrix. Set a capacity‑based cutoff with a buffer. Launch it as a contained A/B on a slow window and measure the production cost, not just the sales. Do that consistently and your next limited‑time offer will do what it's actually supposed to do — fill empty capacity and bring people in — without quietly selling your best product at a loss or sending your regulars home empty‑handed.
A promo is a production decision wearing a marketing costume. The bakeries that run limited‑time offers without regret aren't the ones with the best discounts — they're the ones who figured out the binding constraint, capped the promo to protect it, tied the cutoff to the kitchen instead of the clock, and tested small before going wide.
Run the pre‑mortem. Score the matrix. Set a capacity‑based cutoff with a buffer. Launch it as a contained A/B on a slow window and measure the production cost, not just the sales. Do that consistently and your next limited‑time offer will do what it's actually supposed to do — fill empty capacity and bring people in — without quietly selling your best product at a loss or sending your regulars home empty‑handed.
Ready to elevate your bakery operations?
Join 2,000+ bakeries using Bakeryly to streamline workflows, reduce waste, and delight more customers.