Skip to main content
Viralrang

How to Calculate a Discount: Sale Prices, Stacked Deals, and Tax

The percent-off formula, the sequential math behind stacked deals, and the discount-then-tax order the register actually uses.

By Mohamed Zakrya

Updated · 13 min read

Share
How to calculate a discount How to calculate a discount Percent off the sticker, stacked deals in sequence, then sales tax on what’s left discount first · tax last STEP 1 · ONE DISCOUNT saved = price × (off% ÷ 100) pay = price − saved $80.00 sticker, 25% off 80 × 0.25 = $20.00 saved pay $60.00 STEP 2 · STACKED DEALS Each cut hits what’s left, never the sticker. $100.00 −20% → $80.00 $80.00 −10% → $72.00 effective 28% off, not 30% STEP 3 · TAX LANDS LAST final = pay × (1 + tax% ÷ 100) 8% tax on the $60.00 you pay, not the $80.00 sticker. 60 × 1.08 = $64.80 Tax the sticker instead and the bill overstates to $66.40. WORKED EXAMPLE · $80.00 STICKER · 25% OFF · 8% SALES TAX $80.00 sticker −$20.00 saved at 25% $60.00 after discount +$4.80 8% tax = $64.80 out the door Out-the-door saving: $21.60 $20.00 off + $1.60 of tax it erased THE MULTIPLIER TRICK 25% off means you pay 75%. 80 × 0.75 = $60.00 One step, no subtraction, works for any single markdown. FLAT BEATS THE STACK Flat 30% off $100.00 rings $70.00. 20% then 10% rings $72.00. Same digits on the sign, $2.00 apart at the register. STACK SHORTCUT Add the rates, subtract their product ÷ 100. 20 + 10 − 2 = 28% effective
The percent-off formula, the sequential math behind stacked deals, and the discount-then-tax order the register actually uses.

A discount tag makes its promise in percent and collects it in dollars, and most pricing mistakes live in that translation. The single clean markdown is genuinely easy: 25% off an $80.00 jacket takes $20.00 off and leaves $60.00 to pay, and nearly everyone gets that right. The trouble starts one layer up, when the shelf says "take an extra 10% off already-reduced prices," or when the register adds sales tax and the total is not the number you worked out in the aisle.

Two errors do most of the damage. The first is adding stacked percentages. A sign offering 20% off plus an extra 10% off reads as 30% off, but the register charges you as if it were 28%, and those two missing points disappear so smoothly that most shoppers never notice their estimate was wrong rather than the store. The second is putting sales tax in the wrong place. Tax belongs after the discount, on the amount you actually pay, and mixing up that order overstates the bill every time you do the math by hand. This guide works through all three layers with the arithmetic shown to the cent: the single discount, the stack, and the tax on top.

The quick answer

For a single percent-off deal, you can skip the subtraction entirely: multiply the price by (100 minus the discount) divided by 100 and you have the sale price in one step.

DiscountYou payOn an $80.00 itemOn a $100.00 item
10% offprice × 0.90$72.00$90.00
15% offprice × 0.85$68.00$85.00
20% offprice × 0.80$64.00$80.00
25% offprice × 0.75$60.00$75.00
30% offprice × 0.70$56.00$70.00
40% offprice × 0.60$48.00$60.00
50% offprice × 0.50$40.00$50.00

That table covers one discount, before tax. Stacked deals and the tax line follow rules of their own, and they are where the real money hides. The rest of the guide takes them in order.

The formula the register runs

Strip a sale down to its arithmetic and there are three lines, in a fixed order:

  • saved = price × (discount% ÷ 100)
  • after discount = price − saved
  • final = after discount × (1 + tax% ÷ 100)

Run the calculator's defaults through it. An $80.00 item at 25% off: 80 × 0.25 = $20.00 saved, so the price after discount is 80 − 20 = $60.00. Add an 8% sales tax and the final is 60 × 1.08 = $64.80. Leave the tax field at 0% and the third line does nothing, so the final is just the discounted $60.00; set the discount to 0% and nothing changes at all, with the final staying at the original $80.00.

