Discount profit calculator

20% off sitewide, free shipping or a bundle? Put every offer on the same costs, see what each one leaves per order, and agree the limits before Black Friday.

++

Black Friday planning usually starts with someone asking which offer to run, and the same three tend to come up: 20% off sitewide, free shipping, or the bestseller bundled with a second item at 15% off. To a customer they sound about equally generous.

They don't cost the same.

We typed an example store into the discount profit calculator above: a €60 product (19% VAT included) that costs €18, €6.50 to ship and fulfill with €4.90 charged to the customer, Shopify Payments on Grow, 10% returns and €14 of ads per order. Then we priced every offer on those same costs:

OfferCustomer savesYou keep per order
Full price–€11.42
20% off€12.00€2.56
Free shipping€4.90€7.30
Bundle, 15% off€13.50€14.60

At 20% off, the order keeps less than a quarter of what it made at full price. Free shipping lands in between.

The bundle is the only offer that keeps more than full price, €3.18 more per order than the €60 product sold alone, because a bigger order still ships in one parcel and pays one ad cost.

The calculator has four tabs: Discount, Free shipping and Bundle each price one offer, and Compare offers lines them up side by side using whatever discount you type. Your own store will come out differently, which is the reason to run it before the meeting rather than after the sale.

Compare the offers on the same costs

The Compare offers tab runs full price, the discount, free shipping and the bundle through the same price, product cost, shipping, fees, returns and CPA, then highlights the offer that keeps the most. In the example store, that's the bundle.

Discount profit calculator, Compare offers tab: profit per order bars and an offers table for full price, 20% off, free shipping and a 15% off bundle
The Compare offers tab for the example store: full price, 20% off, free shipping and the bundle on the same costs. The bundle keeps the most per order, €14.60.

"Best" in that tab means profit per order.

A bundle is a bigger order, and the costs that come once per order (the parcel, the fixed payment fee, the ad cost of finding the customer) get spread over more product. That ranking says nothing about how many people take each offer. Total profit is profit per order times orders, and a discount that pulls in far more orders than the bundle can still finish the weekend ahead.

For the bundle, the tab's Orders needed column compares the bundle with the same two items bought at full price in one order, the stricter of the two comparisons covered further down.

We'd bring this table to the planning meeting before anyone writes ad copy. Once "20% off everything" is in the creative and the landing page, nobody wants to reopen the decision, and an argument about which offer "feels" stronger gets much shorter when everyone can see what each one leaves in euros.

Why a discount takes more profit than it looks

Take 20% off the example product and the price falls by €12. The Discount tab shows the order line by line under the chart:

LineFull price20% off
Selling price€60.00€48.00
Refunds (10% returned)−€6.00−€4.80
VAT−€8.62−€6.90
= Sales you keep€45.38€36.30
Product cost−€16.20−€16.20
= Gross profit€29.18€20.10
Shipping and fulfilment cost−€6.50−€6.50
Shipping customers pay (excl. VAT)+€4.12+€4.12
Payment fees−€1.38−€1.16
= After shipping and fees€25.42€16.56
Ads−€14.00−€14.00
= You keep€11.42€2.56
Profit margin25.2%7.0%
Discount profit calculator table comparing a €60 order at full price and at 20% off, from selling price to what the order keeps
The Discount tab at 20% off: the same €60 order line by line. Product cost, shipping and ads don't move, so the order keeps €2.56 instead of €11.42.

Gross profit drops by 31%, from €29.18 to €20.10, which is where a gross-margin view of the promotion stops.

The order keeps €8.86 less, 77.6% of its profit, because VAT, refunds and fees shrink with the price while product cost, shipping and ads stay exactly where they were.

The 3PL charges the same €6.50 for a €48 parcel as for a €60 one, and the customer the ads found cost the same €14 either way. Every euro the discount costs comes off the bottom of the order, and the bottom was small to begin with.

How many more orders a discount needs

A discount pays for itself only if the extra orders make up for the lower profit on each one. The calculator answers that as orders needed to match full-price profit: profit per order at full price, divided by profit per order at the offer, minus one.

At full price, 100 orders make €1,142. At 20% off, making the same €1,142 takes 447 orders.

OfferCustomer paysYou keepMarginOrders neededBreak-even ROASPOAS
Full price€60.00€11.4225.2%–2.36x1.82x
5% off€57.00€9.2021.3%+24.1%2.46x1.66x
10% off€54.00€6.9917.1%+63.4%2.57x1.50x
15% off€51.00€4.7712.4%+139%2.72x1.34x
20% off€48.00€2.567.0%+347%2.90x1.18x
25% off€45.00€0.341.0%+3,245%3.14x1.02x
30% off€42.00−€1.87−5.9%not possible3.46x0.87x

To read it, write down the lift in orders you actually believe the offer will bring, then find the deepest row whose Orders needed figure it still covers. If the team expects about 50% more orders, that row is 5% off; 10% off already needs more.

