Text version of this lessonExpand
Before a promotion launches, put welcome offers, free-shipping thresholds, bundles, discount codes, and sale prices into one offer profit guardrail matrix. Higher conversion is not approval. Approval means stacked contribution profit, cash pressure, inventory purpose, refund risk, and stop signals are visible before traffic scales.
Start by fixing the mistake: a promotion is not winning just because CVR rises
Many ecommerce teams read three surface signals after a promotion: order count is up, CVR looks better, and platform ROAS did not collapse. The problem is that none of those signals proves real profit. A discount gives away price. Free shipping gives away fulfillment cost. A gift gives away product and inventory. Refunds may leave payment fees, support cost, reshipment, and returned stock problems behind. Without a profit guardrail, a promotion can turn cash into a nicer-looking revenue chart.
This lesson is not about finding more promotion ideas. It teaches whether an offer can launch, whether it can enter paid traffic, whether it belongs in email, and whether it should become a repeatable monthly rule. By the end, you should be able to write an offer profit guardrail matrix instead of saying, "the campaign looks good."
Lesson output: offer profit guardrail matrix
The matrix should include offer type, cost to calculate before launch, profit floor, stacking rule, stop signal, responsible lead, review date, and next action. Its job is not to make promotion work feel complex. Its job is to let ads, email, site, merchandising, and finance see the same decision: what the store is giving away, what it gets back, where the risk sits, and when the team must stop.
The smallest useful version is simple. Use one row per offer. Record the final checkout price, contribution profit after costs, what cannot stack, when the offer will be reviewed, and which signal will stop it. If a promotion can explain why sales may rise but cannot explain post-discount contribution profit, free-shipping subsidy, gift cost, refund reserve, and ad CPA, it should not go straight into ads or email.
Turn promotion terms into profit fields first
- Welcome offer: an incentive for new customers or first orders. It often appears in popups, emails, and landing pages. Check first-order contribution profit and later repeat quality, not only first-order conversion.
- Free-shipping threshold: the order value where the store pays shipping. It is a fulfillment-cost promise. If the threshold is too low, higher order value may only hide shipping subsidy.
- Bundle: multiple products sold together. It may lift AOV, but it can also add parcel weight, gift cost, return handling, support disputes, and inventory pressure.
- Sale price: the promotional price shown on product or checkout surfaces. Test it with discount codes, automatic discounts, free shipping, and gifts. A safe product page does not prove a safe checkout.
- Discount stacking rule: the rule that says which incentives can apply together. If the rule is unclear, a first-order code, automatic free shipping, sale price, and discount code can push the final paid price below the profit floor.
- Contribution profit: revenue left after product cost, fulfillment, payment fees, refund reserve, gifts, and ad cost. It is not gross sales and it is not the same as platform conversion value.
- Cohort: customers acquired in the same period, channel, or offer. First-order results may look strong while that cohort waits for the next discount and weakens repeat margin.
Step 1: write the promotion purpose before the discount depth
The same 15% off offer can need different guardrails depending on the purpose. Clearance can accept lower profit if the cash return date is clear. New-customer acquisition can accept a thinner first order if the repeat window is measured. AOV lift must prove that bundles are not creating higher return or support cost. New-product testing should keep traffic and budget limited so a test does not become a long-term loss-making promise.
Use one plain sentence: this offer is meant to clear which inventory, test which customer segment, raise the basket for which SKU group, or reduce which conversion friction. If the team cannot write that sentence, do not launch yet. The discount may be replacing diagnosis.
Step 2: run the same product through the full checkout path
Shopify discounts can combine across product, order, and shipping discount classes. Sale price is a separate pricing mechanism. A product page that looks safe does not prove cart and checkout are safe. Before launch, test the same item through product page, cart, checkout, discount code, automatic discount, free-shipping rule, and gift rule.
For example, a 20oz tumbler may already show a sale price while still accepting a first-order code and automatic free shipping. The ads team may expect CVR to rise. That is not approval. First record final paid price, discount amount, shipping subsidy, payment fee, refund reserve, CPA, and gift cost. Then check whether stacked contribution profit remains above the floor.
After Step 2: use a rough profit floor before you have a perfect finance model
Many teams skip promotion guardrails because real profit feels hard to calculate. That is partly true. A full model may include tax, payment method, warehousing, support, return handling, fixed cost, and currency effects. But pre-launch approval does not need perfection. It needs a conservative rough cut: final paid price - product cost - fulfillment cost - payment fee - shipping subsidy - gift cost - refund reserve - expected ad CPA = post-promotion contribution profit.
This number will not be perfect, but it prevents the worst mistake. A platform may show $80 in conversion value, so the team feels like the order is worth $80. In reality, product cost may be $24, discount $12, shipping subsidy $8, payment fee $3, gift cost $5, refund reserve $6, and CPA $18. Only $4 remains. At that point, "ROAS looks okay" is not a business answer because cash and fulfillment cost already consumed the room.
Be conservative in the rough cut. Do not set refund reserve to zero. Do not treat gifts as free. Do not use only average shipping cost if heavy or remote-zone orders exist. Do not use the lowest pre-promo CPA as the campaign assumption. If data is missing, write the gap down: post-refund payment fee missing, gift reshipment cost missing, high-shipping-zone share missing. A visible gap is better than a confident but false profit line.
Step 3: backsolve free-shipping thresholds from real cost
Free shipping is not just a message. The threshold should be backsolved from current AOV, expected AOV, average shipping cost, parcel weight, refund reserve, and post-discount contribution profit. Higher sales with higher shipping subsidy and returns may only hide cost inside the order.
A practical check is to sample 20 orders. For each order, write order value, shipping subsidy, product cost, payment fee, refund reserve, and contribution profit. If many orders barely cross the threshold but fall below the minimum contribution profit line, do not expand the offer. Raise the threshold, exclude high-shipping items, limit the rule to selected SKUs, or keep the promotion as a small-traffic test.
Step 4: bundles and gifts need an inventory purpose
Bundles often make AOV look better, but AOV is not a profit conclusion. A tumbler with a replacement lid, a skincare kit with a sample, or a pet accessory bundle can raise order value while also adding parcel weight, pick-pack work, partial returns, gift disputes, and inventory tie-up. Write the purpose first: clearance, basket lift, new-product pairing, or stronger ad offer.
If the purpose is clearance, the guardrail can allow lower contribution profit, but cash recovery must be visible. If the purpose is long-term margin testing, the guardrail must be stricter and cannot use gifts to hide weak-margin SKUs. If the purpose is creative testing, limit budget and observation window so one winning ad angle does not become a permanent promotion policy.
Step 5: promotion review needs four evidence layers
Order facts confirm whether money happened: orders, refunds, and payment records. Cost facts show what remains after product cost, fulfillment, payment fees, shipping subsidy, gifts, and refunds. Channel facts explain why the order appeared: ad platforms, GA4, UTM, email flows, and organic search. Action facts record whether the team will continue, reduce, pause, change the threshold, fix stacking, or test with limited traffic.
A minimal sheet only needs eight columns: date, order or SKU, revenue, main cost, contribution profit, source channel, variance reason, and next action. Fewer fields are acceptable if the same definition is used every week. Without this, review turns into ads saying ROAS is good, operations saying orders are up, finance saying margin is thin, and nobody owning the decision.
Practice: approve one promotion in 30 minutes
- Pick one offer that is about to launch or just launched: first-order code, free-shipping threshold, bundle, gift, or sale price.
- Run the same product through product page, cart, and checkout. Record final paid price, discount amount, shipping subsidy, and whether stacking is allowed.
- Write product cost, payment fee, fulfillment cost, gift cost, refund reserve, and expected CPA. Calculate post-discount contribution profit.
- Write one decision sentence: continue, reduce, pause, change threshold, fix stacking, or test with limited traffic.
- Write one counter-signal. If the decision is wrong, will you see it first in refund rate, contribution profit, cohort repeat, support issues, or inventory cash?
How to write three common decisions
Approved for small traffic: final paid price is above the profit floor, shipping subsidy is recorded, the discount code cannot keep stacking with sale price, and post-refund contribution profit still has room. Do not write "scale." Write "launch with limited traffic for 7 days, then review post-refund contribution profit and cohort repeat."
Fix the rule before launch: the offer idea is valid, but checkout testing shows a first-order code, automatic free shipping, and sale price all applying together, or high-shipping SKUs making the subsidy too large. The action is not to reject the entire campaign. Fix stacking, raise the threshold, exclude selected SKUs, and run the checkout path again.
Hold; do not enter ads or email: post-discount contribution profit is below the floor, or platform ROAS looks good while refunds, gifts, support cost, and cash tie-up have no evidence. Holding the offer is not being cautious. It prevents one loss-making test from becoming a cross-channel loss.
When to use the pricing calculator for scenario testing
Once you can list price, product cost, fulfillment, payment fee, discount, shipping subsidy, refund reserve, and ad cost, put those numbers into the Ecomwith pricing calculator for scenario testing. Run at least three versions: normal price, promotion price, and bundle price. For each version, review contribution profit, contribution margin, acceptable CPA, break-even ROAS, and cash recovery pressure.
The tool helps you see the cost stack faster. It does not approve the promotion for you. Approval still returns to this lesson's guardrail: the offer purpose is clear, the checkout path is safe, stacking rules are written, post-refund profit still has room, and a responsible lead owns the counter-signal. If the tool shows thin profit, the next move is not always cutting ads. It may be raising the free-shipping threshold, changing the bundle structure, narrowing the audience, rewriting the page promise, or pausing high-refund SKUs before traffic scales.
Official verification boundary
Use Shopify discount-combination docs to verify combination rules, calculation order, and shipping-discount limits. Use Shopify sale-pricing docs to separate compare-at price from checkout price. Use GA4 ecommerce discount parameters to record discount amount instead of percentage. Use Google Ads conversion value rules as an ad-value boundary, not as proof of real profit.
Copyable lesson notes: turn promotion review into an executable table
Do not leave with "the campaign looks good." Leave copyable promotion profit guardrail notes: current pressure, first evidence, offer, profit floor, stacking rule, evidence sources, responsible lead, blocked move, review date, next route, and counter-signal. A useful conclusion tells ads, email, site, merchandising, and operations what can continue, what should be reduced, and what must pause.
Use this sentence structure: current pressure is X, first evidence comes from Y; this offer is Z, approved scope is A, minimum contribution profit is B, and it may not stack with C; this-week action is D, blocked move is E, the first review checks post-refund contribution profit and cohort repeat, and if the floor is missed we pause ad scaling, recalculate the free-shipping threshold, and move to next route F.