Discount Calculator

Stack one or two discounts on a price to get the final price, the savings and the combined percentage, or reverse two prices into a discount.

All calculations happen locally in your browser. Nothing leaves your device.

Final price
—
You save
—
Combined discount
—

Stacked Discounts

When a store applies more than one discount — a sale price plus a coupon, for example — the percentages are never simply added. Each discount is applied to the result of the previous one, which means the total is always less than the sum. This section explains the math and why "30% + 30%" is really "51% off".

Sequential Application
Discounts apply one after another on a shrinking base. A $100 item at 30% off becomes $70; a further 30% off is then 30% of $70 = $21, leaving $49. You save $51, i.e. 51% of the original price.
Why 30% + 30% ≠ 60%
Mathematically, stacking discounts a and b multiplies the remaining fractions: (1 − a/100) × (1 − b/100). For 30% and 30%: 0.7 × 0.7 = 0.49, so the combined discount is 1 − 0.49 = 0.51 = 51%. Adding them (60%) would assume the second discount is also taken from the original price, which it never is.
The General Formula
For n stacked discounts, multiply all (1 − pᵢ/100) fractions together. The combined single discount is 1 − (product) expressed as a percentage. Two 50% discounts, for instance, yield 0.5 × 0.5 = 0.25 — a combined 75% off, not 100%.

Frequently Asked Questions

Why don't 30% + 30% discounts equal 60%?

Stacked discounts are applied in sequence, not added together. After the first 30% off, the price is 70% of the original; the second 30% is then taken from that reduced price, leaving 0.7 × 0.7 = 0.49, i.e. 51% off in total — not 60%.

How do I combine two discounts into one percentage?

Convert each percentage to its remaining fraction (1 − p/100), multiply the fractions, then subtract from 1. For discounts a and b: combined = (1 − a/100) × (1 − b/100) → 1 − product, times 100. This tool shows the combined percentage automatically.

What is the 'given prices' mode for?

It works in reverse. If you see an original price and a sale price (like on a store shelf) and want to know the real discount, enter both and the tool computes (original − sale) / original × 100.

What counts as the 'second discount'?

Any extra percentage applied after the first one: a storewide 30% sale plus a 10% coupon, a loyalty discount on top of a sale, etc. Leaving it at 0 means only the first discount applies.

Is my data sent anywhere?

No. All calculations run entirely in your browser with vanilla JavaScript. Nothing you type is transmitted to any server.