Discount Calculator

Runs locallyInput stays in your browserFree, no sign-up

A discount comes down to two formulas, and once they are clear no price tag can mislead you. The discount rate is the original price minus the sale price, divided by the original price — the share of the price you do not pay. The sale price is the original price times one minus the discount rate. With the default example, an original price of 299 at 20% off gives 299 times 0.8, which is 239.20, saving 59.80. Note the wording trap: 20% off means you pay 80% of the price, not 20% of it. Stacked discounts do not add up; their post-discount factors multiply. Take 20% off followed by a further 10% off: 0.8 times 0.9 is 0.72, so the effective discount is 28%, and a 299 item ends up at 215.28, saving 83.72 — not the 30% off that adding the two rates would suggest.

Three jobs cover most uses. The first is comparing store and livestream prices: one shop lists 299 at 20% off while another lists a flat 239, and running both through the calculator shows the first comes to 239.20, so the flat price is actually cheaper by a fraction. The second is reverse-engineering an inflated was-price: if all you see is a sale price of 239.20 and a 20% off tag, dividing 239.20 by 0.8 gives the true original price of 299, and any claimed was-price far above that exposes the markup. The third is stacking coupons during a big sale, when a store coupon, a platform coupon and a sale discount pile up; adding the percentages overstates the saving, while multiplying the factors matches what the checkout actually charges.

Five edge cases are worth knowing before you trust a result. First, the discount rate runs from 0 to 100: 0 means no discount and 100 means free, but the reverse calculation cannot use 100% because dividing a sale price by zero is meaningless, so the tool rejects it. Second, the sale price must sit below the original price: equal means no discount and higher means a price rise, and the original-plus-sale mode rejects both, which usually means the two numbers were swapped. Third, percentage fields take the percent number itself: 20% off is entered as 20, not 0.2, or the result will come out near the full price. Fourth, rounding: amounts are rounded to two decimals, while a store system may truncate per item or round each item before summing, so a cent or two of drift against the receipt is normal. Fifth, scope: this tool prices the discount itself only, excluding tax and shipping, which are added on top of the discounted price.

Using it is straightforward: pick one of the three calculations, enter the two numbers you know, and the third is worked out for you, with the savings, the effective discount rate and the full working shown underneath so you can forward the arithmetic to someone else for checking. Enter a second discount in the extra field when an offer stacks; leave it at 0 otherwise. Switching calculations swaps in that mode's default example, which you can overwrite with your own figures. Everything runs locally in your browser — nothing you type is uploaded or stored. Unlike the general percentage calculator, which covers shares and increases, this page is built for shopping: original price, discount rate and sale price in all three directions, plus stacked discounts.

How to use

  1. Pick a calculation: sale price from original price and discount rate, discount rate from original and sale price, or original price from sale price and discount rate.
  2. Enter the two numbers you know. Percentage fields take the percent number itself: 20% off is entered as 20, not 0.2. Use the extra field for a second, stacked discount.
  3. Read the result below: sale price or original price, the amount saved, the effective discount rate and the full working, all in one place.
  4. Copy the result to share it or save it, or reset to restore the default example figures.

FAQ

Should 20% off be entered as 20 or 80?

Enter 20. The discount rate is the share you save: 20% off means you pay 80% of the price and save 20%. Entering 80 would be treated as 80% off, leaving only 20% of the price — the opposite of the tag. The same rule holds everywhere on this page: a half-price item is 50, a 10% off item is 10.

Why is 20% off plus another 10% off not 30% off?

Because the second discount applies to the already-discounted price, not to the original. After the first discount 0.8 of the price remains; the second discount leaves 0.9 of that, and 0.8 times 0.9 is 0.72. You pay 72% of the original price, so the effective discount is 28%. Adding the two rates overstates the saving by two percentage points.

How do I work out the original price from a sale price and a discount?

Divide the sale price by the post-discount factor: original price equals sale price divided by one minus the discount rate. A 239.20 item at 20% off gives 239.20 divided by 0.8, which is 299. With a stacked offer, divide by the product of both factors: 215.28 at 20% off plus a further 10% off is 215.28 divided by 0.72, which is 299.

What if the sale price is higher than the original price?

Then it is not a discount at all, it is a price rise, and the formula would return a negative discount rate. An original price of 299 with a sale price of 329 is a 10% increase, not a discount. The original-plus-sale mode therefore requires the sale price to be below the original price; if it rejects your numbers, check whether the two prices were swapped, and use the percentage calculator's increase formula for genuine price rises.

Why does my result differ from the receipt by a cent?

Rounding rules usually explain it. This tool rounds amounts to two decimals, while a store system may truncate at the cent or round each item before adding them up, so multi-step conversions can drift by a cent or two. A difference that small is normal rounding, and the receipt is final. A larger gap usually means a swapped input — for example entering 80 for a 20% off tag.