All posts Pricing & margin · 30 Jan 2026 · 14 min read

The true cost of a discount code: why "20% off" cuts your margin in half.

A 20% off code feels generous to the customer and small to the owner. Run the math: on a 40% gross margin item, a 20% discount cuts your gross profit per sale by 50%. To break even on margin you would need to double unit volume — and most promotions deliver 10-25% lift, not 100%. Here is the discount-margin table for cafes, retail, salons, and ecommerce, four worked examples, and the four cases where discounts genuinely make sense.

Ibrahim Ölmez Founder, nouz · serial entrepreneur

A 20% off code feels generous. You believe you are giving up 20% to win the customer. The math says otherwise. On a product carrying 40% gross margin, a 20% discount does not cut margin by 20% — it cuts gross profit per sale by 50%. To break even on margin in absolute euros, you would need to double the number of units sold during the promotion. Promotions almost never deliver 100% volume lift; most land between 10% and 25%. Which means the typical 20% off campaign loses money for the store and the owner only finds out months later, when the monthly P&L finally surfaces the dip. This post walks through the discount-margin math owners get wrong, the table that shows what every common discount rate actually costs at every common margin level, four worked examples (cafe, retail boutique, salon, Shopify store), the volume-recovery math that almost never works, and the four cases where discounts genuinely earn their place.

TL;DR

The honest discount math. A 20% off code on a 40% gross margin item does not reduce margin by 20% — it cuts gross profit per sale by 50%. To break even in absolute euros you would need to double unit volume, which almost no promotion delivers. The four cases where discounts genuinely make sense: dead-stock clearance, strict net-new acquisition with measured CLV recovery, end-of-season clearouts, strategic loss-leaders with attach math that works. Everything else trains customers to wait for the next code and compresses your non-sale period revenue.

The "20% off" illusion

The headline rate is the most misleading number in small-business marketing. "20% off" reads to the customer as a 20% saving and reads to the owner as the same. Both readings are arithmetic. Neither one accounts for the structural fact that the discount comes entirely out of the thin sliver of margin between price and cost — because the cost does not move when the price does.

Walk a single number through it. A €50 product with €30 of COGS carries €20 of gross profit per sale, which is a 40% gross margin rate. Apply a 20% off code: the new selling price is €40. The cost is still €30. The new gross profit is €40 − €30 = €10. You have just halved the gross profit per sale. The 20% off the customer saw is a 50% off the owner felt.

Run the same math at a different margin level and the shape changes but the principle does not. A 20% discount on a 50% margin product reduces gross profit by 40%. A 20% discount on a 30% margin product wipes out 67% of gross profit. The lower the underlying margin, the more brutal the proportional impact of any discount. This is why the same "20% off email blast" can be merely costly for a boutique selling 60% margin jewellery and existential for a grocery store selling 22% margin packaged goods.

Cost does not flex with the discount. Your supplier does not give you 20% off the wholesale price because you ran a 20% promo. The wage you owe your salon stylist does not drop because the haircut went out at 20% off. Your Shopify card processing fee is computed on the discounted price, but every other cost line — COGS, fulfilment, labor — stays at full freight. The discount is a 100% subsidy from your margin to the customer.

The discount-margin math owners get wrong

The pattern most owners assume is linear: a 20% off code costs 20% of margin. The actual relationship is multiplicative against the underlying margin rate. The simplest way to write it:

Margin lost per sale (%) = Discount rate / Gross margin rate

Example: 20% off, 40% margin
Margin lost = 20 / 40 = 50%

Run that formula at the rates you most commonly see in small business. A 10% off code on a 40% margin product cuts gross profit by 25%. A 15% off code on a 50% margin product cuts gross profit by 30%. A 25% off code on a 30% margin product wipes out 83% of gross profit per sale — at that point, you are practically giving the item away in exchange for the customer's attention.

The reason the formula multiplies rather than subtracts is that the discount is a percentage of price, while the margin is also a percentage of price, and the cost line is fixed. The discount eats the margin in absolute euros, not in percentage points. A €50 product going to €40 loses €10 of revenue — but it also loses €10 of gross profit, because every euro of revenue lost at constant cost is a euro of gross profit lost. The "margin lost per sale" expression simply converts those lost euros back into a percentage of the original margin, which is the framing that maps to "did this campaign make money or lose money."

There is one more piece most owners miss. The math above is per-sale. To recover the lost gross profit across the campaign, you need additional unit volume. The required volume lift is also multiplicative and also more aggressive than instinct suggests. Cover that in the volume section below.

