Use this discount calculator to find the sale price, total savings, and effective percent off for one or more items, with optional sales tax and stacked discounts. It also shows a clear breakdown so you can match what you see on a receipt.
Advanced options
How to use our Discount Calculator
- Choose what you want to calculate in "What do you want to calculate?" (Final price is the most common).
- Enter the "Original price (USD)" from the tag or listing.
- Pick a "Discount type" (Percent off or Dollars off) and enter the "Discount (percent or USD)".
- Open "Advanced options" if you want quantity, sales tax, a second stacked discount, or different rounding.
- If buying more than one, set "Quantity (items)" to a whole number (1, 2, 3, ...).
- If you want tax included, set "Include sales tax?" to Yes, enter "Sales tax rate (percent)", and choose whether to "Apply tax" before or after discounts.
- If you have two discounts, set "Add a second discount (stacked)?" to Yes, then choose the second discount type and value.
- Choose "Round money to" if you need to compare per-item vs total rounding.
- Press "Calculate" to see per-item results, totals, and any notes if an input makes the price impossible.
Definitions
Original price: The starting price before any discounts.
Percent off: A discount based on a percent of the current price (for example, 20% off).
Dollars off: A fixed amount taken off the current price (for example, $10 off).
Stacked discounts: Two discounts applied one after the other to the changing price (not added together) [1].
Effective discount (percent): The overall percent saved compared to the original price after all discounts.
Sales tax: A percent added as tax. Depending on rules, it may be computed on the discounted price or on the pre-discount price [2].
Tax timing: Whether tax is applied before discounts or after discounts (you choose to match your situation).
Rounding: How many decimal places money is rounded to (receipts often use cents).
Methodology
What this calculator computes
It applies your first discount (and optional second discount) to get a discounted price per item, then optionally applies sales tax, then multiplies by quantity for totals. Stacked discounts apply in order, so each discount is taken from the price after the previous discount [1].
Inputs and validation rules
Percent discounts must be between 0 and 100 (inclusive). Quantity must be a whole number 1 or more. If sales tax is enabled, the tax rate is required. A dollars-off discount cannot be larger than the current price at the moment it is applied, because that would make a negative price.
Discount math (per item)
percent_off_price = original_price * (1 - discount_percent/100)
dollars_off_price = original_price - discount_amount
price_after_discount = apply_discount(apply_discount(original_price, d1), d2)
Here, apply_discount means either percent off or dollars off, depending on the discount type you selected for that step.
Effective discount percent
effective_discount_percent = (1 - price_after_discount/original_price) * 100
If original_price is 0, this percent is not defined (division by zero), so the calculator shows N/A and explains the issue.
Sales tax options
Many receipts calculate sales tax on the discounted amount, but rules can vary, so you can choose tax timing to match your situation [2].
tax_after_discount: tax_amount = price_after_discount * (tax_rate/100)
tax_after_discount: final_price = price_after_discount + tax_amount
tax_before_discount: price_with_tax = original_price * (1 + tax_rate/100)
tax_before_discount: final_price = apply_discount(price_with_tax, discount)
When tax is disabled, tax outputs show N/A.
Totals with quantity
subtotal_after_discount = price_after_discount_per_item * quantity
tax_amount_total = tax_amount_per_item * quantity
final_total = final_price_per_item * quantity
Rounding can cause small differences between a calculator and a store receipt because some systems round per item, some round per line, and some round at the end. This tool rounds money to the number of decimals you choose and uses that rounding consistently for the displayed outputs.
Reverse modes (when selected)
original_price = final_price / (1 - discount_percent/100)
If discount_percent is 100, the original price cannot be determined (division by zero), so the calculator shows an error.
discount_percent = (1 - final_price/original_price) * 100
If final_price is greater than original_price, the result is negative. That means the price increased (a markup), not a discount, and the calculator keeps the negative sign so you can see that clearly.