Five shopping and pricing calculations, each on its own tab:
- Percent off: the price after a discount and what you save, or what discount a sale price really is.
- Stacked discounts: several discounts one after another ("20% off, then an extra 10%", or a percentage plus a voucher), step by step, with the single discount that has the same effect.
- Buy X get Y: the real price per item of "buy 2 get 1 free" or "second one half price", for the number of items you actually take.
- Tax: add a sales tax or VAT to a net price, or take it out of a price that includes it.
- Unit price: compare up to six products by price per 100 g, per 100 ml or per piece, with the cheapest marked.
All arithmetic is exact (fractions, not floating point); only the displayed figure is rounded. Pick a currency symbol if you like. Everything runs in your browser.
Why 20% + 10% is not 30%
Each discount in a stack applies to the price that is left after the previous one. On a price of 100, 20% off leaves 80; another 10% off takes 10% of 80, which is 8, leaving 72. You saved 28, so the two discounts together are worth 28%, not 30%. In general the combined discount is 1 − (1 − a) × (1 − b): for 20% and 10%, 1 − 0.8 × 0.9 = 0.28. The order of percentage discounts does not matter (0.8 × 0.9 = 0.9 × 0.8), but a fixed amount does: 10% off and then 5 off a price of 100 gives 85; 5 off first and then 10% gives 85.50. The tool keeps your order and shows every step, and a price never drops below zero.
Buy X get Y, honestly
"Buy 2, get 1 free" on items costing 30 means 3 items for 60: 20 each, a 33.33% discount, but only if you take all three. Take 7 and you get two complete offers (6 items for 120) plus one item at full price: 150, or 21.43 each. "Buy 1, get the second half price" is 25% off a pair, and nothing off a single item. The tool works from the quantity you really want, so it shows when an offer only pays if you buy more than you need. Set the "get" discount to 100 for free items or 50 for half price.
Unit prices: per 100 g, per 100 ml, per piece
Pack sizes are chosen to make comparison hard. Enter each product's price, its size and unit, and the number of packs the price buys (a 6-pack of 330 ml cans is 330 ml × 6). The tool converts everything exactly (1 kg = 1,000 g, 1 l = 1,000 ml, 1 oz = 28.349523125 g, 1 lb = 453.59237 g, 1 US fl oz = 29.5735295625 ml) and shows price per 100 g, per 100 ml or per piece. Example: 500 g for 45,000 is 9,000 per 100 g; 1 kg for 85,000 is 8,500, the cheapest, so the smaller pack costs 5.88% more for the same amount. Weights are only compared with weights and volumes with volumes, because a gram is not a millilitre unless you know the density.
Tax added or taken out
Adding 10% tax to 100 gives 110. Taking 10% out of a tax-inclusive 110 gives back 100, not 99: the tax is 1/11 of the gross price, because it was calculated on the net amount. With 8% included in 100, the net price is 100 ÷ 1.08 = 92.59 and the tax 7.41. For invoices and Vietnamese VAT rules there is a dedicated VAT calculator; for any other percentage question, the percentage calculator.
More worked examples and the common traps are in why stacked discounts don't add up.