# 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.

Interactive version: https://www.calcopenly.com/everyday/discount-and-markup-calculator
Subject: Everyday calculators

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.

## Inputs

- **I want to find** (options: Price after discounts, Price from cost and markup, Price from cost and margin)
- **Original price**
- **Discounts (%)**: Applied one after another: 20, 10 means 20% off, then 10% off the reduced price.
- **Cost**
- **Markup (on cost)**
- **Margin (on price)**

## Results

- Final price — main result
- Amount off
- Effective discount
- Profit per item
- Margin
- Markup

## Formula

$$
\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}
$$

## 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

### Cost 60 with 40% margin

- I want to find: Price from cost and margin
- Cost: 60
- Margin (on price): 40%
- **Final price: 100.00**
- **Markup: 66.6667%**
- **Profit per item: 40.00**
- Checked against: Python decimal: 60 / 0.6 = 100; 40/60 = 66.67% markup

### Cost 70 sold at a 30% margin

- I want to find: Price from cost and margin
- Cost: 70
- Margin (on price): 30%
- **Final price: 100.00**
- **Markup: 42.9%**
- Checked against: AccountingTools worked example: sells for 100, costs 70 → 30% margin, 42.9% markup

## 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.

## Sources

- [AccountingTools — The difference between margin and markup](https://www.accountingtools.com/articles/what-is-the-difference-between-margin-and-markup.html)
- [Corporate Finance Institute — Markup and markup percentage](https://corporatefinanceinstitute.com/resources/accounting/markup/)