The discount margin table

Read the table this way. Pick the row for the discount rate you are considering. Pick the column for your gross margin rate. The cell tells you what percentage of gross profit per sale that discount destroys.

Discount rate30% gross margin40% gross margin50% gross margin60% gross margin
5% off−17% margin−13% margin−10% margin−8% margin
10% off−33% margin−25% margin−20% margin−17% margin
15% off−50% margin−38% margin−30% margin−25% margin
20% off−67% margin−50% margin−40% margin−33% margin
25% off−83% margin−63% margin−50% margin−42% margin
30% off−100% margin−75% margin−60% margin−50% margin
40% offbelow cost−100% margin−80% margin−67% margin

A handful of observations from the table that change how most owners think about discount cadence:

  • A 30% off code on a 30% margin product means every sale during the promo is generating zero gross profit — you are running the till at break-even on COGS alone, before any allocation toward rent, software, labor, or the owner's time.
  • A 40% off code on a 40% margin product means you are selling below cost. Every additional unit sold during the promo deepens the loss.
  • Across the diagonal where the discount rate equals the margin rate, you have zero gross profit per sale. Anything to the left of that diagonal is profitable per sale; anything to the right is a unit loss before you have paid for the rest of the business.
  • The "safest" discount band — single-digit percentage discounts on high-margin (50%+) products — still eats meaningful gross profit per sale. A 5% off code on a 60% margin item costs 8% of gross profit per sale. The discount is never as cheap as the headline rate makes it look.

Use the discount impact calculator to plug your specific numbers in for a single product. Use the profit margin calculator first if you do not know your current gross margin rate for the product you are discounting — without that input, the entire discount conversation is guessing.

Worked example — cafe

A neighbourhood cafe runs a "15% off all drinks" code through a loyalty app to lift weekday afternoon trade. The owner thinks the math is "we give up 15%, the customer comes in, we recover with extra cups." Walk through what actually happens on a single redeemed cup.

The latte sells at €4.50. Food cost per cup — beans, milk, syrups, takeaway cup if relevant — is €1.20. Gross profit per cup at full price: €4.50 − €1.20 = €3.30, which is a 73% gross margin rate. That is healthy by cafe standards and is exactly why cafes can run on small ticket sizes.

Apply the 15% off code. New selling price: €4.50 × 0.85 = €3.83. Cost is still €1.20 because beans and milk do not get cheaper because the cafe ran a promotion. New gross profit: €3.83 − €1.20 = €2.63. Gross profit lost per cup: €3.30 − €2.63 = €0.67. As a percentage of pre-discount gross profit: 0.67 / 3.30 = 20%.

The cafe lesson. A 15% off code on a 73% margin product costs 20% of gross profit per cup. The cafe gave up €0.67 of margin per redeemed cup. If the campaign drove 80 redemptions over a week, that is €54 of margin given up. To break even on margin in absolute euros, the cafe would need 20% of those cups to be incremental — meaning 16 of the 80 cups must be cups that would not have happened without the code. In practice, cafe loyalty-app codes redemptions are typically 60-80% from regulars who would have bought anyway, leaving 16-32 incremental cups — barely enough to break even, and that is before counting the staff time to administer the code, the loyalty app subscription cost, and the brand anchor effect of training regulars to expect the discount.

The deeper cafe issue: most cafe customers are not price-sensitive on individual cups — they choose the cafe for proximity, taste, atmosphere, and habit. Discounting trains them to delay their order until the next promo lands. Over six months of monthly discount cadence, the cafe's full-price weekday afternoon volume drops because the regulars now buy in clusters around promo dates instead of every day. The cafe ends up with the same total cups served and €0.67 less margin on a meaningful share of them. The break-even analysis post covers the per-unit math in more detail.

Worked example — retail boutique

A small fashion boutique runs a 25% off code to "clear winter stock and bring people in for spring." The owner has run discounts for years and treats them as normal cadence. Walk through what happens on a single dress.

The dress sells at €120. COGS — wholesale cost from the supplier — is €50. Gross profit per dress at full price: €120 − €50 = €70, which is a 58% gross margin rate. Healthy for fashion, slightly thinner than the 60-65% the boutique would prefer.

Apply the 25% off code. New selling price: €120 × 0.75 = €90. Cost is still €50. New gross profit: €90 − €50 = €40. Gross profit lost per dress: €70 − €40 = €30. As a percentage of pre-discount gross profit: 30 / 70 = 43%.

