Stacked discounts do not add up
The sign says 30% off. At the register, the cashier takes another 20% with a promo code. Almost everyone reads that as 50% off. It's 44%.
The second discount comes off a price that has already shrunk. Thirty percent off $100 leaves $70, and the extra 20% is 20% of $70: $14, not $20. You pay $56. As a formula, the combined discount is 1 − (1 − 0.30) × (1 − 0.20) = 0.44.
The error is never random, and it never goes your way. Stacked discounts always land below the sum, and the gap grows with every layer. Three 20% coupons feel like 60% off and are worth 48.8%. A 40% markdown followed by an extra 25% on clearance is 55% off, not 65%. Nobody had to invent this trick. Multiplication just works this way, and retail merchandising has known it for a century.
| Stack | Looks like | Actually is |
|---|---|---|
| 20% + 10% | 30% | 28.0% |
| 30% + 20% | 50% | 44.0% |
| 40% + 25% | 65% | 55.0% |
| 50% + 20% | 70% | 60.0% |
| 20% + 20% + 20% | 60% | 48.8% |
| 40% + 30% + 10% | 80% | 62.2% |
One consolation: the order of the layers doesn't matter. Taking 30% then 20% gives exactly the same total as 20% then 30%, because multiplication is commutative. What changes is the in-between price printed on your receipt, which is why the same purchase can look different at two registers and still cost the same.
Working backwards from two prices
Store windows advertise the money, not the percentage. "Was $249.90, now $149.90" sounds bigger than "just over 40% off", which is exactly what it is. To get the percentage, divide the savings by the original price: (249.90 − 149.90) ÷ 249.90 × 100 = 40.02%.
Dividing by the sale price is the classic mistake. You get 66.7%, a real number that answers a different question: the markup needed to climb from the sale price back to the original. Discounts go down from the big number, markups go up from the small one, and the two never match. Reversing a 50% discount takes a 100% markup.
The same lopsidedness trips up the third question this tool answers: what was the price before the discount? If you paid $70 after 30% off, the original was $70 ÷ 0.70 = $100. Adding 30% back on top gives $91, and $91 was never the price of anything. Sellers hit this from the other side. To net a specific amount after advertising a 30% sale, set the list price at the target divided by 0.70, not multiplied by 1.30.
BOGO, buy 3 pay 2, and the percentage nobody prints
Multi-buy offers hide their percentage on purpose, because it's usually less impressive than the wording. Convert them and you can compare them:
- Buy one get one free is two items for the price of one: 50% off.
- Buy 3 pay 2 means you pay for 2 of 3, so 66.7% of the value: 33.3% off.
- Buy 3 get the 4th free is 4 for the price of 3: 25% off.
- 50% off the second item makes a pair cost 1.5 items: 25% off.
- Buy 2 get the 3rd half price is 2.5 items per 3: 16.7% off.
"Buy 3 pay 2" is the one people keep overrating. "One free" sits next to "two" in the sentence, and the brain quietly turns that into half price. One free out of three is a third, and a third is 33.3%.
Then comes the quantity trap, which the comparison panel above models directly. A multi-buy percentage only kicks in when you buy an exact multiple of the deal size. Under buy 3 pay 2, four items means paying for three: 25% off. Two items means paying for two: nothing off. A straight 30% coupon, meanwhile, applies to every unit whatever the count. Which offer is better really depends on how many items you were going to buy anyway. Buying a fourth shirt to unlock a discount means spending more money, whatever the sign calls it.
Where sales tax lands, and why the order matters
In the United States, sales tax is added at the register instead of shown on the shelf, so a discount and a tax rate meet in a set order. The normal rule: the discount comes off first, and tax is charged on the reduced price. A $100 item at 20% off with 8.25% tax is $80 plus $6.60 of tax, $86.60.
Manufacturer coupons are the exception. Because the manufacturer reimburses the retailer, many states treat the full price as the retailer's receipt and tax it. The same purchase becomes $80 plus $8.25, $88.25. The $1.65 difference is the tax on the discounted $20, and it shows up on the receipt with no explanation. Store coupons, loyalty discounts and ordinary markdowns reduce the taxable amount; manufacturer coupons often don't. Rules vary by state, so the calculator shows both bases instead of picking one for you.
Where tax is included in the displayed price (Brazil, the EU, the UK), none of this applies. The shelf price already carries the tax, so a percentage discount cuts the goods and the tax together, and there's no ordering decision to get wrong. The calculator can still show how much tax was sitting inside what you paid, using value × rate ÷ (100 + rate).
Shipping is the other line that quietly eats the discount. A 20% saving on a $40 order is $8, and a $9 delivery charge wipes it out. Free-shipping thresholds are built on exactly this math, which is why they sit just above the average basket.
A fixed coupon or a percentage code?
Checkouts often make you pick one. The two are equal at exactly one basket size, and it's easy to find: divide the fixed amount by the percentage and multiply by 100. A $20 coupon matches a 15% code at $133.33. Below that, take the fixed amount. Above it, take the percentage, which keeps pulling away.
The reason is that a fixed coupon's effective discount shrinks as you spend. Twenty dollars is 20% of a $100 order, 10% of $200 and 4% of $500. A percentage never shrinks, which is why stores hand out fixed-value coupons with minimum-spend requirements attached. The minimum caps how good the coupon can get.
The price you are discounting from
Every percentage on this page is calculated against a reference price, and the reference is the part to doubt. A discount is only as real as the number it's measured from.
Anchoring is one of the best-documented effects in consumer pricing: the first number a shopper sees frames everything after it, and a struck-through price does that job whether or not anything ever sold at it. That's why advertising regulators care. The US FTC guides against advertising a former price that was not a bona fide price offered to the public for a reasonably substantial period, and UK and EU pricing rules require the reference price to be the lowest price applied in the previous 30 days. Enforcement is uneven. The incentive to inflate is constant.
Protect yourself with a second reference. Check what the item actually sold for recently (price history sites, a competitor, the same item at another retailer) and run the reverse calculation against that number. An item "reduced" from $199.99 to $79.99 is 60% off the sticker. If it sold at $99 for most of the year, the honest figure is 19.2% off. Both numbers are arithmetically correct. Only one describes what happened.
The same caution applies to clearance rounds. Retailers mark down in stages (30%, then an extra 20%, then a final 50% off the lowest ticketed price), and each stage is measured from the one before. The stack behaves exactly like the table above. That final "50% off" sign is 50% of a number that has already dropped twice, not 50% of what the item cost in season.
Privacy
The calculator is arithmetic running on this page. Prices, coupon codes and basket sizes stay in the browser: nothing is uploaded, nothing is logged and there is no account. Reload the page and every field is gone.
Frequently asked questions
Is 30% off plus an extra 20% the same as 50% off?
No, and retail makes a lot of money on that misunderstanding. The second discount comes off the already-reduced price, so the extra 20% is 20% of 70, not of 100. The combined discount is 1 − (0.70 × 0.80) = 0.44, or 44% off. On a $100 item you pay $56, not the $50 that adding them up suggests. Stacked discounts always come out below the sum, and the gap widens with every layer: three 20% coupons look like 60% off and are worth 48.8%.
How do I find the percentage discount from two prices?
Subtract the sale price from the original price, divide by the original price and multiply by 100. An item marked down from $249.90 to $149.90 is (249.90 − 149.90) ÷ 249.90 = 40.02% off. Always divide by the original price, never the sale price. Dividing by the smaller number gives 66.7%, which is the markup needed to climb back up, not the discount that came down.
Is buy 3 get 1 free the same as 25% off?
Yes. And buy 3 pay 2 is 33.3% off, not 50%: you pay for 2 of the 3 items, so you pay 66.7% of the list value. The catch is quantity. The advertised percentage only shows up when you buy an exact multiple of the deal size. Take four items under buy 3 pay 2 and you pay for three, an effective 25% off instead of 33.3%.
Is the discount applied before or after sales tax?
In the US the discount comes off first and tax is charged on the reduced price, for store coupons and normal markdowns. Manufacturer coupons are the exception in many states: the manufacturer reimburses the retailer, so tax is figured on the full pre-coupon price. On a $100 item at 20% off with 8.25% tax, that's $86.60 versus $88.25. In countries where tax is already inside the shelf price, such as Brazil, the ordering question doesn't come up.
Should I use a $20 coupon or a 15% off code?
Depends on the basket, and the crossover point is exact: divide the fixed amount by the percentage and multiply by 100. $20 ÷ 15 × 100 = $133.33. Below that the fixed coupon wins. Above it the percentage wins, and the gap grows as the order gets bigger. A fixed coupon's effective discount shrinks the more you spend: $20 is 20% of $100 and 4% of $500.
Are my numbers sent anywhere?
No. Every figure stays in your browser as plain arithmetic. Nothing is uploaded, nothing is stored and there is no account.