Shopper utility
Discount stacking calculator
Type the deals exactly as written — 折, % off, fixed amounts, spend-X-get-Y thresholds, recurring or not. You set the order, the caps and which amount each gate reads; every step shows its deduction and running total. Add plan B for a side-by-side diff, and check top-up math on its own card.
You pay
—
Plan A
You pay (incl. shipping)
—
Plan B
You pay (incl. shipping)
—
Top-up math — is adding an item worth it?
How the stack is calculated
Discounts run top to bottom in the order shown — each percent-off or 折 reads the amount left by the rows above it. That is why order matters: percent discounts multiply, while fixed and threshold deductions subtract, so swapping them changes the answer. A 门槛 (minimum-spend gate) can read either the original price or the running amount after the rows above — pick the basis on each row, and the step table shows exactly which number was checked. Caps cut a row's deduction at your ceiling, shipping is added on top at the very end, and the payable never drops below zero.
折 vs % off — same math, different wording
Chinese coupons write 8折 (pay 80%); Western coupons write 20% off (take 20% off). 8折 and 20% off are the same discount. Keep them as separate row types so you can type exactly what the promotion says — the step table always shows the equivalent both ways.
Currencies: pick the symbol, skip the conversion
The currency selector covers CNY, USD, EUR, GBP, JPY, KRW and ten more. It only changes how amounts are displayed — including zero-decimal currencies like JPY and KRW where fractions are rejected. No exchange rates are applied: type the cart in whatever currency the store charges and every amount on the page stays in that currency.
This is a simulation, not a platform promise
Every marketplace stacks discounts by its own rulebook — some forbid stacking, some read thresholds on the marked price, some on the discounted amount, and caps differ per coupon. This tool runs the rules you type, in the order you set, so you can model a promotion before trusting it. Check the platform's own checkout page for the final word.
Next step: is the final price actually good?
A stacked price is only a deal if the unit price beats the alternatives. Send the payable straight to the unit price comparator — it normalizes packs, bundles and buy-one-get-one offers into per-100g / per-100ml / per-piece prices.
Frequently asked
Does the discount order really matter?
Yes. Percent-type rows (折, % off) commute — 20% then 10% off equals 10% then 20%. But swapping them with fixed or threshold rows changes the answer: ¥200 with 8折 then −¥30 is ¥130, while −¥30 then 8折 is ¥136. The stack runs top to bottom; use the arrows to reorder and watch the difference.
What does the "gate basis" do?
A threshold (满X) compares X against some amount — either the original price or the running amount after the rows above it. Marketplaces disagree on which one counts, so every row lets you pick. The step table records exactly which number was checked and whether it passed.
"Every ¥X −¥Y" vs "¥X −¥Y" — what's the difference?
A plain 满300减40 deducts ¥40 once when the threshold is reached. The recurring 每满300减40 multiplies by whole brackets — ¥650 saves ¥80, ¥599 only ¥40 (a partial bracket doesn't count). The multiplier is counted on whichever basis amount you picked.
The top-up card shows a negative "real extra spend" — what does that mean?
It means the cart costs less after adding the item than before — you get an extra product AND pay less, which is a true saving. A positive number below the item's price means the add-on effectively came at a discount; equal to the price means the threshold still wasn't reached. The card can model one custom threshold rule, or switch to "plan A's stack" to re-run the whole multi-layer stack before and after the add-on — closer to a real big-sale checkout.
How is shipping counted?
Each plan card has a shipping field (blank = 0). Shipping is added after all discounts run — it never feeds threshold gates and is never discounted. The step table lists it as its own final row, and the A/B verdict compares the real payable (discounted merchandise + shipping).
Is 8折 the same as 20% off?
Yes — 8折 means paying 80%, i.e. 20% off. They are separate input types because Chinese promos print 折 and Western promos print % off; type whichever the coupon says. The step table always shows the "pay X%" equivalent.
Will this match a real checkout page?
Not necessarily. This is a simulation of the rules you type: real marketplaces may forbid stacking, read thresholds on marked or discounted prices, cap coupons differently and fix their own order. Use this to do the math before checkout — the platform's own page is the final word.
Which currency does it use?
CNY ¥ by default; the selector in the toolbar switches among 17 currencies (USD, EUR, GBP, JPY, KRW and more). It changes display only — no exchange rates — so type amounts in whatever currency the store charges; zero-decimal currencies like JPY and KRW reject fractional input. Internally everything is integer minor units with round-half-up, so there is no floating-point drift, and the payable can never go below zero.