ForHosting KIT · Finance & money

Triple discount calculator

Taking 20%, then 10%, then 5% off 100 leaves a final price of 68.40, a true discount of 31.6%, not 35%. Enter the original price and the three cuts in the order the register applies them. Free in your browser.

  • Free
  • Runs in your browser
  • No sign-up
  • Your data stays on your device
Use it from WebAPIEmailTelegramApp soon
If you enter
Original price
100
Discount 1
20
Discount 2
10
Discount 3
5
You get
Price after first
80
Price after second
72
Final price
68.4
Total savings
31.6

A triple discount is three percentage cuts applied one after another to the same ticket: a store markdown, then a coupon, then a loyalty or extra percent off, or the wholesale 20/10/5 chain. Those three numbers do not add. Twenty plus ten plus five is not thirty-five percent off the original; each cut is taken off the already-reduced price, so the true markdown is smaller than the sum. This calculator accepts the original price and three successive percentages, applies them in order, and returns the final price, the savings, and the effective discount versus the original.

What a triple discount is and why the three percents do not add

People who type triple discount into a search box already know there are three cuts, and they want the true out-the-door figure, not a mental sum that overstates the markdown. Retail stacks a store percent, a coupon, and an extra code. Wholesale still quotes the classic 20/10/5 chain.

In both cases the identity is a product of remaining factors, not a sum of advertised percents. If the original price is P and the three discounts are d1, d2, and d3 as percentages, the remaining ticket after the first cut is P times one minus d1 over one hundred. The second cut multiplies that remainder by one minus d2 over one hundred.

The third cut multiplies again by one minus d3 over one hundred. The final price is therefore P times the product of the three remaining factors. Total savings is original minus final.

The effective discount percent is savings over original, times one hundred — equivalently one minus that product, times one hundred. Example: an original of one hundred with successive cuts of twenty, ten, and five yields eighty after the first, seventy-two after the second, a final price of sixty-eight forty, savings of thirty-one sixty, and an effective thirty-one point six percent off list, not thirty-five. Zero at any step is a pass-through.

One hundred at any step zeros the remaining ticket and the later cuts stay at zero. In exact arithmetic the three factors commute, so the same three percents in another order produce the same final price; this calculator still applies them in the order given so the intermediate tickets match a register that posts first, then second, then third. Money amounts round half-up to cents at each step so a one-cent POS difference cannot hide.

Percents in the response use stable rounding so scripts and goldens do not drift across runtimes. The formula field restates the product identity so a reviewer can print it next to the numbers without reconstructing the stack by hand.

Where a triple discount calculator earns its keep

Shoppers comparing a store markdown, a coupon, and an extra loyalty percent need one identity that always applies each cut to the current ticket, never to the original three times. Wholesale desks still quote 20/10/5 and want the net price and the equivalent single discount without opening a spreadsheet cell that someone forgot to lock.

Classroom and personal-finance lessons that teach why successive percents are not additive need the same three-factor product, with intermediate prices, so a learner can see eighty then seventy-two then sixty-eight forty instead of a black-box final. Promotion QA and catalog feeds need a deterministic oracle that rejects a cut of one hundred and one instead of silently emitting a negative ticket a grader might treat as a credit. Failed validation does not consume balance.

Pair this capability with a separate tax or shipping tool when you need those layers; keep this surface focused on the three successive percentages people mean when they search for a triple discount calculator.

Shopper stacking store, coupon, and extra percent off

Enter the original list and three successive percentages to lock the out-the-door price, the cascade of intermediate tickets, and the effective discount versus list.

Wholesale 20/10/5 net price on a quote

Turn a classic three-step trade discount into a net price and an equivalent single percent so a buyer sees the true markdown, not the sum of the advertised cuts.

Why is 20% then 10% then 5% not 35% off?

The second cut applies to the already-reduced ticket, and the third cut applies to that remainder. On an original of 100 the cascade is 80, then 72, then 68.40 — an effective 31.6% off, not 35%.

