Home›AOV›How to Set a Free Shipping Threshold: A 4-Step Method
AOV

How to Set a Free Shipping Threshold: A 4-Step Method

There is no best free shipping threshold for every store. Here is how to choose yours from your own order values and margin, with Excel formulas, a cost check and a test.

Nitish KumarBy Nov 4, 2026  •  8 min read
inXf
Digital Drift cover: free shipping threshold, a cart progress bar with a flag at the free shipping line
Quick TakeThere is no best free shipping threshold. See where your orders sit, count how many already qualify, check the shipping you give away against the extra orders you need, then test one number for several weeks.

A free shipping threshold is the order value above which you stop charging for delivery. Pick it too low and you give away shipping on orders that would have paid for it. Pick it too high and shoppers ignore it. There is no best number for every store, and I found no trustworthy published figure that says otherwise. What you can do is choose the number from your own order values and your own margin, then test it. This post shows how, with formulas you can run in Excel.

It does not explain how to show the "add ₹X more" message in the cart, because Checkout Conversion Rate Optimization: 7 Fixes for Shopify Stores already covers it. It also does not repeat the add-on and bundle ideas in Increase AOV With Product Bundles.

What do you need to decide the number?

Three things, in this order.

  1. Your order values. Where do your orders sit today?
  2. Your margin after shipping. What does free shipping cost you, and what does it earn you?
  3. One test. Run one threshold for a few weeks and compare it with what you had before.

Two terms I use below. S is the shipping fee you charge shoppers who are below the threshold, for example ₹60. m is the margin rate on an extra item a shopper adds, after product cost and fees, for example 40%.

Step 1: See where your orders sit

Export your orders from Shopify for the last 3 to 6 months. Shopify's order export includes a Subtotal column. Check in your own file whether Subtotal is before or after discounts, and use the same measure your shipping rule uses, because Shopify's help page describes order-amount rates as based on "the total value of the order" without saying which. Keep one row per order, as items on separate rows would count an order twice.

With the subtotals in column B, from row 2 to row 21, these formulas give you the centre of your orders:

Median: =MEDIAN(B2:B21)

Average (AOV): =AVERAGE(B2:B21)

Example, not real data: 20 orders with subtotals of ₹349, 399, 449, 499, 549, 599, 649, 699, 749, 799, 849, 899, 949, 999, 1,099, 1,199, 1,299, 1,499, 1,799 and 2,199. I tested the formulas on this list. The median is ₹824 and the average is ₹926.50. The average sits above the median because a few large orders pull it up, so the median is the better picture of a typical order.

Step 2: See how many orders already clear each candidate

Pick a few candidate thresholds. For each one, count the share of orders that are already at or above it, and the share that sit within ₹200 below it. With a candidate in cell D5:

Already above: =COUNTIF($B$2:$B$21,">="&D5)/COUNT($B$2:$B$21)

Just below (within ₹200): =COUNTIFS($B$2:$B$21,">="&(D5-200),$B$2:$B$21,"<"&D5)/COUNT($B$2:$B$21)

Candidate threshold Orders already above Orders within ₹200 below
₹799 55% 20%
₹999 35% 20%
₹1,199 25% 10%
₹1,499 15% 5%

This is the example list, not real data, and the formulas return these shares. The first column is what free shipping will cost you straight away. The second is the group a threshold might pull upwards. If you already have a threshold, count only the orders between the old number and the new one in the first column.

Step 3: Check the margin

You are weighing a cost you can see against benefits you have to estimate.

The cost: orders that already qualify

Every order above the threshold now ships free, so you lose S on each one. Per 100 orders, that is the share already above, times 100, times S. To know whether that is affordable, divide it by what one extra order earns you. Use M, the profit on a delivered order after product cost, shipping and fees and before ad spend, which I explain in What Is a Good RTO Rate?.

Example, not real data: S = ₹60 and M = ₹400.

Threshold Shipping given up per 100 orders Extra orders per 100 needed to cover it
₹799 ₹3,300 8.25
₹999 ₹2,100 5.25
₹1,199 ₹1,500 3.75
₹1,499 ₹900 2.25

The last column is how many additional orders free shipping would have to bring in, per 100 orders you get today, just to pay for the shipping you give away. A low threshold costs the most because most of your orders already clear it. I did not find a sourced figure for how many extra orders free shipping brings, so this column is the bar to beat, not a forecast.

