ForHosting KIT · Finance & money

Black Friday calculator

A list price of 100 cut to 70, plus a 10% coupon, ends at 63: you save 37, a true 37% off the original. Enter the original price, the sale price and the coupon to see what you will really pay. 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
Sale price
70
Coupon percent
10
You get
Sale discount
30
Sale discount percent
30
Coupon amount
7
Final price
63

Black Friday advertised percents are rarely the whole checkout story. A tagged sale price is only the first markdown, and a stackable coupon still has to come off that sale, not the original list. Shoppers, deal blogs, and checkout scripts need the true out-the-door figure and the combined savings against list, not a mental two-step that drops a rounding error. This Black Friday calculator takes the original price, the sale price, and an additional coupon percentage, applies the coupon to the sale, and returns the final price, total savings, and the effective discount percent versus the original.

What the effective Black Friday discount is and how the two layers stack

The advertised Black Friday percent is a marketing number. Retailers mark a list price down to a sale price, then often let a coupon, code, or app offer take a further percentage off that already-reduced ticket. Those two layers do not add as percentages: twenty percent off plus ten percent off is not thirty percent off the original.

The coupon multiplies the sale price, so the true markdown versus list is one minus the product of the two remaining factors. The sale discount is original minus sale. The coupon amount is sale times coupon percent over one hundred.

The final price is sale minus that coupon amount. Total savings is original minus final price. The effective discount percent is total savings divided by original price, times one hundred.

Example: a list of one hundred, a sale of seventy, and a ten percent coupon yields a coupon of seven, a final price of sixty-three, total savings of thirty-seven, and an effective thirty-seven percent off list. When the coupon is zero the effective percent equals the advertised sale markdown. When the coupon is one hundred the final price is zero and total savings equals the original.

Money amounts round half-up to two decimal places so the ticket matches ordinary currency. Percents are returned with stable rounding so scripts and goldens do not drift across runtimes. The formula field restates the identity so a reviewer can print it next to the numbers without reconstructing the stack by hand.

Where a Black Friday calculator earns its keep

People who type black friday into a search box during the shopping window are not looking for a generic percent-off toy and are not looking for a chain of arbitrary cascade percents. They have a tagged sale price and often a coupon stacked on top, and they want the true final price and the combined savings versus the original list. Shoppers comparing two SKUs with different advertised percents and different stackable codes need one identity that always applies the coupon to the sale, never to the list.

Retail quality checks and promotion engines need a deterministic oracle that rejects a sale above list instead of silently emitting a signed markdown a grader might treat as a markup. Classroom and personal-finance lessons that teach stacked discounts need the same two-layer identity without a spreadsheet cell that someone forgot to lock. 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 stacked sale-plus-coupon figure people mean when they search for a Black Friday calculator.

Shopper comparing a tagged sale plus a stackable coupon

Enter the original list, the Black Friday sale ticket, and the extra coupon percent to lock the out-the-door price and the combined savings versus list.

What happens if the sale price exceeds the original price?

A tagged Black Friday sale cannot be higher than the original list price, and the failure is not billed.

Is the extra coupon applied to the original price or the sale price?

To the sale price. Stacking the coupon on list would overstate the markdown.

Can the coupon percentage be zero or one hundred?

Yes. Zero means the advertised sale is the only markdown. One hundred makes the final price zero and total savings equal the original. Values outside zero through one hundred are rejected.

Why don't a sale discount and a coupon add up?

Because the coupon is taken off the already reduced sale price, not off the list price. The two discounts multiply instead of adding, so the real discount against the original is always a little smaller than the sum of the two percentages.

Does the final price include sales tax or shipping?

No. The final price is the ticket after the sale and the coupon only. If you need the amount you will actually pay at your door, add your own tax and shipping on top of it.

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/black-friday

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/black-friday \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"original_price":100,"sale_price":70,"coupon_percent":10}'
{
  "original_price": 100,
  "sale_price": 70,
  "coupon_percent": 10
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "fin.black_friday",
  "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.

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.

If the sale price exceeds the original price the request fails with invalid_input instead of inventing a negative markdown. Successful calls are billed at $0.002; invalid input is not charged.

What the effective Black Friday discount is and how the two layers stack

This calculator encodes that stack. original_price is the list or pre-sale ticket. sale_price is the tagged promotional price after the advertised markdown. coupon_percent is the extra percentage taken off the sale, including zero when no code applies.

Input contract, response shape, and error behaviour

A coupon 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 three required finite numbers in the same currency. 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, and msrp are accepted so a catalog export does not need a rename step. sale_price is the tagged Black Friday price after the advertised markdown and must be a finite number greater than or equal to zero; aliases sale and discounted_price are accepted. If sale_price is greater than original_price the request fails with invalid_input naming the fact that the sale price exceeds the original price, rather than inventing a negative markdown a downstream ledger would post as a credit. coupon_percent is the additional coupon taken off the sale, from zero through one hundred inclusive; aliases coupon, coupon_pct, and additional_coupon 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, a negative sale, or a coupon outside zero to one hundred fail with invalid_input naming the field and are not billed. On success the body echoes the rounded original, sale, and coupon, returns sale_discount and sale_discount_percent for the first markdown, coupon_amount for the second layer, 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. Pricing for a successful item is a flat $0.002.

Where a Black Friday calculator earns its keep

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

Deal page that publishes an effective percent

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

Promotion QA when a sale cannot exceed list

Reject a tagged sale above the original price as invalid_input instead of inventing a negative markdown that a catalog feed would treat as a markup.

How is the effective Black Friday discount calculated?

The coupon is taken off the sale price, not the original. final_price equals sale_price times one minus coupon_percent over one hundred. total_savings is original_price minus final_price. effective_discount_percent is total_savings over original_price times one hundred.

What does the Black Friday 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 →