Storefront Lab HQ
A/B testing playbooks for Shopify merchants

Testing Free Shipping Thresholds Without Guessing

A free shipping threshold is a price experiment in disguise. How to pick a test threshold, run it cleanly, and read the result.

A threshold is a price, treat it like one

Setting free shipping at a round number because competitors do is guessing with your margin. A threshold changes three things at once: conversion from shoppers who value free shipping, average order value from shoppers who add items to qualify, and shipping cost absorbed on every qualifying order. A real test measures all three, not just the first.

Start from your own data: current average order value, the distribution of basket sizes around it, and your true shipping cost by zone. A threshold set just above the current average basket, within easy reach of one more typical item, is the classic starting candidate because the add on behavior it triggers is realistic.

Designing a test you can read

Change only the threshold, and hold everything else still: same announcement placement, same wording style, same product prices. Run it long enough to cover full weekly cycles and enough orders that a handful of large baskets cannot swing the result. For most stores that means weeks, not days.

Track revenue per visitor and profit per order alongside conversion and average order value. A threshold that lifts orders while quietly losing money on absorbed shipping for baskets that would have converted anyway is a popular result and a bad outcome.

Reading the basket behavior

Look at the basket distribution after the test, not just its average. A working threshold creates a visible cluster of orders just above it, shoppers adding one item to qualify. No cluster means the threshold is invisible, unreachable, or not valued, and each of those diagnoses leads to a different fix.

Segment by new and returning shoppers if your volume allows. Returning customers know your shipping policy and game thresholds deliberately; new customers respond to the announcement in the moment. A threshold that works mainly by training regulars to consolidate orders may be worth more than its first month suggests.

Rolling out, or walking away

If the test wins on profit per visitor, roll it out and retest seasonally, because basket composition shifts around holidays and sale periods. If it loses, the result still paid for itself: you now know your shoppers do not stretch for free shipping at that level, which redirects effort to the levers they do respond to.

Document the threshold, the dates, and the numbers in an experiment log. The next person to propose changing it, possibly you in eight months, deserves the evidence instead of a fresh round of confident guessing.

Related reading

If this topic is useful, these earlier guides go deeper on connected questions: Testing your returns page like you test your checkout, A simple experiment log that keeps storefront tests from repeating themselves, and Where social proof actually helps on a product page: a testing guide.

Frequently asked questions

How long should a free shipping threshold test run?

Until it covers full weekly shopping cycles and gathers enough orders that averages stabilize, usually several weeks for a mid sized store. Ending on a single strong weekend is the classic way to fool yourself.

Where should the first test threshold be set?

Just above your current average order value, within reach of one typical add on item. Thresholds far above the average basket are ignored; thresholds below it give away shipping on orders you already had.

What metric decides whether the test won?

Profit per visitor is the deciding metric, with conversion and average order value as supporting evidence. A threshold can raise orders and still lose money through absorbed shipping costs.

Should the threshold differ by country?

Often yes, because shipping costs and basket norms differ by market. Test your home market first, then set international thresholds from their own basket data rather than converting the domestic number.