The benefit: shoppers who add items to qualify

A shopper who is short by a gap g adds items to reach the threshold. You gain the margin on the added items (g × m) and give up the shipping fee S. It only pays when:

g × m is larger than S, which means g is larger than S ÷ m

Example, not real data: S = ₹60 and m = 40%. The gap has to be larger than 60 ÷ 0.4 = ₹150. A shopper who is ₹50 short and adds ₹50 of product earns you ₹20 and costs you ₹60 of shipping, so you lose ₹40. A shopper who is ₹250 short and adds ₹250 earns you ₹100 and costs you ₹60, so you gain ₹40. This is why a threshold set just above the typical order helps less than it looks: many shoppers sit too close to it to be worth the nudge.

The other benefit: orders that would not have happened

Some shoppers leave when shipping is added at checkout. Free shipping can bring them back. I found no sourced figure for how many, so treat this as the number your test has to find. If it is below the bar in the table, the threshold loses money.

Step 4: Test one number

Shopify's help page on flat shipping rates describes two ways to do this. You can add a shipping option with the "Order amount" rate type and set a price for each order-value tier, leaving the maximum empty on the top tier. Or you can turn on "Offer free shipping" on an existing option and enter the minimum order amount. Pick the one that fits your setup, and confirm at checkout that it behaves as you expect before you announce it.

Then run one threshold for a few weeks and compare these four numbers with the same length of time before:

  • Orders per week. Did the number of orders rise by at least the bar in Step 3?
  • Share of orders above the threshold. A rise means shoppers are adding items.
  • AOV and median order value. Both should move, not just one.
  • Shipping income. It will fall, and you should know by how much.

Change nothing else at the same time. A sale or a new ad campaign would hide the effect of the threshold.

What if you already have a threshold, or charge shipping on COD?

You already have a threshold. Run the same steps, but treat the new number as a change. In Step 2, count only the orders that sit between the old threshold and the new one, because those are the orders whose shipping fee you will lose or gain. Moving the number up earns shipping on orders that used to ship free. Moving it down gives shipping away on the orders in between.

You charge shipping on COD orders. Shipping you charge a COD buyer is collected with the cash, so you only receive it when the parcel is delivered. If the order comes back as an RTO, you collect nothing and still pay shipping both ways. Free shipping on COD orders therefore costs you less than the table suggests, because some of those orders would not have paid S anyway. Use your own RTO rate, as described in RTO in E-commerce: COD vs Prepaid, to adjust the cost column.

Mistakes to avoid

  • Copying a competitor's number. Their order values and margins are not yours.
  • Setting it without checking the cost. The table in Step 3 takes a few minutes to build.
  • Setting it so low that most orders qualify. You would give away shipping you used to earn and nudge almost no one.
  • Setting it so high that nobody reaches it. If very few orders sit within ₹200 below it, the message will be ignored.
  • Changing it every week. You cannot tell what worked.

How to set a free shipping threshold: frequently asked questions

What is a good free shipping threshold?

I found no sourced answer. The right number depends on your order values and margin. Use Steps 1 to 3 to pick a candidate and Step 4 to test it.

Should the threshold be above my average order value?

The AOV bundles post suggests setting it just above your current AOV. That is a reasonable candidate, but check it against Step 3, because the median can sit well below the average.

Does free shipping increase conversion?

I found no source I can quote. It may bring back shoppers who leave when shipping is added, so measure orders per week before and after.

How long should I test?

Long enough to cover several full weeks of orders. I found no sourced rule, so pick a period and keep it the same for the before and after comparison.

Your action checklist

  • Export your last 3 to 6 months of orders, one row per order.
  • Work out the median and average order value.
  • Choose three or four candidate thresholds.
  • Count the orders already above and just below each one.
  • Build the cost table with your own S and M.
  • Work out the minimum gap, S ÷ m.
  • Set one threshold in Shopify, test it for several weeks, and compare the four numbers.

Your next step: Export your orders today and work out the share of them above ₹799, ₹999 and ₹1,199, or the three candidates nearest your median.

Sources: Shopify Help Center, setting up flat shipping rates; Shopify Help Center, exporting orders.

Comments

No comments yet. Be the first to share your thoughts!

Leave a comment

Rate this article

Comments are reviewed before they appear.