Those extra orders have to be bought, too. At a €14 CPA, 100 full-price orders take €1,400 of ads, and the 447 orders that 20% off needs take €6,258, if the CPA holds.

Most discount calculators only ask for price and product cost. For this product they'd say 20% off needs 45.1% more orders (per-unit profit before VAT falls from €32.42 to €22.34) and 10% off needs 18.4%, because they leave out shipping, fees, returns and ads, the costs that don't shrink with the price. On 5 and 9 Oct 2026 we ran one test store through 21 free discount, bundle and free-shipping-threshold calculators, and the ones that counted costs at all left out the fixed payment fee per order, while none of them handled VAT.

Set the deepest discount before the sale

The deepest safe discount is the point where the order keeps exactly €0, rounded down to 0.1%. For the example product, that break even discount is 25.7%.

Break-even is a low bar for a promotion. Set a margin floor and the calculator gives the deepest discount that still leaves that margin: 17.2% for a 10% floor, 21.7% for a 5% floor. The chart turns columns under the floor amber and columns below zero red, and you can click any column to try that discount.

Bar chart of profit per order from 0% to 40% off, with 20% and 25% off in amber under a 10% margin floor and 30% to 40% off below zero
Profit per order at each discount with a 10% margin floor. Amber columns keep a profit but miss the floor; red columns lose money from 25.7% off.

We'd set the floor before anyone opens Meta Ads Manager or Shopify's discount settings. A limit agreed weeks ahead in a calm meeting is much easier to hold than one argued over on a slow Friday morning, and a 20% headline on a product whose 10%-margin ceiling is 17.2% is a decision made by default.

Free shipping costs as much as a 9.3% discount

Free shipping feels cheaper because the price on the product page stays at €60. The cost moves to a different line: the customer stops paying €4.90 at checkout, and its net value, €4.12 after VAT, comes off every order.

In the example store, free shipping keeps €7.30 per order. It takes the same euros as 9.3% off and needs 56.4% more orders to match full-price profit.

Discount profit calculator, Free shipping tab: €7.30 per order, costs as much as 9.3% off, 56.4% more orders needed
The Free shipping tab: dropping the €4.90 charge leaves €7.30 per order, the same profit as 9.3% off.

The tab needs a value in Shipping you charge. If you already ship for free, there's no charge to give up, and the offer costs nothing extra.

On free shipping vs discount, we'd take free shipping over 20% off for this store without much debate. It's cheaper than any discount deeper than 9.3%, including 10% off, even though the customer saves less. The trade is real: a visible percentage reads better in an ad than a line at checkout, and only your own past promotions show which one your customers respond to.

Work out a free shipping threshold

The break-even threshold is the average order plus shipping cost divided by the margin on the added spend. The calculator doesn't compute it; we left a threshold mode out of this version.

As an illustration with a different store: an €80 average order excluding VAT, €6 shipping and a 65% gross margin give €89.23. Take a 2.9% payment fee off the margin on the added spend (62.1%) and the threshold rises to €89.66.

How to price a bundle

To calculate a bundle price, add up the item prices for the list price, add up the product costs, and apply one bundle discount to the total. The Bundle tab works as a bundle pricing calculator on top of that, since it knows a bundle is one order: one parcel, one fixed payment fee and one CPA.

The example bundle pairs the €60 product with a €30 item that costs €10. The list price is €90, and at 15% off the customer pays €76.50.

OrderCustomer paysYou keep per order
The €60 product alone, full price€60.00€11.42
Both items in one order, full price€90.00€24.56
Bundle, 15% off€76.50€14.60
Discount profit calculator, Bundle tab: two items at €60 and €30, 15% bundle discount, €14.60 per order
The Bundle tab with the €60 product and a €30 second item at 15% off: the bundle keeps €14.60 per order and needs 68.3% more bundle orders than the same items sold at full price.

Which row to compare against depends on who buys the bundle. A customer who came for the €60 product and adds the second item leaves €3.18 more per order than the product alone would have. A customer who'd have bought both items anyway now leaves €14.60 instead of €24.56, and covering that gap takes 68.3% more bundle orders than the store sold of the two items together at full price.

We'd plan on the second comparison, because it's the one that can lose money. An order export from Shopify admin shows how often the two items already end up in the same order, and the more often they do, the more of your bundle buyers are getting a discount on a basket they'd have paid full price for.

The deepest bundle discount in this example is 36.9% at break-even, or 29.7% with a 10% margin floor.

Buy one get one free is a bundle too. On two €60 items, BOGO is a two-item bundle at 50% off: the customer pays €60 for €120 of product. Enter the same product as the second item and set the bundle discount to 50% to see what it leaves.

Check your break-even ROAS for the promotion

