What free shipping threshold should you set? A simple formula for Shopify stores

✍️ Mindaugas Bružas3 min readShopifyFree Shipping ThresholdAverage Order ValueAOVShipping StrategyFree Shipping BarBarlyShopify Apps
What free shipping threshold should you set? A simple formula for Shopify stores

"Free shipping over €50" is the most common promotion in e-commerce and the most guessed number in it. Most stores pick a round figure that feels right. This post gives you a formula instead, with three worked examples, and shows how a progress bar turns the threshold into extra revenue instead of extra cost.

The formula

Start from two numbers you already have in Shopify Analytics:

  • AOV: your average order value over the last 90 days.
  • Shipping cost: what you actually pay per parcel, average.

Then:

Threshold ≈ AOV × 1.15 to 1.30, rounded to a number that looks natural.

Why that range: a threshold slightly above the typical basket means most shoppers are one small item away from it. Below AOV, you give free shipping to orders that would have happened anyway. Far above it, the bar just says "add €48 more" and nobody bothers.

Then check the margin: the extra items a shopper adds to reach the threshold must earn more than the shipping you now absorb.

Three worked examples

Coffee roaster. AOV €31, shipping cost €4.50, gross margin 55 %. Threshold €39 (AOV × 1.25). A shopper with a €31 bag adds a second small bag (€9) to cross it. Extra margin ≈ €5, absorbed shipping €4.50. Roughly break-even on that order, but the customer now has two bags and reorders later. Worth it.

Skincare. AOV €58, shipping €5, margin 70 %. Threshold €69. The typical add is a €12–15 travel size. Extra margin ≈ €9, absorbed shipping €5. Clearly positive.

Furniture accessories. AOV €140, shipping €18, margin 40 %. Threshold €175. Extra margin on a €35 add is €14, which is less than €18 shipping. Here free shipping only works if the threshold is €200+ or if shipping cost is partly built into prices. The formula tells you that before you find out from the P&L.

Where the threshold lives

The number does nothing if the shopper does not see it at the right moment. That moment is on the product page and in the cart, in the form of "Add €8 more for free shipping" with a progress bar. Stores that show the bar typically see a noticeable AOV lift within a month; stores that mention free shipping only in the footer see almost none.

Two things matter in the bar itself:

  • It must update live when the cart changes, including cart drawers.
  • It must not shift the page when it loads. A bar injected by JavaScript after render pushes the whole page down and counts against your Core Web Vitals.

Barly renders the bar on the server, so it is in the first HTML, and updates it from cart events. It supports a different threshold per Shopify Market (a €50 threshold in Germany, £45 in the UK) and 60 storefront languages. The free plan covers one bar with no watermark. Setup and cart-drawer notes are in the Barly documentation.

Testing the number

Run the threshold for four weeks, then compare with the four weeks before:

  1. AOV (should rise).
  2. Share of orders above the threshold (should rise, but not to 90 %; if almost everyone reaches it for free, the threshold is too low).
  3. Shipping cost as a share of revenue (should stay flat or fall).

If AOV rose and shipping share stayed flat, keep it. If shipping share rose faster than AOV, move the threshold up by 10 % and repeat.

Frequently asked questions

Should the threshold be the same in every country? No. Shipping cost and typical basket size differ per country. With Shopify Markets you can set a threshold per market and Barly shows the right one to each shopper.

Round number or precise? Round numbers look natural (€39, €49, €75). Shoppers do not question them. €41.50 looks calculated.

Free shipping always, or only above the threshold? "Always" removes the incentive to add items. A threshold both covers shipping cost and lifts the basket. Use "always free" only if it is already built into prices.


Barly is built by MB „Liūto media" in Lithuania. All our Shopify apps are listed at liutoapps.com.

MB
Mindaugas Bružas

Founder of MB „Liūto media“ — building six focused Shopify apps: estimated delivery dates, shipping bars, product badges, email deliverability, theme cleanup and reorder reminders.

Built by the team behind six Shopify apps. See what we make →