A 25% discount on a 58% margin product destroyed 43% of gross profit per dress. The boutique gave up €30 of margin per dress sold during the promo. If the campaign sold 40 dresses, that is €1,200 of margin given up. To recover that €1,200 by margin from incremental units, the boutique would need 30 of the 40 dresses (75%) to be incremental sales — dresses that would not have moved at full price.

The harder problem is that retail discount campaigns to existing email lists typically cannibalise the regulars who were already in the consideration set. If 70% of the 40 sold dresses are to customers who would have bought anyway, the boutique lost €840 of margin to subsidise existing demand and gained €360 of margin from 12 genuinely incremental dresses — a net loss of €480 on the campaign before counting the boutique's time to set up the promo, the email platform cost, and the email-fatigue cost on the list.

The retail discount trap. Most retail discount campaigns to existing customers are net-negative on margin. They generate the appearance of activity — sales numbers spike during the campaign, the dashboard looks busy — but the per-unit margin destruction plus the cannibalisation of regulars typically means the campaign lost money for the boutique. The owner only discovers this when the monthly P&L lands four weeks later and gross profit per square meter of floor space is down for the second month running.

Worked example — salon

A salon runs a 20% off code on haircuts through a beauty aggregator app to fill empty Tuesday afternoon slots. The discount math here has a wrinkle the cafe and retail examples do not: the stylist still commissions at full rate, regardless of what the customer paid.

A standard haircut sells at €85. Product cost per cut — shampoo, conditioner, styling products consumed — is €8. The stylist commissions at €40 per cut, which the salon owes regardless of the customer price. Total variable cost per cut: €8 + €40 = €48. Gross profit per cut at full price: €85 − €48 = €37, which is a 44% gross margin rate (computed against the €85 selling price).

Apply the 20% off code. New selling price: €85 × 0.80 = €68. Product cost is still €8. Stylist commission is still €40 — the stylist did the same work and gets paid the same. Total variable cost: €48 (unchanged). New gross profit: €68 − €48 = €20. Gross profit lost per cut: €37 − €20 = €17. As a percentage of pre-discount gross profit: 17 / 37 = 46%.

A 20% off code on the haircut destroyed 46% of gross profit per cut. The salon gave up €17 of margin per cut. If the aggregator app drove 25 redemptions, that is €425 of margin given up — and that is before the aggregator's own commission (often 10-15% of the discounted price, another €7-10 per cut) and before any payment processing fee.

The service-business discount wrinkle. In any service business where the practitioner commissions on the customer price — salons, spas, personal training, freelance services — the discount is doubly painful. The fixed labor cost per service does not flex with the discount, so the entire discount comes out of the owner's margin while the practitioner is fully paid. A 20% off code in a salon where stylists commission at 50% of customer price effectively transfers the entire discount from the salon owner to the customer, with the stylist seeing none of the pain. This is structurally why most salons that run aggregator-app discount strategies discover that filling Tuesday slots at 20% off generated less margin than leaving those slots empty.

The honest math: an empty Tuesday slot produces €0 of margin but also incurs €0 of stylist cost (stylists in many salons are paid by commission per cut, not by hour). A 20% off Tuesday cut produces €20 of margin and incurs €40 of stylist cost the salon would have paid only if the cut happened. The salon is €20 better off on margin only if the cut would not have happened at full price — which, given that 20% off codes typically pull 30-50% of redemptions from regulars who would have booked anyway, is rarely the case.

Worked example — Shopify store

A small Shopify store running paid Meta acquisition adds a 15% off code to "lift conversion rate on the landing page." The owner has read that conversion rate is the leverage point. The math below shows what the discount actually does to per-order EBIT.

Average order value: €60. Product COGS plus fulfilment plus card processing fee per order: €36, which makes for a 40% gross margin rate per order (€24 gross profit per order). Blended CAC per acquired customer from Meta: €25. Per-order EBIT contribution before the discount: €60 − €36 − €25 = −€1. The store is already breaking even on first-order economics and depending on repeat purchase to drive lifetime profitability — a common DTC structure. More on the CLV math behind this structure.

Apply the 15% off code. New selling price: €60 × 0.85 = €51. Variable costs per order are roughly the same (COGS and fulfilment are tied to the product, not the price; card fee drops slightly to €1.28 from €1.50 because the fee is computed on the discounted price). For simplicity hold variable cost at €36. New gross profit per order: €51 − €36 = €15 (down from €24). CAC is still €25. Per-order EBIT contribution after the discount: €51 − €36 − €25 = −€10. The store is now losing €10 per acquired-with-code customer on the first order.