The discount formula, run with the defaults Three lines, in a fixed order Run with the calculator defaults: $80.00 sticker, 25% off, 8% sales tax saved = price × (discount% ÷ 100) after discount = price − saved final = after discount × (1 + tax% ÷ 100) sticker $80.00 × 25% saved $20.00 80 − 20 after discount $60.00 × 1.08 final, out the door $64.80 Leave tax at 0% and the final is just the discounted price, $60.00. Set the discount to 0% and nothing changes: the final stays at the original $80.00.
Three lines in order: $80.00 at 25% off saves $20.00, leaves $60.00, and rings up at $64.80 once 8% tax lands on the discounted price.

Two details about how the tool runs this. The discount slider covers 0% to 90%, which spans every "% off" tag you will actually meet, and under the hood the engine clamps the rate to the 0 to 100 range and refuses negative prices and tax rates, so a typo cannot produce a store that pays you. And the tax line is optional by design: at 0% it stays out of the math entirely, which is the right setting when you only want the sale price, or when you are comparing two offers and the tax would land equally on both anyway.

"Percent off" means off the sticker

A "25% off" tag means 25% of the original price is removed. Not 25% of some already-lowered figure, not 25% of what you end up paying: 25% of the sticker. On the $80.00 item that is $20.00, full stop. The percentage is always measured against the original, and holding onto that anchor is what makes every harder case in this guide solvable.

The fastest way to use it is the multiplier trick from the quick-answer table. If 25% comes off, then 75% remains, so the sale price is the sticker times 0.75. One multiplication, no subtraction step to fumble: 80 × 0.75 = $60.00. Every discount has its complement: 30% off means you pay 70%, 40% off means you pay 60%, and this "what you pay per sticker dollar" framing is the piece that makes stacked discounts click in a moment.

For mental math, build from 10%, which is just the decimal point moving one place left. Ten percent of $80.00 is $8.00; 20% is double that, $16.00; 5% is half of it, $4.00; 25% is a quarter of the price, which for $80.00 is the same $20.00 the formula gives you. It is the identical percent-of arithmetic that sets a restaurant tip, and the same decimal-shift shortcut from the tipping guide works on any price tag in the store.

Why 20% plus an extra 10% is not 30%

Here is the mistake the signs are engineered around. Stacked discounts are sequential, not additive: each one applies to whatever price is left after the one before it, never to the original sticker.

Work the classic case, a $100.00 item with 20% off and an extra 10% off:

  • First cut: 100 × 0.20 = $20.00 off, leaving $80.00
  • Second cut: 10% of $80.00, not of $100.00, so 80 × 0.10 = $8.00 off, leaving $72.00

You paid $72.00 on a $100.00 sticker, which is an effective 28% off, not 30%. The two points did not get stolen; they never existed. The extra 10% coupon was only ever worth $8.00, because by the time it fired, the $20.00 from the first discount was already gone and there was nothing left for it to act on.

Why 20% plus 10% off lands at $72, not $70 Each cut hits what’s left, never the sticker 20% off, then an extra 10% off, on a $100.00 item STICKER $100.00 −$20.00 · 20% of $100.00 AFTER 20% OFF $80.00 −$8.00 more · 10% of $80.00, not $100.00 AFTER THE EXTRA 10% OFF $72.00 Effective 28% off, not 30%. The extra 10% takes $8.00, because it never sees the $20.00 already gone.
$100.00 drops to $80.00 after 20% off, then the extra 10% takes $8.00 from what remains, landing at $72.00: an effective 28%, not 30%.

That is the whole mechanism. The second percentage is smaller in dollars because it works on a smaller number, so a stack always saves a little less than the sum of its rates suggests. The gap between "sounds like" and "is" grows with the size of the rates, which is exactly why clearance signs love to advertise an extra percentage off instead of restating the true combined rate.

The effective rate of any stack

You can price any stack without walking it step by step. Since each discount multiplies the price by its "you pay" fraction, the whole stack is one multiplication chain: pay 80% of the sticker, then 90% of that, and you have paid 0.80 × 0.90 = 0.72 of the original, a 28% effective discount.