A discount raises the ROAS you need to break even, because the order brings in less while product cost and shipping stay where they were. In the example store, break-even ROAS goes from 2.36x at full price to 2.90x at 20% off, and POAS falls from 1.82x to 1.18x.

OfferBreak-even ROASPOAS
Full price2.36x1.82x
20% off2.90x1.18x
Free shipping2.82x1.52x
Bundle, 15% off2.68x2.04x

Free shipping keeps far more per order than 20% off and still needs almost the same ROAS, because the price the platform counts as revenue stays at €60 while the shipping charge disappears from the order.

Rank offers by profit per order, and judge campaigns against the break-even ROAS of the offer they sell.

Campaigns that cleared the bar in October can fall under it in November without anything changing in Ads Manager. The CPA won't drop because the price did.

How to fill in the calculator

Start with one ordinary order of the product you'd promote, and the tool works as a Shopify discount calculator that counts every cost on the order. Enter the selling price and product cost, then set Incl. or Excl. VAT to match how your prices are entered and pick the country.

Shipping takes two fields. Shipping and fulfilment cost is what the carrier and your 3PL charge you per parcel, pick-and-pack and packaging included. Shipping you charge is what the customer pays at checkout; leave it empty if shipping is already free. Payment presets fill in the fee rate and fixed fee for your Shopify plan and payment method, and both stay editable.

Returns assume a full refund with the item back in stock.

For CPA, use what a new customer costs you in ads if the promotion is meant to bring in new buyers: ad spend divided by first-time orders, which Shopify admin splits out from returning customers. Blended CPA (all ad spend divided by all orders) understates it, because repeat buyers order without an ad having to find them again. The margin floor is optional and reads Break-even until you set one.

For a sitewide sale, run the products that carry most of your revenue one at a time. As a first pass you can enter the average order and its blended product cost instead, but the average hides the spread between products that can carry 20% off and products that lose money well before it.

What this calculator can't tell you

It can't tell you whether the offer will bring the orders it needs. Your past promotions in Shopify admin are the place to check whether a lift like that has ever happened for your store.

Returns often change during a promotion, and the calculator holds your return rate steady. The same goes for CPA, where last month's figure says little about what the auction will charge in the last week of November. Run the offer again with a higher return rate and a higher CPA and see how much room the plan has left.

It also prices one order at a time, and a sitewide sale can shift the mix toward exactly the products with the least margin to give away.

Admetrics shows profit per order for every offer, campaign, creative and SKU while the promotion runs, so you can move budget before the sale ends.

FAQ

How do you calculate profit after a discount?

Apply the discount to the price the customer pays, VAT included, then take out VAT and the share of orders refunded to get the sales you keep. Subtract product cost on kept orders, shipping less what the customer pays for it, payment fees and ad cost per order. The percentage part of the fee shrinks with the price; the fixed part per order doesn't.

How many more sales do I need to cover a discount?

Divide profit per order at full price by profit per order at the discount and subtract one. Count only orders the discount actually adds. Buyers who would have paid full price a week later, or who wait for the sale instead of buying in early November, show up as extra orders in the weekend's numbers without adding any.

What is the maximum discount I can offer without losing money?

The discount where the order keeps exactly €0 after every cost, ads included, rounded down. Work it out with the CPA you expect during the sale, since a higher CPA lowers that ceiling. Break-even leaves nothing for the promotion to earn, which is why we'd plan against a margin floor and treat break-even as the hard stop.

Is free shipping better than a percentage discount?

Convert it before you compare. Divide the shipping charge you'd give up, excluding VAT, by the sales you keep per order minus the percentage payment fee: that's the discount it equals. In the example store, €4.12 ÷ (€45.38 − €1.08) gives 9.3%. The same charge on a product half the price equals twice the discount.

How do you calculate a free shipping threshold?

Average order plus shipping cost divided by the margin on the added spend. Take the payment fee off the margin first; gross margin alone sets the threshold too low. Then check the order values in Shopify admin: a threshold only pays if enough customers sit just below it and add to reach it, instead of qualifying already.

How much discount should a bundle have?

Enough to get the second item into the basket, and no deeper than the floor the Bundle tab gives you. Pick a second item that rarely ships with the first today. If the two are already bought together often, most bundle orders are a discount on a basket that would have paid full price.

Is buy one get one free the same as 50% off?

On the pair, yes. It differs from 50% off a single item because the order carries two product costs while the customer pays for one, and it ships in one parcel with one payment fee and one CPA. Model it as a two-item bundle at 50% off with the same product entered twice.

Should the discount math use prices with or without VAT?

Profit without VAT, since VAT belongs to the tax office and shrinks with the price. The discount and the payment fee apply to the price the customer pays, VAT included. If you sell across the EU, VAT follows the customer's country. Run your main markets separately.

Silvana Chirita writes about ecommerce measurement for Admetrics. Last updated October 2026.

++

See what your ad platforms aren't telling you

One hour setup. 21 days free. Cancel any time.
++

More free tools.