The DTC discount death spiral. A 15% off code on a 40% gross margin Shopify product turned a break-even first-order economic model into a €10 loss per order. The owner does not see this in Shopify Analytics because Shopify reports revenue, not EBIT. The owner does not see this in Meta Ads Manager because Meta reports ROAS, not contribution per order. The owner sees this only when the monthly bank reconciliation lands — at which point the store has acquired several hundred customers at a €10 first-order loss and is depending on repeat purchase to recover. If the typical repeat rate is 40% with €10 of gross profit per repeat order, the math eventually works out for the customers who do return — but the bank account stays compressed for months while the cohort matures.

The point of the Shopify example: any owner running paid acquisition has to think of the discount as compounding on top of an already-stressed unit economic model. The break-even discount rate for a DTC store is much lower than the break-even discount rate for a boutique selling at retail, because the DTC store is paying €25 of CAC per customer that the boutique is not. The my Shopify store is not profitable post walks the broader diagnostic; the attribution window myth post covers the related issue of platform ROAS overstating channel performance.

The volume-recovery math nobody runs

Every discount campaign comes with an implicit theory: the per-sale margin loss will be recovered through additional unit volume. The promo will pull customers who would not otherwise have bought, those incremental customers will lift total margin dollars enough to compensate for the discount applied to existing demand. The theory is sound in principle. The math required for it to work in practice is far more aggressive than most owners ever calculate.

The break-even volume lift formula:

Required unit lift = Margin lost per sale (%) / (1 − Margin lost per sale)

Example: 20% off, 40% gross margin (50% margin lost per sale)
Required unit lift = 0.50 / (1 − 0.50) = 100%
You need to DOUBLE units sold to break even on absolute margin.

Run that formula across common discount rates and margin levels.

Discount rate30% gross margin (lift needed)40% gross margin (lift needed)50% gross margin (lift needed)60% gross margin (lift needed)
10% off+50% volume+33% volume+25% volume+20% volume
15% off+100% volume+60% volume+43% volume+33% volume
20% off+200% volume+100% volume+67% volume+50% volume
25% off+500% volume+167% volume+100% volume+71% volume
30% offimpossible+300% volume+150% volume+100% volume

Two observations from this table that should change how every owner sizes a campaign:

  • The required volume lifts are systematically larger than what discount campaigns actually deliver. Real-world incremental volume lifts on small-business discount campaigns typically land between 10% and 25%. A 30% lift is good. A 50% lift is exceptional. A 100% lift is something most owners only see during once-a-year tentpole events with significant ad spend behind them — and even then, only for specific high-conversion categories.
  • At higher discount rates, the required lifts become arithmetically impossible. A 30% off code on a 30% margin product would require infinite volume to break even — there is no amount of additional sales that recovers the margin, because every sale is generating zero margin. The campaign is mathematically a loss-maker on every unit.

The clean test for any planned discount: pick the row for the discount rate, pick the column for the product margin, and ask honestly — do you believe this campaign will drive that volume lift? If your honest answer is "probably 30%," and the required lift is "+100%," the campaign will lose money. Run the test before you press send on the email, not after the monthly P&L lands.

The volume that does come is mostly not incremental. The volume-lift requirement above assumes every additional unit sold is genuinely incremental — sales that would not have happened without the discount. In practice, a meaningful share of discount-campaign volume comes from customers who would have bought at full price within the same window (cannibalisation). For most owner-list discount campaigns to existing customers, 50-80% of redemptions come from buyers who were already in the consideration set. Only the truly net-new portion counts toward the volume-lift threshold above — which makes the math even harder to clear.

What discount codes actually do — and do not do

After 18 months of watching the daily P&L impact of discount campaigns across cafes, boutiques, salons, and small Shopify stores running on nouz, three things are consistent enough to call out as patterns. Discount codes do some things and very specifically do not do others.

