Skip to content
ChalkCalculator

Stacked discounts multiply: 20% off then 10% off is 28%, not 30%

Two discounts never add. And the amount by which they fail to add is something you can work out in your head.

4 minute read · Reviewed

In short

Each discount applies to what the last one left, so they multiply. The gap between the sum and the truth is exactly the two discounts multiplied: 20% and 10% are 2 points short of 30%.

20% off, then an extra 10% at the checkout

Almost everyone reads that as 30% off. It is 28%.

A $100 jacket takes the 20% first and becomes $80. The extra 10% then applies to the $80, not to the original $100 — so it takes off $8 rather than $10, and you pay $72.

Nobody is being deceived. The second discount could only ever apply to the price after the first one; there is no other price for it to apply to. But the stack is always worth less than the sum of its parts, and the difference always runs in the shop’s favor.

$100 → 20% off → $80 → 10% off → $72. That is 28% off, not 30%.

The error is exactly the two discounts multiplied

This is the part worth carrying around. If you add the percentages and want to know how wrong you are, multiply them.

20% and 10%: 0.2 × 0.1 = 0.02, so you are 2 percentage points out. The real answer is 28%, not 30%.

25% and 15%: 0.25 × 0.15 = 0.0375 — 3.75 points out, so 36.25% rather than 40%.

It falls out of the algebra directly. The true discount is 1 − (1 − d₁)(1 − d₂), which expands to d₁ + d₂ − d₁d₂. The first two terms are the naive sum; the third is the error, and it is just the product.

Two consequences follow. Small discounts barely diverge — 10% and 10% is 19%, near enough to 20% that nobody notices. Large ones diverge enormously, which is where the intuition fails worst.

What the common stacks actually come to

Every figure below is on a $100 item, and the last column is the gap between what people expect and what they get.

Stacked discounts on a $100 item
StackLooks likeActuallyYou payGap
10% + 10%20%19.00%$81.001.00 pp
20% + 10%30%28.00%$72.002.00 pp
25% + 15%40%36.25%$63.753.75 pp
30% + 20%50%44.00%$56.006.00 pp
40% + 20%60%52.00%$48.008.00 pp
50% + 20%70%60.00%$40.0010.00 pp
70% + 20%90%76.00%$24.0014.00 pp
50% + 50%100%75.00%$25.0025.00 pp
20% + 20% + 10%50%42.40%$57.607.60 pp
Every gap is the discounts multiplied together. The largest gap comes from two equal discounts, which is why 50% and 50% is the case everyone gets wrong.

Half off, then half off again, is not free

Stated that baldly, nobody would fall for it. Half of a hundred is fifty, and half of fifty is twenty-five — you have paid a quarter, and taken 75% off.

Yet the same person who finds that obvious will read "50% off plus an extra 50% for cardholders" in a shop window and expect to walk out having paid nothing. The arithmetic has not changed. Only the framing has.

This is the useful test for any stack: take it to its extreme and see whether the naive answer is still sane. If adding the percentages would ever produce 100% or more, adding was never the right operation.

No sequence of percentage discounts can ever reach zero. Each one takes a share of what is left, and a share of something is never all of it.

The order genuinely does not matter

This one goes the other way — people worry about it, and they need not.

Because the discounts multiply, and multiplication does not care about order, taking 20% then 10% gives exactly the same price as 10% then 20%. Both are $100 × 0.8 × 0.9 = $72, and $100 × 0.9 × 0.8 is the same $72.

So a cashier scanning coupons in a different sequence cannot change your total, and there is no clever order to argue for. Whatever sequence the till uses, the answer is the same.

The one thing that is not order-independent is a flat amount off. "$20 off" before a percentage is worth less than the same $20 after it, because the percentage then applies to a smaller number. Percentages commute with each other; they do not commute with fixed amounts.

Tax comes last, and that quietly helps you

Sales tax is charged on what you actually pay, not on the ticket price. So a discount saves you slightly more than the shelf difference suggests, because you also avoid the tax on the amount discounted.

A $249.99 jacket at 25% off with a further 15% comes to $159.37 — a 36.25% discount rather than the 40% it looks like. The sticker saving is $90.62.

But at 8.25% sales tax, the full-price total would have been $270.61 and the discounted total is $172.52. The real saving is $98.09, because $7.47 of tax was never charged.

That is the one part of this that runs in your favor, and almost nobody counts it.

A $249.99 jacket, 25% then 15%, with 8.25% sales tax
FigureFull priceAfter both discounts
Price$249.99$159.37
Sales tax$20.62$13.15
Total paid$270.61$172.52
Sticker saving $90.62; real saving $98.09. The extra $7.47 is tax you were never charged. Every figure is rounded to the cent, as a register rounds it, so the table adds up exactly.

The part this does not tell you

Whether the discounts stack at all is the shop’s decision, not arithmetic. "Cannot be combined with other offers" is common, and no calculation can tell you in advance whether a code will apply on top of a sale price.

Buy-one-get-one is a different sum entirely. A BOGO is 50% off across two items only if you genuinely wanted both; if you only wanted one, it is not a discount, it is an upsell.

Whether the item is taxable at all varies — groceries, prescriptions and, in several states, clothing below a threshold are exempt.

And none of it can tell you whether the original price was ever real. A 60% discount from a number invented to make the discount look good is arithmetic performed on fiction, and that is the one thing worth being suspicious of.

Work it out for your own numbers

Sources

  • The arithmetic here is definitional: a percentage discount multiplies by (1 − d), and the identity 1 − (1 − d₁)(1 − d₂) = d₁ + d₂ − d₁d₂ follows by expansion. Every figure above was generated by the Discount Calculator on this site rather than worked by hand.

← All guides