There is an even quicker head version for two discounts: add the rates, then subtract their product divided by 100. For 20% and 10%: 20 + 10 − (20 × 10 ÷ 100) = 30 − 2 = 28%. The subtraction term is the overlap, the part of the second discount that would have applied to money the first discount already removed.

Run a few stacks through it and the pattern is hard to unsee:

  • 15% + 15% sounds like 30%, is 27.75%
  • 20% + 10% sounds like 30%, is 28%
  • 30% + 25% sounds like 55%, is 47.5%
  • 50% + 50% sounds like 100%, is 75%

That last row is the sanity check that proves the rule: two half-off coupons do not make the item free. The second 50% halves what is left, and half of a half is a quarter, so you still pay 25 cents on the sticker dollar.

Stacks longer than two follow the same chain, and the gap widens with every layer. A 20% storewide sale, a 10% member discount, and a 10% coupon multiply out to 0.80 × 0.90 × 0.90 = 0.648 of the sticker: an effective 35.2% off, well short of the 40 points the three signs add up to. On a $100.00 item that is $64.80 to pay, and the "missing" $4.80 is money the later discounts never had access to.

One genuinely useful property falls out of the multiplication: within a percent-only stack, order does not matter. Take 10% off first and then 20%, and the $100.00 item goes 100 to 90 to 72, the same $72.00 as before, because 0.90 × 0.80 equals 0.80 × 0.90. Whichever coupon the cashier scans first, a pure percentage stack lands in the same place.

Be careful not to extend that comfort to markdowns and markups, though. A 20% discount followed by a 20% increase does not return to the sticker: 0.80 × 1.20 = 0.96, so the price ends 4% short of where it started. Percentages up and percentages down are measured against different bases, which is the same asymmetry behind the markup-versus-margin confusion the markup and margin calculator exists to untangle.

Free calculator

Discount Calculator

The sale price after a percentage off — with optional sales tax applied after the discount.

Open the discount calculator

Flat 30% or 20% plus an extra 10%?

Now the comparison the stack math was building toward, and the one worth carrying into every sale season: a flat "30% off" really is better than "20% off plus an extra 10% off," even though both signs wave the same thirty points at you.

On a $100.00 item, the flat rate rings 100 × 0.70 = $70.00. The stack rings $72.00, as worked above. Two dollars apart on the same sticker, every time, and the flat offer wins because 30 whole points beat an effective 28.

Flat 30% beats 20% plus an extra 10% Both sound like thirty points. Only one is. The same $100.00 item under two offers FLAT 30% OFF 100 × 0.70 $70.00 effective 30% · wins by $2.00 20% THEN AN EXTRA 10% 100 → 80 → 72 $72.00 effective 28%, not 30% STACK SOUNDS LIKE ACTUALLY IS 15% + 15% 30% 27.75% 20% + 10% 30% 28% 30% + 25% 55% 47.5% 50% + 50% 100% 75%
Flat 30% off $100.00 rings $70.00; the 20%-then-10% stack rings $72.00. Every stack lands above the flat rate built from the same digits.

This generalizes: a stack is always worth less than the flat discount built from the sum of its rates, because the subtraction term in the shortcut formula is always positive. So when two stores dangle competing offers, do not compare the headline digits. Price each offer out in dollars, on the actual item, and let the dollars decide. That is also the honest way to read a coupon that "stacks with sale prices": its real value is its rate applied to the sale price, not to the number crossed out on the tag.

Sales tax comes last, and that saves you money

Sales tax goes on after the discount, because you are taxed on what you actually pay, not on the sticker. The register order is always: discount first, then tax on the lower amount.

On the running example, the taxable amount is the discounted $60.00, so an 8% tax adds 60 × 0.08 = $4.80 and the out-the-door total is $64.80. Now run the order backward, the way hand math often goes wrong: tax the $80.00 sticker for $6.40, then take the $20.00 discount off the merchandise. That rings 60 + 6.40 = $66.40, overstating the bill by $1.60. The gap is no accident. It is exactly 8% of the $20.00 the discount removed, the tax that would have ridden on money you never spent.