Discount codes do, in fact, accomplish a few things.

  • Clear dead stock. A discount on inventory that would otherwise sit unsold for another quarter, occupying shelf space and tying up working capital, can be a rational trade. The math is comparing "20% of something" to "100% of nothing." That is a discount worth running.
  • Acquire net-new customers, sometimes. A first-time-buyer discount aimed strictly at customers who have never purchased before — and excluded from the existing customer list by structural design — can be a defensible CAC cost. The discount is the price of acquiring the customer relationship, and it should be accounted for as marketing spend in the CLV calculation, not as a margin hit.
  • Reach lapsed customers. A targeted reactivation code sent only to customers who have not purchased in 6+ months can recover a fraction of the lapsed base. The cannibalisation rate here is near zero (they were not going to buy anyway), so the discount math is much more favourable.

What discount codes do not do, regardless of what the marketing playbooks claim.

  • Pay for themselves through volume lift. The volume-recovery math above is brutal and almost never clears. Most discount campaigns lose absolute margin dollars compared to a quiet week at full price.
  • Train new buying habits. Customers who buy at discount learn to wait for discount. Frequent discount cadence compresses your non-sale period revenue rather than building net-new demand.
  • Build long-term margin. The opposite is true. Frequent discounting re-anchors customer price expectations downward. Six months into a monthly discount cadence, your "full price" becomes a price that customers no longer believe is the real price — and they hold orders for the next promo.
  • Compete on price sustainably for a small business. Larger competitors with better supplier terms can win the discount race. A small business that competes on discount cadence with a larger competitor loses on margin every month while looking like it is keeping up on revenue.

When discounts genuinely make sense

Despite all of the above, discounts have a real and defensible place. Four specific situations where the math works.

1. Dead-stock clearance. Inventory that has aged past the point where it is going to move at full price has an opportunity cost — shelf space, working capital, mental load. A 20-40% discount on dead stock is being compared not to "20-40% off full price" but to "the realistic alternative is selling this for €0." Running the math against the realistic alternative, the discount almost always pays. The key discipline: this only applies to genuinely dead stock, not to slow-moving stock that the owner has not given enough patience to move at full price.

2. Strict net-new acquisition with measured CLV recovery. A first-time-buyer discount that is structurally excluded from existing customers (verified by email, by account creation date, by IP-based gating where feasible) is a CAC cost — you are paying for the acquisition of a relationship that will, if your CLV math works, return many times the discount over the customer's lifetime. The required discipline is the measurement: you have to compute the CLV of customers acquired through the discount campaign and confirm it exceeds the all-in acquisition cost. If first-time-buyer discount campaigns produce customers with worse CLV than organic acquisition, the campaign is paying for low-quality customers and the math fails.

3. End-of-season clearouts where carrying cost matters. Seasonal product (fashion, holiday merchandise, weather-dependent inventory) carries a cliff in expected sell-through. Selling at 25-40% off in week 8 of the season is cheaper than selling at 60-80% off in week 14 once it is genuinely out of season. The math is the same as dead stock — comparing the discount to the realistic alternative — and is defensible when the alternative is meaningfully worse.

4. Strategic loss-leaders with attach math that works. A discount on a product the customer is expected to buy alongside higher-margin items can pay off if the attach math is real. The classic version: discount the coffee maker to acquire the customer who then buys €60 of beans every month for two years. The discipline: the attach has to be measured, not assumed. Most attempts at loss-leader strategy fail because the assumed attach rate is 50% and the real attach rate is 12%. The math only works when the attach is high enough and the attached items are margin-rich enough to clear the loss-leader by a meaningful margin.

The common thread. In each of the four defensible cases, the discount is compared against a specific worse alternative — €0 from dead stock, no customer relationship at all, a deeper markdown later, missing the attach revenue entirely. The math works when the alternative is actually worse than the discount. The math fails — and most discount campaigns belong here — when the realistic alternative is "the customer would have bought anyway at full price," because then the discount is pure subsidy.

When discounts destroy margin

The mirror image. Four specific situations where discounts almost always lose money for the small business running them.

1. Across-the-board "spring sale" applied to bestsellers. The products that sell best at full price are the products that have the strongest baseline demand. Applying a 20% discount to a bestseller during a promotional week mostly subsidises customers who would have bought at full price. The math: if 75% of the discounted-bestseller sales are cannibalised regulars and 25% are incremental, the campaign loses absolute margin. The fix: never discount bestsellers. If you are running a promotion, scope it to specific slow-moving SKUs where the cannibalisation rate is naturally lower.

2. Email blasts to existing customers who would have bought anyway. The "send a 15% off code to the newsletter list" cadence is the most universally damaging discount pattern in small business. The cannibalisation rate here is structurally high — by definition, you are targeting people who have already engaged with the brand and are likely to buy again. Most of the redemptions are subsidised regulars, not incremental customers, and the campaign loses margin on the way to looking busy.

