Free shipping threshold: how to calculate it

A good free shipping threshold is your average shipping cost divided by your gross margin (as a decimal), plus your average order value. With $10 shipping, a 30% margin and a $50 average order, that comes to about $83. Below, you will find the reasoning behind the formula, how to get clean inputs, and how to set the result up in WooCommerce and Shopify.

The formula

Free shipping threshold = (average shipping cost / gross margin as a decimal) + average order value.

Gross margin as a decimal means 30% is written as 0.30, 45% as 0.45, and so on. The result is the cart value above which you offer free shipping. Customers whose baskets already sit near your average will need to add a little more to reach it, and that extra spend is what pays for the shipping.

A worked example, and why it works

Say your average shipping cost is $10, your gross margin is 30% and your average order value is $50.

Think about what a customer has to add to their basket for the extra profit to cover the shipping you are now absorbing. If your margin is 30%, every extra dollar of product earns you 30 cents. To earn back $10 of shipping you need $10 / 0.30, which is $33.33 of additional sales. Starting from the average order of $50 and asking customers to reach $83.33 means the growth in basket size funds the free delivery.

It also shows why margin matters so much. A thinner margin means each extra dollar earns less, so the extra spend you need goes up quickly. A store on a 20% margin needs a threshold well above one on 40%, even if the shipping cost and order value are identical.

  1. Divide shipping by margin: 10 / 0.30 = 33.33.
  2. Add the average order value: 33.33 + 50 = 83.33.
  3. Round to a number that reads cleanly, such as $85 or $80 depending on how aggressive you want to be.

How the number changes with your inputs

Average shipping costGross marginAverage order valueThreshold
$1030%$50$83
$1040%$50$75
$1020%$50$100
$630%$40$60
$1525%$60$120
$850%$35$51

Use the table to see how sensitive the result is. Each row applies the same formula with different inputs, and the figures are rounded to the nearest whole number.

Getting clean inputs

The formula is only as good as the three numbers you put in, so spend a little time on them.

  • Use a 12-month window. A shorter one can catch a sale period, a courier price change or a seasonal spike and skew every figure.
  • Use the median order value instead of the mean if a few very large orders pull the average up. The median shows what a typical customer actually spends.
  • Count the full shipping cost: the courier label, the box, the tape and filler, and any insurance or fuel surcharge. Leaving out packaging makes the threshold too low.
  • Use gross margin after the cost of the goods, not the markup. If you buy at 70 and sell at 100, the margin is 30%, not 43%.
  • Calculate shipping cost on the orders you would give free shipping to, rather than across your whole customer base, if your delivery destinations vary a lot.

Turning the number into a threshold customers see

The formula gives a starting point, not an instruction. Round it to something that looks natural on a banner, for instance $85 rather than $83.33. Check where it sits against your product prices: if most of your items cost $20 and the threshold is $85, a customer needs about four items, which may feel steep. If the gap between your average order and the threshold is small, many people will cross it without noticing, and you may be giving away shipping you did not need to.

Show the threshold early. A line in the header or cart that says how much more the customer needs to spend works better than a surprise at checkout. Many store platforms and plugins can display a progress message in the cart, so check whether yours does.

How to test it

Treat the first number as a hypothesis. Run it for four to six weeks, or for long enough to collect a meaningful number of orders, and compare with the period before.

  1. Record your baseline: average order value, orders per week, conversion rate and shipping cost per order.
  2. Set the new threshold and leave everything else alone, so you can attribute changes to it.
  3. Track the share of orders landing just above the threshold. A cluster there suggests customers are adding items to reach it, which is the effect you want.
  4. Watch your average order value and profit per order, and not only the order count. More orders at a lower margin can still lose money.
  5. Try one adjacent threshold, either slightly higher or lower, for a similar period and compare results.
  6. Keep the version that gives you the best profit per order after shipping.

Excluding bulky and heavy items

The formula uses an average, and a heavy sofa cushion set or a case of bottled goods can cost far more to ship than that average. Offering free shipping on those at your standard threshold can wipe out the profit on the order.

There are a few ways to handle it. You can exclude those products from the free shipping offer and charge a flat or weight-based rate for them. You can set a separate, higher threshold for a bulky category. Or you can calculate a distinct threshold for them using their own shipping cost and margin in the same formula. Whatever you choose, say so on the product page so the customer is not surprised at checkout.

Setting it up in WooCommerce

In WooCommerce the free shipping method is added to a shipping zone and can require a minimum order amount.

  1. Go to WooCommerce > Settings > Shipping and open the shipping zone you want to change, or add a new zone for the regions you serve.
  2. Choose Add shipping method and select Free shipping.
  3. Open the method to edit it and set the requirement to a minimum order amount.
  4. Enter your threshold in the minimum order amount field and save.
  5. If you use discount coupons, check the option about applying the minimum before or after the coupon, so a coupon cannot unintentionally push a cart below the threshold or leave free shipping on a cart that should not get it.
  6. For bulky products, assign a shipping class under WooCommerce > Settings > Shipping > Classes, then give that class its own rate in a flat rate method. You may need a plugin or a small piece of code to hide free shipping when a bulky item is in the cart.

Setting it up in Shopify

Shopify handles it through shipping rates in a shipping profile.

  1. Go to Settings > Shipping and delivery and open the profile and zone you want to edit, usually General shipping rates.
  2. Choose Add rate and name it something clear, such as Free shipping.
  3. Set the rate to free, then add a condition based on order price and enter your minimum.
  4. Save, and make sure your other paid rates still apply below the threshold.
  5. For bulky items, create a custom shipping profile under the same settings, add those products to it and give the profile its own rates, so the standard free shipping rate does not cover them.

What happens after you offer free shipping

Once shipping is free, customers expect the parcel to arrive without effort or chasing. Free delivery makes people more likely to ask where an order is, since they have no price on the line and nothing to remind them of the tracking number. Send tracking information at dispatch and make the status easy to find.

This is where TrackIt For Business can help. It tracks parcels from the couriers you already use, turns completed WooCommerce orders into tracked shipments automatically, and gives customers a branded Apple Wallet or Google Wallet pass that updates as the parcel is scanned. Shopify stores can add shipments by CSV import or the REST API. Measure your own volume of where-is-my-order messages before and after, because the share varies a lot from store to store.

Preguntas frecuentes

What is the formula for a free shipping threshold?

Divide your average shipping cost by your gross margin written as a decimal, then add your average order value. With $10 shipping, a 30% margin and a $50 average order, that gives roughly $83.

Should I use average or median order value?

Median is safer if a few very large orders raise the average, since it reflects what a typical customer spends. Use a 12-month window for either so seasonal peaks do not distort the result.

Should shipping cost include packaging?

Yes. Include the courier label, boxes, filler, tape and any surcharges or insurance you pay. Leaving packaging out understates your real cost and produces a threshold that is too low.

How do I stop bulky items from getting free shipping?

In WooCommerce, use a shipping class with its own rate and hide free shipping when that class is in the cart, which may need a plugin. In Shopify, create a custom shipping profile for those products with separate rates. State the exception on the product page.

Does TrackIt For Business help with free shipping?

It does not set shipping rates. It helps after the order ships, by tracking parcels across 3,000+ carriers, alerting you to delays and giving customers a self-serve tracking page and Wallet pass. It costs $14.99 a month, plus R1.50 per package the first time its passes are generated, and you can cancel any time.

Free Shipping Threshold: How to Calculate It | TrackIt