neuroplugin
·7 min de lecture·par YCY

WooCommerce free-shipping threshold: how to pick the right number

A data-driven framework for setting your free-shipping qualifying threshold in WooCommerce. With the math, the cohort logic, and three concrete examples.

Cet article est publié en anglais. Une version française n'est pas encore disponible.

"Free shipping over €X" is the single highest-impact cart mechanic in WooCommerce. Done right, it lifts AOV by 10–25% and conversion by a smaller but compounding amount. Done wrong — threshold too high or too low — it does nothing or actually destroys margin.

Most stores set the threshold by gut feel (a round number near the average order value). That's almost never the optimum. Here's the framework I've used with PrestaShop and WooCommerce merchants for the last three years.

1. The math, in one sentence

The right threshold is the lowest one that, after the AOV-lift offsets the absorbed shipping cost, leaves you with more contribution margin than you had without the promotion.

That is: don't set the threshold by AOV alone. Set it by absorbed shipping cost vs incremental contribution margin. Two stores with the same AOV can have radically different optimal thresholds because their per-order shipping costs and product margins differ.

2. The three numbers you need first

Pull these from your WooCommerce reports + accounting:

  1. Current AOV (last 90 days, excluding outliers above 4σ).
  2. Average shipping cost per order — what you actually pay your carrier, not what you charge the customer. For most EU shops this is in the €4–8 range.
  3. Contribution margin per order — average order revenue minus COGS minus payment processing fees, but BEFORE shipping subsidy. Most healthy DTC shops are in the 35–55% range here.

3. The threshold formula

Pick a candidate threshold T. For each historical order below T but above (T × 0.75), assume some fraction would have added items to qualify. From cohort data across ~40 stores we've helped, a defensible "uplift fraction" is:

Distance below thresholdUplift fraction (% of those orders that top-up)
0–5%~55%
5–10%~32%
10–20%~14%
20–30%~5%
>30%~1%

Apply those to your last 90-day order log to estimate AOV lift at T. Multiply by contribution margin %. Subtract the cost of absorbing shipping for the orders that already qualified. If the net is positive, T is workable. Optimum T usually lands at 1.4× to 1.7× your current AOV.

4. Three concrete examples

Example A — small EU DTC, AOV €38, low shipping cost

AOV €38, average shipping €4.50, contribution margin 42%.

  • Candidate T = €55 (1.45× AOV)
  • Modelled AOV lift: ~€2.20 per order on average
  • Lift × margin = €0.92 per order in extra contribution
  • Absorbed shipping cost on already-qualifying orders: €4.50 × (proportion already qualifying after T)
  • Net: +€0.40 per order at T = €55. Defensible.

Example B — beauty store, AOV €72, high shipping cost

AOV €72, average shipping €8, contribution margin 55%.

  • Candidate T = €95 (1.32× AOV)
  • Modelled AOV lift: ~€3.10 per order
  • Lift × margin = €1.70 per order extra contribution
  • Absorbed shipping cost is high (€8) on already-qualifying orders
  • Net at T = €95: borderline negative. Push T to €110 (1.53× AOV) → net flips to +€0.65 per order.

Example C — vape, AOV €28, fragile margins

AOV €28, average shipping €5, contribution margin 22% (regulated pricing eats margin).

  • Free shipping subsidy at anythreshold < €60 destroys contribution. The math doesn't work for this category.
  • Recommendation: tiered shipping instead — €4.50 flat below €40, €2.50 above €40, free above €70. Same psychological effect, much better unit economics.

5. The UX is half the story

Threshold math gets you the right number. But the AOV lift only materialises if shoppers see the threshold during the decision moment — which is at "add to cart", not at the cart page.

The three places that matter:

  1. Mini-cart drawer (the side panel that appears after add-to-cart)
  2. Product page (visible while the shopper is still browsing)
  3. Cart page (visible while the shopper is still about to add more)

A progress-bar with "spend €X more for free shipping" outperforms a plain text statement by ~3–7% on AOV lift, based on the A/B tests we've seen from WC stores that have run them carefully.

For the implementation: WC Shipping Promise Booster renders this progress bar consistently across all four surfaces. It reads your existing WooCommerce shipping zones so the threshold isn't configured twice.

6. Iterate quarterly

AOV drifts. Carrier rates change. Product mix shifts seasonally. Re-run the math every quarter; the right threshold for Q3 isn't the right threshold for Q1 holiday rush.

The compound win from getting this right twice a year is larger than most marketing channel optimisations. It's also boring work, which is probably why most shops don't do it.

Bottom line

Pick the threshold by per-order contribution math, not by AOV alone. Render the progress bar on every cart surface. Re-evaluate quarterly.