3. First-time-visitor codes that train discount expectation. The widely deployed "15% off your first order, just enter your email" popup is reasonable in moderation and corrosive at scale. If 60% of new customers acquire through the discount popup, the brand has structurally taught customers that the real price is 15% off, and the non-discounted full-price sale becomes the exception rather than the norm. The downstream effect is that any attempt to remove the popup or raise the discount threshold feels like a price increase to the customer base.

4. Annual recurring sales that compress non-sale period revenue. The "we do a 20% off sale every September and every January" cadence trains customers to hold orders for the predictable promo windows. The brand discovers, three years in, that September is a record month and August is a near-zero month — the September lift is mostly the August demand that the customers deferred. Net total annual revenue is flat or down, but the brand has given up 20% of margin on a meaningful share of it.

The pattern in each failure mode. Each of the four destructive cases has the same structural feature: the discount is applied to demand that would have happened anyway. The campaign generates the appearance of activity (sales spike during the promo, dashboard looks busy) without generating incremental demand. The margin lost on subsidised demand exceeds the margin gained on incremental demand. Net effect: lower total margin dollars compared to a quiet week at full price. The owner discovers this only when the monthly P&L lands and gross profit is down despite revenue being flat.

Better levers than discounts

If the goal is to drive incremental volume or to acquire net-new customers, there are mechanisms that accomplish the same outcome without the margin destruction of an across-the-board discount. Five that work reliably in small business.

1. Bundle pricing. A three-item bundle at a structurally lower per-item price than the items would carry separately lifts AOV by 20-35% in most categories without communicating "the brand is on sale." The customer perceives value (more items for a discounted total), the owner protects per-item margin (the bundle price is set against the bundle COGS, not against the worst-case individual margin). Bundles do not train customers to wait for the next promo because the bundle is a permanent product offering. See bundle pricing without bleeding margin for the structural math.

2. Gift-with-purchase. Adding a low-cost, high-perceived-value item to an order above a threshold has the marketing effect of a discount without the price reduction. The customer feels rewarded. The headline price stays intact. The brand does not re-anchor downward. The math: the COGS of the gift item is typically 8-15% of the threshold AOV, but the customer perceives the gift as worth significantly more (because of its retail-price framing). Net margin impact is usually 4-7% — less than half the impact of an equivalent direct discount.

3. Free-shipping threshold. For ecommerce, raising the free-shipping threshold (e.g. from €40 to €60) drives AOV up by 10-20% as customers add a small item to qualify. The math: you are giving up the shipping fee on more orders, but those orders are at higher AOV with the same fixed shipping cost — net contribution per order rises. This is structurally a better lever than a percentage-off code because the customer chooses to spend more to unlock the benefit, rather than the brand giving up margin on what the customer was already going to spend.

4. Member loyalty without discount. A loyalty program that rewards repeat purchase with non-discount perks — early access to new products, free shipping, member-only items, member-only events, expedited service — extends customer lifespan and lifts frequency without compressing margin. The successful programs in small business avoid percentage-off rewards entirely; the rewards are experiential or access-based, not price-based. This protects the brand anchor and rewards the most engaged customers in ways that competitors cannot easily copy.

5. Early access. Giving existing customers (or email list members) access to a new product launch 48-72 hours before the public release creates urgency and rewards loyalty without discounting. The mechanism is scarcity, not price. The customer perceives privilege. The brand maintains full-price economics on the launch window, which is typically the highest-margin window for any new product.

The structural difference. Each of the five better levers shares one property: the brand does not give up margin on demand that was going to happen anyway. Bundles change what the customer buys, not what they pay per item they were going to buy. Gifts add perceived value without price reduction. Shipping thresholds raise AOV by changing the customer's order composition. Loyalty perks reward retention with non-price benefits. Early access uses scarcity rather than discount. The discount code, by contrast, applies price reduction across all buyers — including the ones who would have paid full price — which is why it almost always loses absolute margin.

How nouz makes discount impact visible

The structural problem with discount campaigns is that the per-unit margin destruction is invisible at the point of sale and surfaces only when the monthly P&L lands. By then the campaign has run its course, the customer base has been re-anchored, and the owner is six weeks too late to course-correct. nouz exists to close that gap.

Three rules built into the daily P&L make discount math honest in real time, not in retrospect.

