Is free shipping costing my Shopify store money?
Free shipping costs you money when the parcel cost you now pay yourself eats the margin your ads need: a 6 parcel on a 40 order can move your break-even ROAS from 1.75x to 2.38x. Work out what a parcel really costs you, put it into your margin per order, and check whether your ads still clear the new break-even before you keep, change or drop the offer.
Free shipping is one of the first things a store owner switches on, because customers expect it and checkout abandonment often starts at the shipping line. What is easy to miss is that the cost does not disappear. It moves from the customer's basket to your own margin, order by order, and it changes how much every ad has to bring back. The steps below put a number on it.
Step 1: Find out what one parcel really costs you
The shipping rate in your settings is what the customer is charged. What you need here is what you pay.
- Start from the carrier's invoice, not the rate table. Take last month's shipping bill and divide it by the number of orders you sent. That is your real average per order, including the heavier parcels and the far-away addresses.
- Add what travels with the parcel. Box, filler, tape, labels — a small amount per order, but it is paid on every order.
- Count returns you pay for. If you offer free returns, the return label is a shipping cost too. Spread it over all orders, not only the returned ones.
- Write down one figure per order. Most stores land on a single average they can use for the rest of the steps.
Step 2: See how much of it the customer still pays
Free shipping is rarely free on every order. Most stores charge some orders and not others.
- Free on everything: you pay the full parcel cost on every order.
- Free above a threshold: you pay it on the orders above the line; below it the customer pays some or all of it.
- Flat rate below the cost: the customer pays part, you pay the difference.
- Read it in Shopify. In your sales report, compare the shipping you charged with the number of orders. Shipping charged per order next to shipping paid per order shows what the offer costs you on average.
Step 3: Put shipping into your margin per order
This is where free shipping either stays affordable or starts to cost money.
- Take a typical order. Say it is 40, the product costs you 16 and payment fees are 3% (1.20).
- Without shipping you keep 22.80 per order, which is 57% of the sale. Your break-even ROAS is 40 ÷ 22.80 = 1.75x.
- With a 6 parcel you pay yourself, you keep 16.80, which is 42%. Your break-even ROAS becomes 40 ÷ 16.80 = 2.38x.
- Use the price before VAT if your prices include it. VAT is not your money, and leaving it in makes the margin look bigger than it is.
The full working for break-even ROAS is in Your ROAS looks healthy. So why is there no money at the end of the month?.
Step 4: Check your ads against the new break-even
The same ads can be profitable before shipping and unprofitable after it.
- Compare your ROAS with the break-even that includes shipping. In the example above, a ROAS of 2x pays back 20 of ad cost per 40 order. Before shipping that leaves 2.80; after a 6 parcel it is 3.20 short.
- Use your store's figure, not only the platform's. Total Shopify sales divided by total ad spend is the number that has to clear your break-even. The difference is explained in Your blended ROAS looks fine. One of your channels is losing money.
- Look at the last full month, not one good week. A single strong week can hide a month that lost money.
Step 5: Test the threshold against the orders it creates
A free-shipping threshold works when it makes people add something they would not have bought, and the extra item pays for the parcel.
- Check what the extra item leaves you. If a customer adds a 15 item to reach the threshold and you keep 57% of it, that is 8.55, more than a 6 parcel. If the item they add is a low-margin one, it may not cover it.
- Look at the orders just above the line. If many orders sit just over the threshold, it is pulling basket size up. If most orders were already far above it, you are paying for shipping people would have accepted.
- Look at the orders just below it. Customers who stop short still pay shipping. Compare how many there are now with the month before the offer.
Step 6: Choose how to pay for it, then measure
If free shipping costs more than it brings, there are several ways to keep it and pay for it.
- Build it into the price. Raising the product price by part of the parcel cost spreads it over every order. It is the most honest version of "free".
- Raise or move the threshold. Set it just above your typical order, so it lifts the basket instead of rewarding the order that was coming anyway.
- Limit it. Free on certain products, certain countries or for returning customers, flat rate for the rest.
- Compare the same months. After a change, read conversion rate, order value and what each order leaves you against the same period before. Shipping costs and order patterns both move with the season.
KPIHelm puts the shipping you pay into its profit reading. In settings you enter what your products cost you as a share of the price, your payment fees and what sending one order costs you — 0 is an answer when you never pay for shipping. KPIHelm subtracts that from your Shopify sales together with your other costs, so the break-even it uses already includes shipping. If your ads bring back less than that break-even, the report says so, and if you have also entered your fixed monthly costs, it tells you when a period lost money once ads and those costs are paid. Margins saved before the shipping question existed are marked as not including shipping until you add it. Install it free on the Shopify App Store or see a sample report.