Discount first, then tax on the lower amount Tax lands on what you pay The same $80.00 item, 25% off, in an 8% sales-tax area HOW THE REGISTER RINGS IT Sticker $80.00 − 25% discount → $60.00 + 8% tax on $60.00 = $4.80 $64.80 out the door TAX ON THE STICKER · WRONG Sticker $80.00 + 8% tax on $80.00 = $6.40 − $20.00 discount → 60 + 6.40 $66.40 overstated by $1.60 The $1.60 gap is exactly 8% of the $20.00 the discount removed. A discount also erases the tax that would have ridden on it: the full saving is $21.60, not $20.00.
Discount first, then 8% tax on $60.00, gives $64.80. Taxing the $80.00 sticker instead rings $66.40, overstated by $1.60: the tax on the $20.00 you never spent.

Seen from the receipt's side, this means a discount is worth slightly more than its face value. Passing on the sale would have cost 80 × 1.08 = $86.40 out the door; taking it costs $64.80. The full saving is $21.60: the $20.00 markdown plus the $1.60 of tax it erased. In general, the out-the-door value of a discount is the amount saved times (1 + tax rate), which is a pleasant number to remember in a high-tax area.

The tax line itself has its own machinery: which rate applies where, what is exempt, and how to split a tax-inclusive receipt total back into price and tax. That is its own guide, how sales tax is calculated, and its own tool: the sales tax calculator both adds tax to a pre-tax price and backs it out of a gross total when the receipt only shows one number.

Related guide

What actually happens on the tax line

Rates, exemptions, and the reverse calculation that recovers the pre-tax price from a tax-inclusive total — the other half of every out-the-door number.

Read the guide

Dollar coupons break the symmetry

Everything so far concerned percentages, and percent-only stacks came with a comfort: order does not matter. Add a flat-dollar coupon to the mix and that comfort disappears immediately.

Take a $100.00 item carrying both a 20% discount and a $10.00 coupon:

  • Percent first: 100 → 80, then minus $10.00 → $70.00
  • Dollars first: 100 → 90, then minus 20% → $72.00

Same two coupons, two dollars apart, purely on sequencing. The pattern behind it: you want the percentage to act on the largest base it can. Applying 20% to $100.00 is worth $20.00; applying it to $90.00 is worth $18.00. So percent-before-dollars is the better order for you, dollars-before-percent is the better order for the store, and the register's programming, not your preference, decides which one runs. The receipt is where you find out, so read it before you leave the counter, and if a promotion's fine print spells the order out, now you know what the fine print is worth.

Flat-dollar coupons also resist comparison against percent offers until you convert one into the other. A "$15 off" coupon on an $80.00 item is 15 ÷ 80 = 0.1875 of the sticker, an 18.75% discount, so a competing 20% offer beats it there; on anything cheaper than $75.00, the same $15.00 coupon wins. A dollar coupon has a break-even price, and it is always the coupon divided by the competing rate.

Working backward from a sale price

Sale racks pose the formula in reverse. The tag shows $60.00 and says "25% off," and you want the original, or you know both prices and want the rate you actually got.

For the original price, resist the reflex to add the percentage back on. Since the sale price is the original times 0.75, the original is the sale price divided by 0.75: 60 ÷ 0.75 = $80.00. Adding 25% to $60.00 instead gives 60 × 1.25 = $75.00, which is wrong by five dollars, because the 25% was measured against the bigger sticker price, not against the sale price. Undoing a discount is always a division. The same move prices any tag: a $45.00 sale price marked 40% off came down from 45 ÷ 0.60 = $75.00, and the divisor is always the fraction of the sticker you are paying.

Working backward from a sale price Working backward from a sale price Divide by what you paid per sticker dollar; never add the percent back on WHAT WAS THE ORIGINAL? original = sale ÷ (1 − off% ÷ 100) $60.00 sale price, tagged 25% off 60 ÷ 0.75 = $80.00 the sticker it came down from WHAT RATE DID I GET? off% = (sticker − paid) ÷ sticker × 100 paid $72.00 on a $100.00 sticker (100 − 72) ÷ 100 = 0.28 = 28% off the effective rate of the whole deal 60 × 1.25 = $75.00, not $80.00. Adding 25% back on never undoes 25% off: the percent is measured against the bigger sticker price, so reversing a discount is always a division, never a multiplication.
Original = sale ÷ (1 − off%/100): $60.00 ÷ 0.75 recovers the $80.00 sticker. Adding 25% back gives $75.00, wrong by $5.00.

