Key takeaways
- Discount % = (original price − sale price) ÷ original price × 100; always divide by the original price, never by the sale price.
- Sale price = original price × (1 − discount %), so 25% off means multiplying the original price by 0.75.
- To recover an original price, divide the sale price by (1 − discount %); adding the percentage back gives the wrong answer.
- Stacked discounts multiply rather than add: 20% off plus an extra 10% off is 28% off in total, not 30%.
- Rounding a sale price to an ending such as .99 can change the real discount, so recheck the percentage before you advertise it.
What is the formula for percent off?
Percent off is the amount taken off a price, expressed as a share of the original price. Every discount calculation uses the same three numbers: the original price, the sale price and the discount percentage. If you know any two of them, you can find the third.
Write the percentage as a decimal before you calculate: 25% is 0.25, 8% is 0.08 and 12.5% is 0.125. The four formulas in the table cover almost every discount question a store owner runs into, from pricing a sale to checking a supplier's promotional price list.
| You know | You want | Formula | Example |
|---|---|---|---|
| Original price and discount % | Sale price | Original × (1 − discount %) | $40 at 25% off: 40 × 0.75 = $30 |
| Original price and discount % | Amount saved | Original × discount % | $40 at 25% off: 40 × 0.25 = $10 |
| Original price and sale price | Discount % | (Original − sale) ÷ original × 100 | $120 down to $90: 30 ÷ 120 = 25% |
| Sale price and discount % | Original price | Sale ÷ (1 − discount %) | $45 after 25% off: 45 ÷ 0.75 = $60 |
How do you calculate a sale price from a percentage?
Multiply the original price by 1 minus the discount. The figure in brackets is the share of the price the customer still pays, so 15% off means the customer pays 85% of the original price.
For quick mental math, start from 10% by moving the decimal point one place to the left. 10% of $80 is $8, so 30% is $24 and 5% is $4. That makes 35% off $80 a saving of $28 and a sale price of $52, the same answer as 80 × 0.65. The table lists the multiplier for the most common discounts, applied to a $60 item.
- Convert the discount to a decimal: 15% becomes 0.15.
- Subtract it from 1 to get the multiplier: 1 − 0.15 = 0.85.
- Multiply the original price by the multiplier: $64 × 0.85 = $54.40.
- Round to the cent, or to your store's usual price ending, and check the result against your cost before you publish it.
| Discount | Multiply by | Sale price of a $60 item | Customer saves |
|---|---|---|---|
| 10% | 0.90 | $54 | $6 |
| 15% | 0.85 | $51 | $9 |
| 20% | 0.80 | $48 | $12 |
| 25% | 0.75 | $45 | $15 |
| 30% | 0.70 | $42 | $18 |
| 40% | 0.60 | $36 | $24 |
| 50% | 0.50 | $30 | $30 |
| 60% | 0.40 | $24 | $36 |
| 70% | 0.30 | $18 | $42 |
How do you find the discount percentage between two prices?
Subtract the sale price from the original price, divide the difference by the original price and multiply by 100. If a jacket was $75 and is now $54, the saving is $21, and 21 ÷ 75 = 0.28, so the jacket is 28% off.
The most common mistake is dividing by the sale price instead. 21 ÷ 54 = 38.9%, which overstates the discount by almost 11 percentage points. Dividing by the sale price answers a different question: how much the price would have to rise to get back to the original. That is a markup on the sale price, not a discount.
Be precise with the wording too. A change from 30% off to 20% off is a drop of 10 percentage points, not 10%. And when you compare discounts across products, compare percentages rather than dollar amounts: $10 off a $20 item (50%) is a much deeper cut than $15 off a $150 item (10%).
Always divide by the original price. Percent off describes how much of the original price the customer no longer pays, so the original price is always the base.
How do you work backward to the original price?
Divide the sale price by 1 minus the discount. If an item sells for $42 after 30% off, the original price was 42 ÷ 0.70 = $60. You need this when a supplier sends you sale prices only, or when you want to confirm that a crossed-out price matches what the item really cost before the sale.
Don't add the percentage back. $42 plus 30% is $54.60, not $60, because the 30% was taken from the larger original price, not from the sale price. The error grows with the discount: after 50% off, adding 50% back to $30 gives $45, while the real original price was $60.
Reverse math also breaks once prices are rounded. A $24.99 item at 15% off works out to $21.2415. Round it to $21.99, divide by 0.85, and you get $25.87, not $24.99. That is why you should keep a record of the actual previous prices before a sale instead of recalculating them afterward. Sale Scheduler by SalePilot, for example, saves each variant's previous price and compare-at price before a sale changes anything, and restores them from that record rather than from a formula.
How do stacked discounts work?
Stacked discounts multiply; they don't add. When a second discount applies to an already reduced price, the total discount is 1 − (1 − first discount) × (1 − second discount). An extra 10% off a 20% sale is 1 − 0.80 × 0.90 = 0.28, so the customer gets 28% off, not 30%. On a $100 item, the first discount takes the price to $80 and the second takes it to $72.
This matters on Shopify because a discount code applies to the price the customer pays, which is the sale price when a product is on sale. A $50 item with a $40 sale price and a 10% discount code ends at $36, which is 28% below the $50 compare-at price. Shopify's guide to combining discounts explains the order when discounts combine: product discounts apply first, order discounts apply to the revised subtotal, and shipping discounts apply last. Discounts don't combine automatically; you allow it in each discount's combination settings.
Use the table to check the real total before you promise a number in an email, an ad or a banner.
| First discount | Second discount | Real total discount | Common wrong answer |
|---|---|---|---|
| 10% | 10% | 19% | 20% |
| 20% | 10% | 28% | 30% |
| 20% | 20% | 36% | 40% |
| 25% | 15% | 36.25% | 40% |
| 30% | 20% | 44% | 50% |
| 50% | 20% | 60% | 70% |
| 50% | 50% | 75% | 100% |
Does rounding change the discount you advertise?
Yes, slightly, and sometimes in the wrong direction. Many stores round sale prices to a familiar ending such as .99 or .95. If the rounding moves a price up, the real discount becomes smaller than the one you advertise.
Take a $45 item at 25% off. The exact sale price is $33.75. Rounded to $33.99, the customer saves $11.01, which is 24.5% off, not 25%. Rounded to $33.49 instead, the saving is $11.51, or 25.6%. When you promise "25% off", the ending you choose should keep every price at or below the advertised discount.
Often the rounding is harmless: 30% off $49.99 is $34.993, and $34.99 is still a full 30% discount. The safe habit is to calculate, round, and then recheck the percentage on a few items at the edges of your price range. Our guide to charm pricing and price endings covers which endings fit which products.
How do you show a percent-off sale on Shopify?
On Shopify, a sale is a product's Price with a higher Compare-at price beside it. Shopify's help page on setting sale prices says the Compare-at price must be higher than the Price for the sale price to display. Both amounts can appear on product and collection pages, while only the sale price is shown at checkout.
So a 25% sale on a $60 product means two values per variant: the Price becomes $45 and the Compare-at price becomes $60. On a handful of products you can type these into the product editor. Across a whole collection the math is identical, but the risk of a typo or a skipped variant grows with every row. Before you roll a discount out, the discount calculator gives you the sale price, the percentage and the margin after the discount for a single item.
How do you apply a percent-off sale to many products at once?
Sale Scheduler applies the formulas above to every variant you select and shows you the result before any price changes. You choose Decrease price by percent or by amount, optionally pick a price ending, and choose what happens to the compare-at price, for example Set compare-at to original price so the pre-sale price shows crossed out.
The review screen lists every variant with its price before and after, plus the compare-at price, and marks each row Ready, Warning or Skipped. A row is flagged Warning, and not applied, when its compare-at price would not be higher than the new price, because Shopify would not show it as a sale. No Shopify prices change until you start or schedule the sale.
- Create a sale and choose the products: all products, collections, products, specific variants, or one advanced condition such as a product tag.
- Under "How should prices change?", choose Decrease price, by percent, and enter the discount.
- Optionally add rounding, such as .99, and choose the compare-at action.
- Review the Before and Applied prices, then choose Start after I review, or Schedule start and end. Scheduled sales restore the previous prices automatically when they end.