Discount calculator: price after a reduction
Enter a price and a discount, add a second one if the till takes off more: the final price, the saving and the actual total discount appear instantly.
Price after discount
£55.93
you save £23.97
- Actual total discount
- 30.00%
- Saving
- £23.97
How we calculated it
Final price = price × (1 − discount) × (1 − extra discount)
£79.90 × (1 − 30%) × (1 − 0%) = £55.93
A label says 30% off, a voucher promises another 20% at the till, and the question is simple: what will I actually pay? This page answers it, and shows why two stacked discounts never add up to their sum.
It works the same for a shop price, a supplier invoice or a quote you are preparing: the discount is a percentage of the price it applies to, and the calculation is shown under the result.
How to use it
- Enter the original priceThe price before any reduction. VAT is irrelevant here: apply the discount to the figure that is printed, whether it is net or gross.
- Enter the discountAs a percentage, between 0 and 100. 30% off a price of 79.90 leaves 55.93 to pay.
- Add an extra discount if neededLeave 0 if there is only one. A second discount is applied to the price already reduced, not to the original price.
The formula
Final price = original price × (1 − discount ÷ 100). With 30% off 79.90: 79.90 × 0.70 = 55.93, a saving of 23.97. The saving is simply the original price minus the final price.
Two discounts do not add up
A further 20% applied to an item already reduced by 30% takes 20% of the new price, not of the original one. The result is 79.90 × 0.70 × 0.80 = 44.74, so a total discount of 44%, not 50%.
In general, two discounts a and b give a total of 1 − (1 − a) × (1 − b). 30% then 20%: 1 − 0.7 × 0.8 = 44%.
The order makes no difference: 20% then 30% gives exactly the same price, because the multiplication is the same.
Finding the price before the discount
If you only know the sale price, divide it by (1 − discount). An item sold at 150 after 25% off was priced at 150 ÷ 0.75 = 200. Adding 25% to 150 would give 187.50, which is wrong for the same reason as above: the base has changed.