What happens if a discount is outside 0 to 100 percent?

A negative cut would be a markup and a cut above one hundred would produce a negative ticket. The failure is not billed.

Does the order of the three discounts change the final price?

In exact arithmetic the three remaining factors commute, so the same three percents in another order produce the same final price. This calculator still applies them in the order you send so the intermediate tickets match a register that posts first, then second, then third. Half-up cents rounding at each step can differ by a cent when the order changes.

What happens if one of the discounts is 100%?

The price drops to zero at that step and the later discounts change nothing. A 0% discount, on the other hand, leaves the price as it is and passes it on to the next step.

How are cents rounded between the discounts?

Each intermediate price is rounded half-up to the cent, the way a cash register does it. That way a one-cent gap between your own sum and the receipt cannot hide.

Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.

POSThttps://api.kit.forhosting.com/fin/triple-discount

Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.

curl -X POST https://api.kit.forhosting.com/fin/triple-discount \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"original_price":100,"discount_1":20,"discount_2":10,"discount_3":5}'
{
  "original_price": 100,
  "discount_1": 20,
  "discount_2": 10,
  "discount_3": 5
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "fin.triple_discount",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.

Per request$0.002

Published price — no tokens, no invented credits. A failed task is never charged.

max_price1000000000000
HTTPCodeMeaning
401unauthorizedMissing or invalid API key.
402insufficient_balanceYour balance doesn't cover the task price.
404unknown_typeThat task type doesn't exist.
429rate_limitedToo many requests. Use the webhook instead of polling.

A discount outside zero through one hundred fails with invalid_input instead of inventing a negative ticket. Successful calls are billed at $0.002; invalid input is not charged.

Input contract, response shape, and error behaviour

A discount below zero would be a markup and is rejected. A discount above one hundred would produce a negative ticket and is rejected. Prefer bare numbers over formatted strings; currency marks, thousands separators, and trailing unit labels are not parsed. Pair the result with your own tax or freight step if you need a landed cost. POST a JSON body with four required finite numbers. original_price is the list or pre-promotion ticket and must be a finite number strictly greater than zero, because the effective percent divides by that original; aliases original, list_price, price, and amount are accepted so a catalog export does not need a rename step. discount_1, discount_2, and discount_3 are the three successive percentages, each from zero through one hundred inclusive; aliases first_discount, second_discount, third_discount, d1, d2, d3, discount1, discount2, and discount3 are accepted. Each field may arrive as a JSON number or as a numeric string that matches a strict finite decimal pattern. Missing fields, empty strings, non-finite values, a non-positive original, an original above the published maximum, or any discount outside zero to one hundred fail with invalid_input naming the field and are not billed. On success the body echoes the rounded original and the three discounts, returns price_after_first and price_after_second so you can show the cascade, final_price as the out-the-door ticket, total_savings as original minus final, effective_discount_percent as savings over original times one hundred, and a formula string you can print next to the numbers. This endpoint does not apply sales tax, shipping, cashback, or currency conversion, and it does not accept a variable-length list of cuts. Pricing for a successful item is a flat $0.002.

Where a triple discount calculator earns its keep

Keep requests small, pin final_price, total_savings, and effective_discount_percent in tests, and you get a reproducible triple-discount ticket for landing pages, checkout previews, and lightweight pricing notebooks without standing up a full commerce engine.

Deal page that publishes an effective triple discount

Compute the stacked markdown once so the widget on the landing page matches the figure a later checkout or newsletter script will quote.

How is a triple discount calculated?

Each cut is taken off the current remaining price, not the original. final_price equals original_price times (1 − discount_1/100) times (1 − discount_2/100) times (1 − discount_3/100). effective_discount_percent is (1 − final_price/original_price) times one hundred.

What does the triple discount calculator cost?

The browser tool is free. API requests use prepaid KIT balance at $0.002 per successful call; invalid input is not billed.

Read the full KIT documentation →