← All free tools

Optimal Discount Calculator

Most discount percentages are picked on gut feel, and plenty of them quietly lose money. This free calculator tests every discount level from 0% to 60%, models how each one changes your conversion rate, order value, shipping economics and costs, and reports the percentage that earns the highest net profit.

Enter your store's numbers below, or start with the example data and adjust as you go. How it works ↓

Order economics

Traffic & conversion

The uplift number is the assumption that matters most. How to estimate yours ↓

Customer shipping

Advanced settings

Net profit vs discount level

Net profit Sensitivity range Below cost

Scenario breakdown

Modelled estimates only, not financial advice. Validate with a real test before committing big budgets.

Why most discounts lose money

Discounts look like they work because the top line moves. Sessions and order counts climb, revenue holds up, and the promotion gets declared a win before anyone checks what it did to profit.

The problem is that a discount comes out of your margin, not your revenue. Say you sell at a $150 average order with $60 of product, shipping and fulfillment costs baked in. At full price you keep about $90 an order. Run 20% off and the order is worth $120, but your costs stay put, so you now keep $60. The discount was 20% of revenue and a third of your profit per order. Breaking even on that promotion takes a third more orders; coming out ahead takes more again.

Every discount trades profit per order for order volume. Whether the trade pays off depends on how strongly your customers respond to price, and that response has a sweet spot. Too shallow a discount gives up margin without moving conversion much. Too deep a discount gives up more margin than any realistic volume can recover. Somewhere in between sits the level that maximises total profit, and it is rarely the round number picked in a planning meeting.

How this calculator works

Rather than guessing, the calculator brute-forces the answer. It tests every discount level in your range (0–60% by default, in 1% steps) and builds a full profit-and-loss for each one:

  • Order value: your AOV (or product price × units) reduced by the discount, plus any shipping fee the customer pays.
  • Conversion: your base conversion rate, lifted by your uplift assumption for every 10 points of discount, with an extra boost when the order qualifies for free shipping.
  • Costs: COGS, your real shipping cost, fulfillment fees and, if you enter one, ad cost per order. All of it is charged on every order.
  • Profit: orders × profit per order, minus your fixed costs for the period.
net profit at discount D =
  sessions × CVR(D) × (order value(D) − order costs) − fixed costs

The scenario with the highest net profit wins. Scenarios where the discounted order value cannot cover its own costs are flagged as below cost and excluded from the recommendation, because volume cannot fix negative unit economics.

The free shipping logic deserves a mention, because most spreadsheet models get it wrong. Your carrier cost is paid on every order. What changes at a free-shipping threshold is the fee revenue: below it, customers pay your shipping fee; above it, you waive the fee and conversion gets a lift instead. The calculator also checks qualification against the discounted cart value. A deep discount can pull your average order under the threshold, which claws back fee revenue but costs you the free-shipping conversion boost. Every scenario prices in that trade-off.

How to estimate your conversion uplift

One input drives this whole model: how much a discount actually lifts your conversion rate. Get that wrong and no calculator can save you, so here's how to ground it in your own data:

  1. Open GA4 (or Shopify Analytics) and find your last meaningful promotion: something sitewide, at a known depth, that ran for at least a week.
  2. Compare conversion rate during the promo to the two or three normal weeks either side of it. Ignore the launch-day spike; use the whole window.
  3. Divide the relative lift by the discount depth in "10% blocks". Conversion going from 2.0% to 2.9% during a 20% off sale is a 45% relative lift across two blocks, or roughly 22% uplift per 10% of discount.

In our experience most ecommerce brands land between 15% and 35% uplift per 10% block. The response is stronger for impulse-led, price-driven categories and weaker for considered purchases and luxury positioning. If you have no promo history at all, start at 20 to 25% and pay close attention to the sensitivity readout.

Why the sensitivity range matters: the calculator re-runs the whole model with your uplift assumption halved and increased by half, and shows the optimal discount in each world. If that range is narrow, your answer is robust and you can act on it. If it is wide, say 0% to 20%, your uplift estimate is doing all the work. Run a small test before committing to a sitewide number.

A worked example

The example data the calculator loads with tells a typical story. A store does 10,000 sessions a period at a 2% conversion rate, with a $150 AOV, $60 of per-order costs, an $8.95 shipping fee and $15,000 of fixed costs. At full price that's about $4,790 of net profit.

Assume conversion lifts 25% for every 10 points of discount, and the sweep finds the optimum at 13% off: profit climbs to roughly $6,050, a 26% improvement over not discounting, worth about $1,260 every period. Push to 30% off and you are back below the no-discount baseline, because the extra orders cannot cover the margin you gave away. The curve on the chart shows both the sweet spot and the cliff past it.