Discounted sales log at the actual sale price as gross revenue. If the latte sold for €3.83 after the 15% off code, the day's gross revenue line includes €3.83, not the €4.50 list price. There is no "list price" fiction in the daily numbers. The bank sees the €3.83 and so does nouz.

COGS snapshots at sale time and does not flex with the discount. The €1.20 cost of the latte is locked at the moment of sale. The discount does not reduce COGS. The €1.20 is subtracted from the €3.83, producing the actual gross profit of €2.63 per cup. The system does not let the owner pretend the cost flexed with the discount.

Daily EBIT surfaces immediately, on the day of the campaign. By 9pm on the day the discount ran, the owner sees: today's gross revenue, today's COGS, today's variable costs (including any loyalty-app or aggregator-app commission on the discounted sales), today's allocated fixed cost slice, and the resulting EBIT. If the campaign was a margin loser, the EBIT line shows it the same evening. If the campaign was net-positive, the EBIT line confirms it. There is no waiting until the monthly P&L lands.

The nouz formula on discount days. Gross revenue (at the discounted price) − Tax − Card transaction fees = Net revenue. Net revenue − COGS (snapshotted at full unit cost) − Variable costs − (Monthly fixed ÷ 30.4375) = EBIT. The discount does not show up as a "promo cost" line because it does not need to — it is already baked into the lower gross revenue. The owner sees the margin impact in EBIT the same evening.

A worked weekly review using nouz, after a 15% off cafe code campaign:

  • Week before the campaign: daily EBIT averaged €180. Weekly EBIT roughly €1,260.
  • Week of the campaign: redemption volume was 80 cups across the week. Total cups served was 720 (versus a typical 680 — a 6% volume lift). Daily EBIT averaged €164. Weekly EBIT roughly €1,148.
  • What the loyalty app claimed: 80 redemptions × €3.83 = €306 of "campaign-driven revenue." Looks like a successful campaign in the loyalty app dashboard.
  • What the bank said: EBIT moved from €1,260 to €1,148. Real campaign impact: −€112 of margin. The campaign lost the cafe €112 of EBIT despite generating "successful" redemptions and a modest volume lift, because the lift was less than required to compensate for the per-cup margin destruction on 80 cups.
  • Decision: the next planned discount campaign is replaced with a gift-with-purchase mechanic at the same threshold, which is projected to drive comparable foot traffic with significantly less per-unit margin destruction.

That kind of reconciliation is the entire reason same-day P&L matters for discount-running businesses. By the third or fourth campaign run with daily EBIT visibility, the owner has empirically calibrated which discount mechanisms actually drive incremental margin and which ones are pure subsidy. The campaigns that survive are the ones the math supports. The ones that do not survive — typically 60-80% of historical discount cadence — get replaced with mechanics that protect margin.

Use the discount impact calculator to model a single planned campaign before you press send. Use the price increase impact calculator for the mirror exercise — what happens if you raise prices instead of discounting (often, the answer is "much less than you fear"). When you want the daily EBIT reconciliation to happen automatically every evening, nouz is monthly, no contract, and setup takes about ten minutes. Try the live demo first if you want to see the shape before committing.

Most discount campaigns lose money — the owner only finds out months later. A 20% off code on a 40% margin product cuts gross profit per sale by 50%. To break even on margin in absolute euros, you would need to double unit volume — and most promotions deliver 10-25% lift, not 100%. The math destroys margin on every campaign the owner runs without same-day visibility. nouz makes the margin impact visible on the day the campaign ran, so the next campaign is informed by the math, not by the hope.

The honest summary: discount codes have a real and defensible place — dead stock, strict net-new acquisition, end-of-season clearouts, strategic loss-leaders with measured attach. Outside of those four cases, the math almost always loses. The five better levers (bundles, gift-with-purchase, free-shipping thresholds, non-discount loyalty, early access) protect margin while accomplishing the same marketing outcomes. The discipline of running every campaign through the per-unit margin math before pressing send — and confirming the result through daily EBIT after — is the difference between a business that compounds margin and one that subsidises customers into oblivion. For the wider Shopify operating system this sits inside, see the Shopify profitability pillar.

FAQ

Are discount codes worth it for small businesses?

