Paid-Acquisition Discount Floor When CAC Has To Come Out Of The Same Order

When paid-traffic CAC has to be paid back from the same order it acquires, your discount floor isn't margin minus the promo — it's margin minus CAC minus the promo. Here's the reconciliation.
Quick answer
When paid-traffic CAC has to be recovered from the same order it acquires, your maximum discount is (contribution margin − attributed CAC) ÷ price. For a €60 order at 55% margin with a €14 Meta CAC, that's (€33 − €14) ÷ €60 = 31.6% — not the 55% the P&L would suggest.
Paid-acquisition discount floor (same-order CAC)
The maximum promo depth a paid-traffic order can carry once attributed CAC is subtracted from contribution margin.
On organic and email orders, your discount floor is set by contribution margin alone — every euro of margin above zero is fair game for a promo. On Meta and Google orders, the CPA you paid to acquire that click has to come out of the same order, because there's no future repeat purchase already booked against it.
That shifts the floor. Instead of comparing the discount to gross margin, you compare it to margin-after-CAC. A promo that looks profitable on the consolidated P&L can still burn cash on the ad account if the per-order CAC is higher than the leftover margin after the promo.
This page is the reconciliation Performance Managers need when finance signs off on a 30% sitewide promo and the ad account quietly goes underwater the same week.
It's a sibling of the broader minimum discount floor from contribution margin — same math, but with attributed CAC sitting on top as a second cost line the promo has to clear.
Why the same-order CAC matters
A new-customer order from Meta has two costs against it: the COGS-and-fulfilment stack that gives you contribution margin, and the CPA your ad account paid to land the click.
If you treat that order like an organic one and discount down to your standard margin floor, the CAC bill still arrives — but there's no margin left to pay it. The order ships, the customer is happy, the ad invoice clears, and the cash is gone.
The P&L will lie to you here
Blended margin reports average paid and organic orders together, so a same-order CAC problem hides inside healthy-looking aggregate numbers. You only see it when you split orders by acquisition source — which most Shopify reports don't do by default.
The reconciliation math
Start from the order. Price is what the customer pays before the discount. Contribution margin is price minus variable costs (COGS, pick-pack, payment fees, returns reserve).
Maximum discount in euros = contribution margin − attributed CAC. Maximum discount as a percentage = that number divided by price. Anything deeper and the order loses money on a cash basis the day it ships.
Worked example: a Shopify apparel store sells a €60 hoodie at 55% contribution margin (€33). Meta CAC on new customers is €14. Discount floor = (€33 − €14) ÷ €60 = 31.6%. The 40% sitewide promo the brand team wants would lose €5 per Meta order.
Floors by channel and order value
Discount floor as a % of order value, by channel and AOV (55% contribution margin assumed)
| Channel | AOV €45 | AOV €80 | AOV €140 |
|---|---|---|---|
| Organic / direct (no CAC) | 55% | 55% | 55% |
| Email / SMS (CAC ~€2) | 50.6% | 52.5% | 53.6% |
| Google Shopping (CAC ~€9) | 35.0% | 43.8% | 48.6% |
| Meta prospecting (CAC ~€16) | 19.4% | 35.0% | 43.6% |
| TikTok cold (CAC ~€22) | 6.1% | 27.5% | 39.3% |
The pattern: low-AOV orders from expensive paid channels have almost no room for promo. A €45 TikTok order at €22 CAC can carry a 6% discount before it's underwater — which is why blanket sitewide promos hit cold-traffic orders hardest.
How to fix it without killing the promo
Segment the discount. Run the deep promo on email and SMS where CAC is near zero; cap the paid-traffic version at the CAC-adjusted floor. Most Shopify discount apps support source-based or audience-based codes — use them.
Or raise the threshold. A free-shipping-over-€80 offer pulls AOV up before the discount applies, which expands the same-order margin headroom — relevant when your Meta CAC is fixed but the basket size is yours to shape.
Testing the floor
Split paid-traffic landing pages by discount depth. Hold one cohort at the CAC-adjusted floor, push another 5-10 points deeper, and measure contribution-margin-per-visitor, not conversion rate. The deeper discount almost always wins on CVR and loses on margin per session.
If you're modelling repeat purchase into the decision, switch to contribution margin-adjusted LTV as your ceiling — that's the version of this math that lets you go deeper on first orders because future orders pay back the CAC. Without repeat data, stay on the same-order floor.
Frequently asked questions
New-customer CAC. Blended CAC averages in returning customers who cost you almost nothing to re-acquire, which understates the actual cost of the marginal Meta or Google order. If your reporting only gives you blended, divide ad spend by new customers acquired in the same period.
Yes, but only if you have the repeat data to underwrite it. Use contribution margin-adjusted LTV as the ceiling when you have 12+ months of cohort data showing reliable repeat behaviour. Until then, the same-order floor protects you from financing the ad account out of working capital.
Retargeting CPA is usually 3-5x lower than prospecting, so the floor is much closer to the organic floor. Calculate it separately — most ad platforms let you split prospecting and retargeting CAC in the reporting. Treating them as one number averages away the problem.
Margin shifts by market because COGS is usually in EUR/USD while pricing is local, and CAC also varies by market. Calculate the floor per market — a 30% promo that works in Germany may underwater the UK store if GBP CAC is higher relative to the local price.
Yes. Free shipping is a variable cost waiver, so it reduces contribution margin before the discount applies. A €60 order with €6 shipping cost and free-shipping offer effectively starts the discount math at €27 of margin, not €33.
Build a returns reserve into contribution margin (apparel is typically 15-25% return rate, beauty 3-8%). The discount is paid on every order but only kept on net orders, so under-reserving for returns is a common reason same-order math looks fine in spreadsheets and bleeds in reality.
Only if you're explicitly funding it from a customer-acquisition budget, not from gross margin. Tag those orders as acquisition spend and measure payback period separately. Don't let the same-order P&L hide the fact that you're investing, because then you can't tell investment from leakage.
Variable platform fees (Shopify Payments ~1.7%+€0.25, transaction fees) belong inside contribution margin. Fixed app subscriptions don't — they're fixed costs and don't change per order. Don't double-count them by also putting them in CAC.
Less, but still calculate it. At a €5 CAC on a €60 order, the floor only drops from 55% to 46.7% — manageable. The problem is brands rarely have a stable €5 CAC; it drifts up over a quarter, and the discount strategy set when CAC was €5 keeps running when CAC is €15.
Pipe order-level CAC from your ad platforms into your Shopify order tags (Metricuno does this from the GA4 import), then filter your discount reporting by paid vs organic source. Any paid-traffic order where discount % exceeds (margin − CAC) ÷ price is bleeding cash — that's the alert to set.
Track CAC, channels, and funnel conversion in one place
Metricuno connects ad spend, funnel events, and revenue so you can see CAC by channel, cohort, and campaign — without stitching together five tools.