Why Contribution Margin Drops After a Free-Shipping Threshold

Free-shipping thresholds often lower contribution margin instead of raising it. Here's the mechanism, how to detect it in your data, and how to model breakeven before relaunching.
Quick answer
Contribution margin drops after a free-shipping threshold when the AOV uplift doesn't cover the absorbed shipping cost on qualifying orders — usually because customers hit the threshold with low-margin filler SKUs, split baskets, or trigger cross-border shipments you now pay for. The fix is a pre-launch breakeven model: how much incremental AOV do you need per qualifying order to hold CM% flat?
Contribution Margin Drop After Free-Shipping Threshold
A post-launch drop in CM% caused when absorbed shipping cost on qualifying orders exceeds the margin from incremental AOV.
A free-shipping threshold is meant to lift average order value enough that the extra contribution margin per order more than covers the shipping cost the store now absorbs. In practice, CM% often falls: customers add the cheapest possible SKU to cross the threshold, heavy or cross-border orders eat the entire uplift, and a share of previously sub-threshold orders is 'stuffed' rather than genuinely enlarged.
The diagnostic isn't whether AOV went up — it usually does — but whether contribution dollars per order went up by more than the shipping subsidy. That's a different question, and one most brands don't model before launch.
The trap is that AOV and CM% move in opposite directions here. AOV goes up because the threshold is set above the old average. CM% goes down because the incremental basket adds are lower-margin than the base order, and shipping cost was previously paid by the customer.
Why it happens: the mechanism behind the drop
Three mechanisms usually stack. First, threshold-stuffing: customers add a €12 accessory to a €58 order to hit a €70 free-shipping cutoff. That accessory often carries 20-30% margin against a category average of 55-65%, so the mix shifts down.
Second, basket-splitting: a returning customer who used to place one €90 order now places two €70 orders across a week to hit the threshold twice — doubling your fulfilment and shipping cost against roughly the same revenue. Third, geography: cross-border EU orders that cost you €14-18 to ship are suddenly subsidised at the same threshold as a €4 domestic order.
The counter-intuitive part
AOV going up is not evidence the threshold is working. A threshold set at €70 will always lift AOV toward €70 — that's a mechanical effect, not a business result. The question is whether contribution dollars per order rose by more than your average absorbed shipping cost on qualifying orders.
How to detect it in your data
Run a 6-week post-launch CM% audit segmented by qualifying vs non-qualifying orders. You want four numbers side by side: pre-launch CM% on all orders, post-launch CM% on non-qualifying orders (your control), post-launch CM% on qualifying orders, and blended post-launch CM%.
If qualifying-order CM% is materially below your non-qualifying baseline — typically 4-8 percentage points on apparel, 8-15 points on heavy or cross-border categories — the threshold is leaking. Then decompose: what share of qualifying orders sit within €5 of the threshold, and what's the margin profile of the marginal SKU added?
Typical CM% shift by category after launching a single free-shipping threshold
| Category | Pre-launch CM% | Post-launch CM% (qualifying orders) | Delta |
|---|---|---|---|
| Apparel (domestic, light) | 58% | 52% | -6 pts |
| Beauty & skincare | 62% | 57% | -5 pts |
| Supplements (bulk) | 55% | 43% | -12 pts |
| Pet food | 48% | 34% | -14 pts |
| Home & furniture | 42% | 26% | -16 pts |
| Consumer electronics | 28% | 22% | -6 pts |
How to fix it: model breakeven before you relaunch
The pre-launch worksheet has four inputs: current AOV, current CM per order in euros (not %), average shipping cost you'll absorb per qualifying order, and target threshold. Breakeven AOV lift = absorbed shipping cost ÷ incremental CM rate on marginal spend. If your marginal-spend margin is 35% and you'll absorb €6 shipping, you need €17 of incremental AOV per qualifying order just to break even.
Then anchor the threshold against your AOV distribution, not a round number. A threshold set 15-25% above median order value tends to convert genuine basket-builders while leaving low-intent stuffers below the line. For heavy or bulky SKUs, consider a category-excluded threshold or a two-tier structure — free standard shipping at €70, free express at €120 — to recover CM% on the largest baskets without subsidising every marginal order.
Rule of thumb
If more than 25% of qualifying orders sit within €5 of the threshold, and the modal added SKU is your lowest-margin product, you're funding a discount for customers who would have bought anyway. Raise the threshold, exclude filler SKUs from qualifying totals, or move to a tiered structure.
Experiment ideas to recover CM%
Test 1: raise the threshold by 15% and measure the CM% delta on qualifying orders vs the conversion-rate drop on the segment now falling below it. Test 2: exclude products under a defined margin floor from qualifying totals — a supplement brand doing this on single-serve accessories typically recovers 3-5 CM% points within four weeks.
Test 3: introduce a second tier — free shipping at €70, free shipping plus a gift-with-purchase at €110 — to pull the middle of your AOV distribution up rather than clumping orders at the floor. Test 4: for EU brands, split the threshold by shipping zone; one blanket €70 across a continent almost always leaks margin on the furthest-cost lanes.
Frequently asked questions
Divide the shipping cost you'll absorb per qualifying order by the contribution margin rate on the incremental spend customers add to hit the threshold. If absorbed shipping is €6 and marginal-spend CM is 35%, you need €17 of incremental AOV per qualifying order to break even — anything less lowers blended CM%.
No. A threshold mechanically pulls AOV toward the threshold value; that lift can appear even when contribution margin per order falls. The correct test is whether contribution dollars per qualifying order rose by more than your absorbed shipping cost, not whether AOV rose.
Basket-splitting is when a customer who used to place one larger order places two smaller orders to hit the free-shipping threshold twice. Detect it by comparing pre- and post-launch order frequency per customer against average items per order — if frequency rises while items-per-order falls, you're paying to ship the same revenue twice.
Typically 15-25% above median order value. Setting it much higher suppresses qualifying-order volume; setting it at or below AOV means most orders qualify with no genuine basket-building, so you subsidise shipping on orders that would have happened anyway.
Single thresholds work when your AOV distribution is tight and shipping cost is homogeneous. Tiered structures — free standard at one level, free express or a gift at a higher level — recover CM% when your top decile of orders is large enough to fund richer perks without diluting margin on marginal baskets.
Absorbed shipping cost scales with weight and dimensions, but the threshold is a flat euro value. Furniture, pet food, and bulk supplements often cost €14-25 to ship — a €70 threshold with a 45% marginal-spend margin needs €30-55 of incremental AOV per order just to break even, which rarely materialises.
Segment your qualifying-order CM% by shipping zone. If cross-border orders show a CM% delta 8+ points worse than domestic, split the threshold by zone or exclude high-cost lanes from the free-shipping promise. One EU-wide threshold almost always subsidises the furthest lanes at the expense of your blended margin.
Yes — most Shopify and WooCommerce setups support this via product tags or collection-based rules. Excluding your lowest-margin SKUs from qualifying totals is one of the fastest CM% recovery tactics, since it neutralises threshold-stuffing without changing the customer-facing threshold value.
Six weeks minimum, with a 6-week pre-launch baseline. Anything shorter conflates novelty effects and seasonal noise with the structural CM% shift. The audit should segment qualifying vs non-qualifying orders separately — a blended CM% number hides the leak.
Use a contribution margin worksheet with four inputs: current AOV, current CM per order in euros, average absorbed shipping cost per qualifying order, and target threshold. Stress-test three threshold values against your actual AOV distribution to see which one delivers the required incremental AOV lift at a realistic conversion rate.
Get an AI expert review of your site
Paste your URL — Metricuno's AI runs the same heuristic checks a senior CRO consultant would, scoring your page and prioritising the fixes that'll move conversion fastest.