Discount Calculator
Standing in front of a "25% off" sign, you want two numbers: what you'll pay and what you'll save. Enter the original price and the discount — and if the tag adds an "extra 10% off at checkout", the second field applies it the way the register will: to the already-reduced price.
Sale price after a discount
Example: 25% off 80 is 60 — you save 20.
This page covers the arithmetic of a single markdown and of discounts stacked one on another. For the companion walkthrough that sets discount arithmetic beside commission splits and percentage change — the other places the same multiply-don't-add reasoning shows up — see the guide on commission and discount arithmetic, part of the full Sumvia guides index.
What a percentage off actually does
A discount does not remove a slice of the price so much as keep the slice that is left. Taking 25% off means 75% of the price survives, so the sale price is the original multiplied by that surviving share: sale price = original × (1 − discount ÷ 100). The example above — 60 after 25% off 80 — is 80 × 0.75, computed at build time by the same engine wired to the form, so the copy and the calculator can never disagree. The amount saved is simply the original minus the sale price: 20 in that case, which is also 25% of 80 — a coincidence of the single-discount case that stops holding the moment a second discount is stacked on.
The engine performs no rounding of its own; it returns the full-precision sale price, amount saved, and effective percentage, and the display layer rounds only for the screen — to at most six decimal places, following the policy set out on the methodology page. That matters when a discount lands on an awkward figure: 33% off a price rarely produces a tidy result, and what you see is a cleanly rounded view of a more precise value held underneath. The function also checks its inputs before computing: the original price must be greater than zero, and each discount must sit between 0 and 100. A blank, negative, or out-of-range entry returns a plain message rather than a wrong number.
The stacked-discount trap
"20% off, plus an extra 10% off at checkout" is built to be misread as 30% off. The register multiplies rather than adds: the price keeps 0.80 of itself after the first cut and 0.90 of what remains after the second, so it keeps 0.80 × 0.90 = 0.72 overall. On 100 that lands at 72, saving 28 — an effective 28% discount, not 30%. The two percentages never add because the second one is charged against a base the first one already shrank.
The gap between the headline sum and the true discount widens as the rates grow. Two 50% discounts feel like they should erase the price, but each halves what the other left: 200 keeps a quarter of itself and settles at 50, an effective 75%, never the full 100. The calculator reports that effective single percentage directly, so the figure on the sign and the figure on the receipt can be compared on one scale — and so "20% plus an extra 10%" can be weighed against a plain 25% off without doing the multiplication in your head.
Comparing a flat discount with a stacked one
Because the effective-discount output puts every markdown on one scale, two offers that look unalike can be compared directly. Take a plain 25% off 100 against "20% off plus an extra 10%" on the same 100. The flat discount lands at 75, saving 25; the stacked pair lands at 72, saving 28. The stacked offer is the larger reduction here — an effective 28% against the flat 25% — even though its headline rates, 20 and 10, each look smaller than 25. Reading the two effective percentages side by side settles it at a glance, which is the whole reason the calculator computes that figure rather than leaving you to multiply the shares yourself.
Why the order of two discounts doesn't matter
Because stacked discounts multiply, and multiplication does not care about order, applying the larger cut first or the smaller cut first lands on exactly the same price. Taking 30% then 15% off 120 keeps 0.70 × 0.85 of the price; taking 15% then 30% keeps 0.85 × 0.70 — the same product. The first route reaches 71.4 and the second reaches 71.4, the same price, each saving 48.6 at an effective 40.5%. The calculator confirms it: swapping the two percentage fields leaves every output unchanged. Order only starts to matter when one of the reductions is a fixed amount of money rather than a percentage, because a flat amount is a bigger share of a price that has already been cut — but that is a different calculation from the one on this page, which stacks two percentages.
Removing a discount is not adding it back
The reverse question — a tag shows only the final price, and you want the original — trips people for the same reason stacking does. You do not add the discount back; you divide by the share that survived. A price reduced 15% kept 0.85 of itself, so 60 marked down 15% becomes 51, and recovering the original means 51 ÷ 0.85 = 60. Adding 15% to the sale price instead would fall short, because 15% of the smaller figure is less than 15% of the larger original. This calculator computes the forward direction — original to sale — while the price change calculator has a mode built for running the reduction backwards from a sale price.
Reading the three outputs
Every run returns three numbers that answer different questions. The sale price is what you pay. The amount saved is what the markdown took off in currency, which for a single discount equals that percentage of the original but for stacked discounts is measured from the reduced base — on 100, 20% then 10% saves 28, more than a fifth of the price but less than three tenths of it. The effective discount restates the whole markdown as one percentage, which is the figure to compare offers by. Reading the amount saved off the rate, or treating two stacked rates as their sum, are the two misreadings this layout is arranged to prevent.
What the calculator checks, and where it stops
A 100% discount is accepted and treated as a zero price rather than an error — 40 at 100% off returns 0 with 40 saved — but anything above 100 is refused, since a store cannot take more off a price than the price itself. Inputs stay within a documented range so the arithmetic remains dependable, as the methodology page describes. Beyond the arithmetic the tool makes no judgement: it does not know your currency's rounding rules, whether a coupon applies before or after tax, or whether the sale price is a good one. It computes the general definition of a percentage discount; a particular till, contract, or jurisdiction may round or sequence things its own way, and that judgement stays with you.
Carrying a result into further arithmetic
The sale price shown is a cleanly rounded presentation of a more precise value the engine holds internally. For most shopping that distinction never surfaces, but if you copy a sale price and feed it into another calculation by hand — stacking a third discount, splitting a bill, working back to a per-unit figure — be aware you are starting from the displayed, rounded number rather than the full-precision one. As the methodology page puts it, for chained work it is better to do the whole calculation in one pass than to round at each step. Entering both discounts into the two fields here keeps the single markdown in one pass; the effective-discount output then gives you a single figure to carry forward instead of a chain of intermediate prices.
Beyond the sticker
A discount tells you what the price fell to, not whether it's the better buy — a rival package with a different size can still win after the markdown, which is a unit price comparison. And when the tag only shows the final sale price, the price change calculator can run the discount backwards to recover what the item cost before.
Frequently asked questions
How do I calculate 25% off a price?
Multiply the price by (1 − 25 ÷ 100). An item at 80 becomes 80 × 0.75 = 60, saving 20. The calculator does this for any percentage, including awkward ones like 15% or 33%.
Why is 20% off plus an extra 10% off not 30% off?
Because the second discount applies to the already-reduced price. On 100: 20% off leaves 80, and 10% off that leaves 72 — an effective 28%, not 30%. Retailers know the sign reads bigger than the discount is.
Does the order of stacked discounts matter?
No. Applying 20% then 10% multiplies the price by 0.80 × 0.90, and applying 10% then 20% multiplies by 0.90 × 0.80 — the same product either way. Order only matters when one of the reductions is a fixed amount rather than a percentage.
How do I find the original price from the sale price?
Divide the sale price by (1 − discount ÷ 100) — dividing, not adding the percentage back. A tag showing 51 after 15% off started at 60, because 51 ÷ 0.85 = 60, and 0.85 is the share the 15% discount left behind. Adding 15% back to 51 would overshoot, since 15% of the smaller sale price is smaller than 15% of the original. The price change calculator on this site has a dedicated mode for exactly this reversal.
Can a discount be more than 100%?
Not meaningfully — 100% off already makes the item free, and beyond that the store would be paying you. The calculator accepts 0 to 100 and treats a 100% discount as a zero price rather than an error: 40 at 100% off returns a sale price of 0 with 40 saved.
What does the "effective discount" figure mean?
It is the single percentage that would produce the same sale price as the discount or discounts you entered. For one discount it simply echoes your input. For stacked discounts it is smaller than the two rates added together: 20% then 10% is an effective 28%, and two 50% discounts come to an effective 75%, never 100%. It lets you compare "20% plus an extra 10%" against a plain "25% off" on the same scale.
Is the amount saved always the discount percentage of the original price?
For a single discount, yes: 25% off 80 saves exactly 25% of 80, which is 20. For stacked discounts it is not, because the second reduction is taken from the already-lowered price rather than the original. On 100, 20% then 10% saves 28 — more than 20% of 100 but less than 30% of it — so read the amount saved from the result, not from the rates.
Does the calculator say whether a discount is a good deal?
No. It reports the sale price, the amount saved, and the effective percentage — the arithmetic of the markdown, nothing more. Whether a reduced price is worth paying depends on the alternatives: a larger pack at a higher sticker can still cost less per unit after a smaller discount, which is a question for the unit price calculator, not this one.
Prices you enter are processed on your device only. The discount math is a tested, typed function — the methodology page explains how results are rounded for display.