CalcOpenly

Discount, markup and margin calculator

Sale price after one or more percent-off discounts, and selling price from cost using a markup or a profit margin, with each converted to the other.

Updated Checked against 7 worked examples

$
Applied one after another: 20, 10 means 20% off, then 10% off the reduced price.
Try
Final price
$
Final price: $180.00
Shown to 2 decimal places, half-even
Amount off
$70.00
Effective discount
28%

You pay $180.00, saving $70.00 — an effective discount of 28%. That is less than the 30% you get by adding the discounts, because each one applies to an already reduced price.

Price after each discount

Original: $250$250OriginalAfter 20%: $200$200After 20%After 10%: $180$180After 10%
How it's calculated S
  1. Apply each discount to the running price

    250×(1−0.2)×(1−0.1)=180.00250 \times (1 - 0.2) \times (1 - 0.1) = 180.00
  2. Effective discount

    (1−0.8×0.9)×100=28%\left(1 - 0.8 \times 0.9\right) \times 100 = 28\%

    Stacked discounts multiply, so 20% + 10% off is 28%, not 30%.

About the discount, markup and margin calculator

Each discount multiplies the running price by (1 − d/100), so stacked discounts compound rather than add. For pricing, markup is profit as a percentage of cost and margin is profit as a percentage of the selling price. The calculator finds the selling price from either one and converts between them with margin = markup ÷ (1 + markup).

With the defaults, 20% off 250 followed by a further 10% off leaves 180: an effective discount of 28%, not 30%. In the pricing modes, an item that costs 80 and is marked up 25% sells for 100, which is a 20% margin.

A margin must stay below 100%, since a 100% margin would mean the item cost nothing, while a markup has no upper limit. All figures are per item, before any sales tax or VAT.

Worked examples

250 with 20% then 10% off

I want to find
Price after discounts
Original price
250
Discounts (%)
20, 10
Final price
180.00
Amount off
70.00
Effective discount
28%

Checked against: Python decimal: 250 × 0.8 × 0.9 = 180; 1 − 0.72 = 28%

Two 50% discounts are 75% off, not 100%

I want to find
Price after discounts
Original price
100
Discounts (%)
50, 50
Final price
25.00
Effective discount
75%

Checked against: Python decimal: 100 × 0.5 × 0.5 = 25

No discount

I want to find
Price after discounts
Original price
250
Discounts (%)
0
Final price
250.00
Effective discount
0%

Checked against: Definition: 0% off leaves the price unchanged

Cost 80 with 25% markup

I want to find
Price from cost and markup
Cost
80
Markup (on cost)
25%
Final price
100.00
Margin
20%
Profit per item
20.00

Checked against: Python decimal: 80 × 1.25 = 100; 20/100 = 20% margin

Questions

How do you calculate a percentage discount?

Multiply the price by (1 − discount ÷ 100). 20% off 250 is 250 × 0.8 = 200, a saving of 50. To find the discount from two prices, divide the saving by the original price: an item cut from 250 to 180 is 70 ÷ 250 = 28% off.

Is 20% off plus an extra 10% off the same as 30% off?

No. The second discount applies to the already reduced price, so 20% then 10% off is 1 − 0.8 × 0.9 = 28% off in total. Two 50% discounts leave a quarter of the price, which is 75% off rather than 100%. The order does not matter: 10% then 20% also gives 28%.

What is the difference between markup and margin?

Markup is profit divided by cost; margin is profit divided by the selling price. An item that costs 70 and sells for 100 makes 30 profit: a 42.9% markup and a 30% margin, the pairing AccountingTools uses in its explanation. Margin is always the smaller of the two, and a markup m converts to a margin of m ÷ (1 + m).

What markup gives a 50% margin?

A 100% markup: doubling the cost makes the profit equal to the cost, which is half the selling price. In general markup = margin ÷ (1 − margin), so a 20% margin needs a 25% markup, a 40% margin needs 66.67%, and a 60% margin needs 150%.

How do you find the selling price from cost and margin?

Divide the cost by (1 − margin). A cost of 60 at a 40% margin sells for 60 ÷ 0.6 = 100. Adding 40% to the cost instead gives 84, which is only a 28.57% margin; confusing the two percentages underprices every item.

How accurate is the discount, markup and margin calculator?

Accuracy depends on your inputs and the method's assumptions. Decimal arithmetic uses 50 significant digits, but estimates, numerical methods and source data can be less precise; the displayed rounding does not remove those limits. It is checked against 7 worked examples whose answers come from independent sources; for example, “250 with 20% then 10% off” is checked against Python decimal: 250 × 0.8 × 0.9 = 180; 1 − 0.72 = 28%.

Where does the method come from?

AccountingTools — The difference between margin and markup; Corporate Finance Institute — Markup and markup percentage.

About this calculator

Pfinal=P∏i(1−di100)margin=markup1+markupmarkup=margin1−margin\begin{gathered}P_{\text{final}} = P\prod_i\left(1 - \frac{d_i}{100}\right) \\ \text{margin} = \frac{\text{markup}}{1 + \text{markup}} \\ \text{markup} = \frac{\text{margin}}{1 - \text{margin}}\end{gathered}

Sources

  1. AccountingTools — The difference between margin and markup
  2. Corporate Finance Institute — Markup and markup percentage

Checked against references

7 worked examples with independently sourced answers ship with this calculator. They run in the test suite; you can run them here too.

Related calculators

Allow optional Google Analytics to measure page visits? Calculators work either way. Privacy and choices

Optional analytics: off.