Rarely, and only in four specific cases: dead-stock clearance (the alternative is €0 from that inventory), strict net-new customer acquisition with measured CLV recovery (the discount is a CAC cost), end-of-season clearouts (the alternative is a deeper markdown later), and strategic loss-leaders with proven attach math. Outside of those four cases, the per-sale margin destruction is rarely recovered by incremental volume — most discount campaigns lose absolute margin dollars compared to a quiet week at full price. The five better levers (bundles, gift-with-purchase, free-shipping thresholds, non-discount loyalty programs, early access) accomplish the same marketing outcomes while protecting margin.

How much margin does a 20% discount cost me?

Not 20%. The formula is: margin lost per sale = discount rate ÷ gross margin rate. A 20% off code on a 40% gross margin product destroys 50% of gross profit per sale (20 ÷ 40 = 0.50). On a 30% margin product the same 20% discount destroys 67% of gross profit. On a 50% margin product it destroys 40%. The lower your underlying margin, the more brutal the proportional impact of any discount. To recover the lost margin in absolute euros you need additional volume — at 20% off on a 40% margin product you would need to double unit sales, which almost no promotion delivers.

Should I run discounts to acquire new customers?

Sometimes — and only with strict structural gating. A first-time-buyer code that is excluded by design from existing customers (verified by email, account creation date, or IP gating where feasible) can be a defensible CAC cost: you are paying for the acquisition of a customer relationship whose lifetime value, if your CLV math works, exceeds the discount given. The required discipline is the measurement — you have to compute the CLV of customers acquired through the discount campaign and confirm it exceeds all-in acquisition cost. If first-time-buyer-discount customers have worse CLV than organically acquired customers, the campaign is paying for low-quality customers and the math fails. More on CLV math for small ecommerce.

How do I run a discount without losing money?

Three rules. First: scope the discount to a specific category of inventory where cannibalisation is naturally low — dead stock, end-of-season items, slow-moving SKUs that have demonstrably not moved at full price. Never discount bestsellers (the cannibalisation rate is structurally high). Second: limit the discount to net-new customers via structural gating, not to existing customers via email blast. Third: run the per-unit math before pressing send — compute the volume lift required to break even on absolute margin given the discount rate and product margin, and honestly assess whether the campaign will deliver that lift. If your honest estimate of incremental volume is less than the break-even requirement, the campaign will lose money and should be replaced with a non-discount mechanic.

What is the alternative to discount codes?

Five mechanics that drive the same marketing outcomes without margin destruction. Bundle pricing (three items at a structurally lower per-item price than individual purchase — protects per-item margin while lifting AOV 20-35%). Gift-with-purchase (low-cost, high-perceived-value item added above an order threshold — typical net margin impact is half of an equivalent direct discount). Free-shipping threshold (raising the threshold drives AOV up as customers add items to qualify — contribution per order rises). Non-discount loyalty (perks like early access, member-only items, expedited service — extends lifespan without compressing margin). Early access (giving existing customers first access to a new product launch — uses scarcity rather than price). Each of these protects the brand price anchor and avoids subsidising buyers who would have paid full price.

How do I measure if a discount worked?

Compare absolute margin dollars during the campaign week to a comparable baseline week without the campaign. If campaign-week margin dollars exceed baseline-week margin dollars, the campaign worked in absolute terms. If not, the per-unit margin destruction was not recovered by incremental volume. The platforms (loyalty app, email tool, Shopify) will report "campaign-driven revenue" or "redemptions" — those numbers are not a measurement of incremental margin, they are a measurement of activity. The bank-statement math is the only honest measure: did total margin dollars go up, stay flat, or go down compared to a quiet week at full price? Most discount campaigns lose absolute margin even when the dashboards look busy. Same-day P&L visibility (rather than waiting six weeks for the monthly accountant report) is the difference between catching this on day one and discovering it after the next campaign has already run.

Should I run sales at the same time as competitors?

Almost never, and definitely not as a primary strategy. Competing on discount cadence with a larger competitor is a structural losing position — the larger competitor has better supplier terms, lower per-unit fixed cost allocation, and more pricing flexibility. The small business that matches competitor discount cadence ends up with thinner margin every month while looking like it is keeping up on revenue. The defensible posture: differentiate on something other than price (product quality, service, brand experience, community, expertise) and let the larger competitor have the discount-shoppers who were never going to be loyal anyway. Discount-driven customers have structurally worse CLV than full-price customers — the small business is usually better off concentrating on the customer segment that values the differentiation and pays accordingly. The four legitimate discount cases above (dead stock, net-new acquisition with CLV gating, end-of-season clearouts, strategic loss-leaders) still apply, but they are operational tools, not a competitive response.