What does a discount code cost in margin?
Enter your order value, margin, discount and the orders that used the code. See the margin you gave away on orders that would have come anyway, and how many extra orders the code needs to pay for itself.
- 5 inputs
- Every sum shown
- No sign-up
Your code, your margin.
Type your own numbers. The results and the sums below them update as you go.
Your discount
Filled in with an example: 200 orders of €40 with 15% off, at a 45% margin, and half of them would have come anyway. Replace it with your own numbers.
Before the discount. Use amounts without VAT, like your margin.
Revenue minus product cost, as a share of the full price.
Percentage off the order value.
Amount off each order.
In the period you want to check.
Share of those orders that would also have come without the code. Only a test with a group that gets no code tells you this. How to measure it
- Discount per order
- €6.00
- Margin per order at full price
- €18.00
- Margin per discounted order35.3% of the discounted price
- €12.00
- Total discount given
- €1,200
50extra orders needed
The code has to bring at least 50 orders that wouldn’t have come without it, to win back the margin given away. In your numbers it brought 100.
The code earned more margin than it gave away.
The code pays for itself as long as no more than 66.7% of its orders would have come anyway.
- discount per order
- = €40.00 × 15% = €6.00
- margin per order
- = €40.00 × 45% = €18.00
- margin per discounted order
- = €18.00 − €6.00 = €12.00
- orders that would have come anyway
- = 200 × 50% = 100
- margin given away
- = 100 × €6.00 = €600
- extra orders to break even
- = €600 ÷ €12.00 = 50
- extra orders in your numbers
- = 200 − 100 = 100
- net margin effect
- = 100 × €12.00 − €600 = +€600
The share of orders that would have come anyway decides the outcome, and it’s the one number you can’t look up. Send the same message to a random part of the group without a code, and compare orders.
Oftenflow checks each customer’s history first and leaves the code out for customers who usually pay full price. How smart discounts work →
A simplified model with your inputs. The share that would have ordered anyway is an estimate until you test it.
Keep the code for customers who need it.
Oftenflow is an AI agent for Shopify stores, still in development. Before it proposes a discount, it checks whether the customer ever bought at full price, and leaves the code out where it isn’t needed.
Your Monday email shows how much margin you kept by skipping discounts that weren’t needed.
How smart discounts work →Planned: 30% off for the first 100 stores. One email when your invite is ready, no newsletter.
The sums, in plain sight.
A discount costs margin on every order that uses it. It earns margin only on the orders it adds. The calculator splits the two and compares them.
- discount per order
- = order value × discount %, or the fixed amount
- margin per order
- = order value × gross margin
- margin per discounted order
- = margin per order − discount per order
- margin given away
- = orders with the code × share that would have come anyway × discount per order
- extra orders to break even
- = margin given away ÷ margin per discounted order, rounded up
- net margin effect
- = extra orders × margin per discounted order − margin given away
- break-even share
- = 1 − discount per order ÷ margin per order
In plain language
- Take one order of €40 at a 45% margin: €18 of margin.
- With 15% off, the customer pays €34. Your product cost stays the same, so the €6 discount comes straight off the margin: €12 left.
- Of 200 orders with the code, say 100 would have come anyway. On those, the code bought nothing and gave away 100 × €6 = €600.
- The other 100 orders are extra. Each brings €12 of margin: €1,200.
- To win back the €600, the code needs €600 ÷ €12 = 50 extra orders. It brought 100, so the net effect is €1,200 − €600 = +€600.
- Put another way: the code pays for itself while the share of orders that would have come anyway stays below 1 − €6 ÷ €18 = 66.7%.
What this leaves out
- Differences in order value. Every order is worth the average, with or without the code.
- Changes in product cost. The discount comes off the margin in full.
- Later orders. Repeat purchases after the period, and customers who learn to wait for the next code, aren’t counted.
- Other offers. Customers who would have ordered anyway pay full price in this calculation, with no sale or other code.
- VAT, shipping, payment fees and the cost of sending the message.
- A measured share. The share that would have ordered anyway is your estimate until a test with a group that gets no code measures it.
Questions about discount costs
How do I know how many customers would have ordered anyway?
You measure it. Send the same message to a random part of the group without a code, and compare the order rates within a fixed window. Our guide on holdout groups explains how. Until then, try a few values to see how much the answer depends on it.
Why does the calculator use margin instead of revenue?
The discount comes out of your margin, since the product costs you the same. A 15% discount on an order with a 45% margin takes a third of that margin. Revenue alone doesn’t show that.
Is a fixed amount cheaper than a percentage?
It depends on the order value. A fixed amount costs the same on every order, so it weighs more on small orders and less on big ones. Switch between the two in the calculator to compare them with your own order value.
What if the discount is bigger than my margin?
Then every discounted order loses money, the extra ones included. No number of extra orders breaks even in this calculation. A discount like that only pays off through later orders at full price, which this calculator leaves out.
Do discounts teach customers to wait?
They can. Customers who get a code every time may hold off until the next one. That cost comes on top of what this calculator shows. Our guide on discount dependence explains how to spot it in your order export.
Get an invite when we open the doors.
Planned: 30% off for the first 100 stores. One email when your invite is ready, no newsletter.
- Plans from €29 a month, never per contact
- Works with the email tool you already use
- No card, no commitment