For the rate, divide the discount by the original: off% = (sticker − paid) ÷ sticker × 100. Pay $72.00 on a $100.00 sticker and you got (100 − 72) ÷ 100 = 0.28, a 28% discount, which is precisely how you audit a stacked deal's effective rate after the fact. Pay $51.00 on a $68.00 sticker and the rate is 17 ÷ 68 = 0.25, an even 25%, a number no one estimates correctly at the shelf. Both directions of this percent arithmetic, along with the plain "what is X% of Y," live in the percentage calculator when you want them without the shopping frame.

These reverse checks are worth thirty seconds at any clearance rack, because "was $80.00" claims are only as honest as the store's pricing history. The math cannot tell you whether the sticker was real, but it can tell you instantly whether the tag's own numbers agree with each other.

Related guide

The same percent math, at the dinner table

Percent-of is the atom of money math. The tipping guide runs it through rates, bases, and the split order that keeps 20% from eroding to 17.4%.

Read the guide

Checking a stacked deal in the calculator

The calculator prices one discount per pass, which is exactly what a stack needs, since a stack is just single discounts run in sequence. To check a stacked offer:

  1. Enter the sticker price and the first rate. For the $100.00 example, $100.00 at 20% off returns $80.00. Leave tax at 0% for now.
  2. Feed the result back in as a new original price. Enter $80.00 with the second rate, 10%, and read $72.00.
  3. Put your tax rate on the final pass only. The register taxes once, on the last price, so tax belongs on the last step and nowhere earlier.

Then compare the final figure against the flat offer or the competing store, in dollars. The tool's own advice is the right note to end on: a deal is decided by the dollars, not the percentage signs, and two offers that sound identical can be several dollars apart once the sequence and the tax land where they actually land.

Common mistakes to avoid

  • Adding stacked percentages. 20% plus an extra 10% is an effective 28%, never 30%. Multiply the "you pay" fractions or use add-the-rates-minus-their-product.
  • Taking the second discount off the sticker. The extra 10% in the example is worth $8.00, not $10.00. It only ever sees the $80.00 that survived the first cut.
  • Comparing a flat rate to a stack by their digits. Flat 30% beats 20%-then-10% by $2.00 on every $100.00. Price offers out; do not read them.
  • Taxing the sticker instead of the sale price. That overstates the bill by the tax rate times the discount, $1.60 on the worked example. Discount first, tax last.
  • Undoing a discount by adding the percent back. $60.00 at 25% off came from $80.00, found by dividing by 0.75. Multiplying by 1.25 gives $75.00 and a wrong answer.
  • Ignoring order when a dollar coupon joins a percent discount. $70.00 or $72.00 on the same item, depending on which fires first. Check the receipt.

The whole subject compresses into three habits. Measure every percentage against its own base: the sticker for a single discount, the surviving price for each layer of a stack, the discounted price for tax. Convert offers to dollars before comparing them. And when you reverse the math, divide. Hold those and no sale sign, however stacked, can tell you anything the register won't confirm.

Free calculator

Price the deal before the register does

Enter the sticker price, drag the discount slider, and add your tax rate if you want the out-the-door number — it returns what you save and what you actually pay, in the order the register uses.

Open the discount calculator

How Are Loan Payments Calculated? Amortization, Explained

One level payment, front-loaded interest — the formula worked by hand, the two levers you control, and why the smaller payment is often the costlier loan.

July 23, 2026 · 13 min read

How Does Inflation Work? The Math That Shrinks Money

One growth factor, two answers — what today's money will buy later, and how many future dollars it takes to keep up.

July 23, 2026 · 13 min read

How Is Sales Tax Calculated? Rates, Rules, and the Reverse Math

The combined-rate reality, the one-multiplication forward formula, and the division that pulls the tax back out of any total.

July 23, 2026 · 13 min read