How do I stop a discount stack from making an order unprofitable?
Stop a discount stack from going unprofitable by setting a per-order margin floor equal to your contribution before discount, then blocking any combined offer past it.
Last updated: June 27, 2026
Stop a discount stack from making an order unprofitable by setting a per-order margin floor equal to the order's contribution before any discount, then blocking any combination of code, free shipping, and loyalty reward that adds up past that floor. The maximum stacked discount an order can take equals its contribution before discount, expressed as a percentage of price.
Most stores cap each promo on its own and never check what happens when three of them land on the same cart. That blind spot is why stacking discounts go unprofitable so quietly: each offer looks small, the combination does not.
What does it mean when stacking discounts go unprofitable?
A discount stack goes unprofitable when the combined value of every offer on one order exceeds the contribution that order had before any discount, so the line item ends below zero dollars. Contribution before discount is the slice of revenue left after cost of goods, duty, payment fees, shipping, and pick-pack labor. Once the stacked discounts eat more than that slice, the order pays you to ship it.
Three things make stacking dangerous and easy to miss. Each offer is sized in isolation, so a 20 percent code and a $15 loyalty reward both pass their own sanity checks. The offers come from different systems, so the code lives in your promo engine, free shipping lives in your shipping rules, and the loyalty reward lives in a third app. And nobody is summing them at the cart level, so the only place the full stack appears is the order itself, after it has already shipped.
What is the margin-floor guardrail for a discount stack?
The margin-floor guardrail is a single per-order number: the maximum combined discount the order can absorb before contribution turns negative, and it equals the order's contribution before discount as a percentage of price. Compute contribution before discount in dollars, divide by price, and that percentage is the ceiling. Any stack that adds up past it is a red order before it leaves the warehouse.
The rule reads as one line:
maximum stacked discount = contribution before discount / price
The number on the right is the floor for that order. A stack worth less than it survives. A stack worth more than it does not. The guardrail does not care which app each offer came from, because it compares the total discount against the only thing that matters, the contribution the order started with.
How do I stop a discount stack from going unprofitable, step by step
Stopping an unprofitable discount stack takes four steps: compute the order's true contribution, convert it to a floor percentage, sum every active discount on the cart, and block or trim the stack when the sum crosses the floor. Run these in order and no combination of innocuous offers can push an order red without you seeing it first.
Step 1: Compute contribution before discount
Add up every variable cost the order carries at full price: cost of goods, import duty where the components are sourced abroad, payment processing fee, outbound shipping cost, and pick-pack labor. Subtract that total from the price. The result is contribution before discount, the dollars the order has to give away before it loses money.
Step 2: Turn the dollars into a floor percentage
Divide contribution before discount by price. That percentage is the margin-floor guardrail for the order. It tells you, in plain terms, the largest combined discount the order can take. Compute it per product or per cart, not store-wide, because a high-margin serum and a heavy advent box have very different floors.
Step 3: Sum every discount on the cart
Add the value of each active offer in dollars: the percentage code converted to dollars, the shipping you absorb when free shipping triggers, and any loyalty or referral credit applied. Free shipping is a real discount line, not a courtesy, so count the shipping you give up. The total is the stack.
Step 4: Block or trim when the stack crosses the floor
Compare the stack from step 3 against the floor from step 2. When the stack is smaller, let it through. When the stack is larger, stop it: cap one of the offers, mark codes as non-stackable with loyalty rewards, or exclude the SKU from sitewide promos. The decision is mechanical once both numbers are on the table.
A worked example: stacking discounts on a $79 advent box
Take a beauty advent calendar box that sells for $79 and ships free to the customer. Here is the full cost ledger at list price:
| Line | Amount |
|---|---|
| Price | $79.00 |
| Cost of goods | -$34.00 |
| Import duty (components sourced abroad) | -$3.20 |
| Payment fee (2.9% + $0.30) | -$2.59 |
| Shipping cost | -$9.40 |
| Pick-pack labor | -$2.00 |
| Contribution before discount | $27.81 |
Contribution before discount is $27.81. Convert it to the floor:
$27.81 / $79.00 = 0.352 = 35.2%
So 35.2 percent is the margin-floor guardrail for this box. Any stack worth more than $27.81, or more than 35.2 percent of price, takes the order negative. That $27.81 floor is the Agentis-computed figure, and the arithmetic above is the entire derivation.
Now three innocuous offers land on the same box during a summer sale. None of them looks reckless on its own:
- A sitewide code, SUMMER20, takes 20 percent off:
0.20 x $79 = $15.80 - Free shipping is on, so the store absorbs the $9.40 it would otherwise charge:
$9.40 - The customer redeems a $15 VIP loyalty reward:
$15.00
Stack them:
$15.80 + $9.40 + $15.00 = $40.20
That is a $40.20 stack, or 50.9 percent of price, against a floor of $27.81, or 35.2 percent. The stack clears the guardrail by $12.39. Run the full ledger to confirm the order is actually red. The customer now pays $79 - $15.80 - $15.00 = $48.20, and because the basket is smaller the payment fee drops to 0.029 x $48.20 + $0.30 = $1.70:
$48.20 - $34.00 - $3.20 - $1.70 - $9.40 - $2.00 = -$2.10
The box ships at minus $2.10 in contribution. You paid $2.10 to fulfill it, before a cent of overhead, and three offers that each passed their own approval did it. The guardrail caught it at step 4, when the $40.20 stack crossed the $27.81 floor, long before the order reached the P&L.
What does it cost to skip the discount-stack guardrail?
Skipping the guardrail costs you the full negative contribution on every stacked order, multiplied by volume, and you find it a month late. One advent box at minus $2.10 is a rounding error. The same stack firing on 400 boxes during a sale week is 400 x -$2.10 = -$840 in contribution you destroyed while the dashboard showed revenue climbing. Revenue looks healthy because the orders are real. The margin is the part that is gone.
The trap is timing. Without a cart-level check, the only record of the full stack is the order, and orders get reconciled at month-end. By then the promotion is over, the boxes have shipped, and the loss is locked. A per-order floor moves the catch from the close to the checkout, which is the difference between preventing the loss and reporting it. For the wider picture on which orders quietly bleed, see which orders are unprofitable and why, and if you suspect promos are the cause, whether discounting is killing your profit walks the broader pattern.
Where Agentis fits
Computing a floor by hand works for one box. It does not work for thousands of carts where codes, shipping rules, and loyalty rewards combine in real time. That is the job Agentis does. Agentis is a real-time profit governance platform for high-volume Shopify Plus and ShopLine merchants. It monitors margin at the order and SKU level and flags or blocks unprofitable activity before it reaches the P&L.
Profit governance is the practice of monitoring and enforcing margin rules in real time across every order, SKU, and channel, so unprofitable activity gets caught and corrected as it happens instead of discovered in a month-end report. Applied to discounts, that means the $27.81 floor on the advent box is enforced at the cart, so the $40.20 stack is stopped or trimmed at checkout rather than mourned at month-end.
Frequently asked questions
What is the maximum discount I can stack before an order loses money?
The maximum stacked discount equals the order's contribution before discount divided by its price. On the $79 advent box with $27.81 of contribution before discount, that ceiling is 35.2 percent of price, or $27.81 in combined offers. Any stack worth more than that takes the order negative.
Does free shipping count toward the discount stack?
Yes. Free shipping is a real discount because you absorb a shipping cost you would otherwise charge, so count the dollars you give up. On the advent box that is $9.40, and it pushed the stack from $25.40 in codes and rewards to $40.20 once free shipping was added. Leaving shipping out of the math is the most common reason a stack looks safe and is not. See how to set a free shipping threshold that protects margin for the shipping side of this.
How is a margin floor different from a minimum order value?
A margin floor is the maximum discount an order can absorb before contribution hits zero, set per order from its true costs. A minimum order value is a checkout threshold a basket must reach to qualify for an offer. The floor protects profit on the order you already have. The minimum order value shapes the basket before the offer applies. You need both, but only the floor stops a stack from going red.
Why did my order go negative when each discount looked small?
Each discount is sized against price, but the stack is paid out of contribution, which is a much smaller number. On the advent box, price is $79 but contribution before discount is only $27.81. A 20 percent code, free shipping, and a $15 reward each look minor against $79 and are fatal against $27.81. The fix is to measure every offer against contribution, not price. Start by nailing the contribution number with how to calculate true net margin.
Can I just turn off discount stacking entirely?
You can, and on thin-margin SKUs you probably should, but a blanket ban leaves money on the table for high-margin products that can absorb several offers. The per-order floor is the precise version: it allows stacking up to each order's own ceiling and blocks only the combinations that cross it. That keeps your best margins working for promotions while stopping the orders that would ship red.
One next step you can take today: pick your three most-discounted SKUs, compute contribution before discount for each, divide by price, and write the floor percentage on a sticky note next to your promo calendar. The next time you schedule overlapping offers, sum them and check them against that number before they go live.