Now try the same store with a $100 free-shipping threshold: the optimum shifts, because discounts past roughly 33% drag the average order under the threshold and the model starts trading the conversion boost against recovered fee revenue. Gut feel misses interactions like that.

When a discount is the wrong move

Sometimes the honest answer is "don't". A few situations where this calculator will help you see it:

  • Your margins are too thin. If the tool flags most of your range as below cost, no discount depth is viable. Fix landed costs, pricing or AOV first.
  • Your customers barely respond to price. Uplift under about 10% per block usually means the optimum is 0%. Considered-purchase and luxury brands often live here. Promote with value-adds instead.
  • You'd be pulling sales forward. The model assumes discounted orders are incremental. If a promo mostly shifts next month's full-price buyers into this month's sale, real uplift is lower than your analytics suggest.
  • Brand positioning matters more than this quarter. Frequent discounting trains customers to wait for the next sale. That long-term erosion is not in this model, so price it in with judgement.

Often a structured offer beats a flat discount: tiered "buy more, save more" offers, bundles that protect perceived value, a free-shipping threshold set just above your current AOV, or a gift with purchase. Calculators for several of those are on the free tools page.

Assumptions and limitations

Every model simplifies. So you can trust the output for what it is, here's what this one assumes:

  • Linear uplift. Conversion lifts by the same relative amount for each 10-point block of discount. Real response curves usually flatten at deep discounts, which is another reason to be sceptical when the optimum lands at the edge of your range (the tool warns you when it does).
  • Blended averages. Sitewide mode treats every order like your average order. Mix effects, such as discount-hunters skewing towards low-margin SKUs, are not modelled.
  • Constant basket size. Units per order stay fixed as the discount changes, though in reality deep discounts often increase basket size.
  • Incremental demand. No pull-forward, stock-up behaviour, returns, or long-term brand effects.
  • One period at a time. It is a snapshot of the promotion period, not a 12-month LTV model.

These simplifications keep the model honest. It takes you from "25% off feels right" to a defensible starting number with a known uncertainty range, and the last step is a real test on your own store.

Frequently Asked Questions

The arithmetic is exact. The accuracy of the recommendation depends on your inputs, especially the conversion uplift assumption, which is an estimate of customer behaviour. That is why the calculator shows a sensitivity range: the optimal discount if your uplift turns out to be half, or one and a half times, what you entered. Treat the recommendation as a strong starting point and validate it with a real test before rolling a discount out broadly.

Look at your last promotion in GA4 or your store analytics: compare the conversion rate during the promo to the weeks either side of it, then divide by the discount depth. For example, if conversion went from 2.0% to 2.9% during a 20% off sale, that is a 45% relative lift across two "10% blocks", or roughly 22% uplift per 10% of discount. Most brands land somewhere between 15% and 35% per 10% block. If you have no promo history, start at 20 to 25% and lean on the sensitivity range.

Yes. You can set the shipping fee you charge customers, a free-shipping threshold, and the conversion boost free shipping gives you. The model checks qualification against the discounted cart value, so a deep discount can drag orders below your threshold: you lose the free-shipping conversion boost but recover the shipping fee as revenue. Every scenario prices in that trade-off.

Two ways. You can enter a blended ad cost per order (CAC) in advanced settings and it will be deducted from every order's profit. Separately, the marketing insights panel shows your breakeven ROAS at each discount level (with an uncertainty range for attribution error) and how much you can afford to spend per order at your target ROAS. Keep scaling ad spend out of the fixed costs field so it is not double-counted.

Run the calculator with event-specific assumptions rather than everyday ones: sessions are higher, intent is higher, and uplift per 10% of discount is usually stronger during peak events. If the recommendation lands at the top of your tested range, your uplift assumption is doing too much work. Widen the range, or stress-test it with the sensitivity readout, before committing to a 40%+ sitewide sale.

Sitewide mode uses blended store averages (average order value and average costs per order) to model a storewide promotion like "20% off everything". Single product mode builds the order from one product's price, unit cost and typical units per order, which suits a product-specific markdown or a hero-SKU promotion.

No. The calculator runs entirely in your browser and nothing you enter is sent to a server. Your inputs are saved in your own browser's local storage so they survive a refresh, and the "copy shareable link" button encodes them in the URL only when you choose to share it.

Ready to scale?

What you'll get

Comprehensive digital ecosystem audit
Deep actionable commercial insights
Competitor benchmarking
No obligations, no hard sell, just value

"Word of Mouth Digital has more than doubled our marketing-qualified leads."

Nick Allan
Nick Allan Sales & Marketing Manager - Domaine Homes
$187m+ managed adspend
$750m+ GMV generated
200+ brands scaled

Want us to find your real optimal discount?