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.
- Divide shipping by margin: 10 / 0.30 = 33.33.
- Add the average order value: 33.33 + 50 = 83.33.
- 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 cost | Gross margin | Average order value | Threshold |
|---|---|---|---|
| $10 | 30% | $50 | $83 |
| $10 | 40% | $50 | $75 |
| $10 | 20% | $50 | $100 |
| $6 | 30% | $40 | $60 |
| $15 | 25% | $60 | $120 |
| $8 | 50% | $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.
- Record your baseline: average order value, orders per week, conversion rate and shipping cost per order.
- Set the new threshold and leave everything else alone, so you can attribute changes to it.
- 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.
- 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.
- Try one adjacent threshold, either slightly higher or lower, for a similar period and compare results.
- 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.
- Go to WooCommerce > Settings > Shipping and open the shipping zone you want to change, or add a new zone for the regions you serve.
- Choose Add shipping method and select Free shipping.
- Open the method to edit it and set the requirement to a minimum order amount.
- Enter your threshold in the minimum order amount field and save.
- 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.
- 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.
- Go to Settings > Shipping and delivery and open the profile and zone you want to edit, usually General shipping rates.
- Choose Add rate and name it something clear, such as Free shipping.
- Set the rate to free, then add a condition based on order price and enter your minimum.
- Save, and make sure your other paid rates still apply below the threshold.
- 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.
Más guías
- TrackIt For Business
- How to set up an ecommerce store, step by step
- How to start an online business, step by step
- Online store launch checklist: what to do before launching your shop
- What to do when setting up an online shop
- How to start an online store in South Africa
- How to set up shipping for an online store
- Order fulfilment for a small ecommerce business
- How to choose a courier for your online store
- Order tracking for small business online stores
- How to reduce 'where is my order' (WISMO) enquiries
- Setting up a WooCommerce store, step by step
- A checklist for setting up a Shopify store
- Essential tools for a new ecommerce store
- Post-purchase customer experience for online stores
- How to start a dropshipping business, step by step
- How to start selling online from home
- Customer service for a new online store
- How to grow a small online store from 10 to 100 orders a day
- You got your first online order: what to do next
- How much does it cost to start an online store?
- How to add a tracking number to a WooCommerce order
- WooCommerce order tracking page and shortcode: how it works and how to build one
- WooCommerce shipping zones, shipping classes and settings explained
- Shopify shipping rates: how to set them up
- Shopify order tracking without an app
- How to track dropshipping orders
- How to reduce shipping costs for a small business
- Ecommerce returns policy and how to handle returns
- How to ship with The Courier Guy, Pargo, PUDO and PAXI