Free shipping looks like a clean win. Customers expect it, conversion lifts, orders keep coming. Most merchants set it once and never look at it again.
What's less obvious is that it's quietly eating the margin on roughly every fourth order. The damage usually only surfaces at the year-end accounts review, when the gap between what the revenue dashboard says and what's actually in the bank has become impossible to ignore.
This is one of the most common silent leaks in Shopify stores. The merchant looks at the revenue line in their Shopify dashboard, sees it ticking up week after week, and assumes everything is working. The shipping cost is buried somewhere in the operations spreadsheet — if it's tracked at all — and the free shipping offer becomes a permanent fixture nobody runs the maths on again.
If you've never stress-tested your free shipping offer with real numbers, this is worth fifteen minutes of your morning.
Disclosure: ProfitShield is built by JMS Dev Lab, the publisher of this blog.
Shopify reports revenue. Your bank account reports cash. The two numbers tell different stories, and free shipping is one of the biggest reasons why.
Here's the thing about shipping cost: it's variable, but most merchants treat it like a fixed line item. They estimate “€6 a parcel” once, plug that into their margin model, and never revisit it. Then:
Six months later you're still using the €6 estimate to set your free shipping threshold, while the actual cost per parcel is closer to €8.50. None of that shows up on the Shopify dashboard. It only surfaces at the end of the quarter when somebody compares the bank statement to the revenue figure and finds a hole.
Let's do this with a real example. Say you sell on Shopify, average order value is €60, and you offer free shipping on everything.
Revenue: €60.00
COGS: €25.00
Packaging materials: €2.00
Shopify + payment fees: €2.50
Carrier cost (free ship): €7.00
——————————————————————
Gross profit per order: €23.50
Gross margin: 39.2%
That's before any marketing spend, before any returns, before the time your team spends packing the order. Your true margin is somewhere south of 30% by the time the order is fully accounted for.
Now stack a 15% welcome discount on top — pretty standard for new customer acquisition:
Revenue: €51.00 (after 15% off)
COGS: €25.00
Packaging materials: €2.00
Shopify + payment fees: €2.20
Carrier cost (free ship): €7.00
——————————————————————
Gross profit per order: €14.80
Gross margin: 29.0%
Sub-30% before any ad spend. If your customer acquisition cost is €8 — modest for a paid channel — you're at €6.80 contribution margin per order. At 200 orders a month that's €1,360 left to cover rent, software, your time, and any tax. Anything you've budgeted for marketing on top of that is coming out of cash flow you assumed was margin.
This is the bit that hurts most when merchants work it through.
A €3 miscalculation per order — easy to do, given how many of these line items wobble — turns into €600 a month at 200 orders. €7,200 a year. That's roughly the difference between paying yourself a wage and not paying yourself one.
If you're at 500 orders a month, the same €3 gap is €1,500 a month. €18,000 a year.
Most stores discover this in one of two ways:
Neither is fun. Both are preventable.
That's the bit a lot of “Shopify margin” articles skip. Free shipping is a real conversion lever — that's why every retailer offers it. The question isn't whether to offer it. The question is at what threshold, on what products, and with what protection against discount-stacking that takes you below your margin floor.
Three tactical fixes you can ship this week without buying anything:
Don't pick a round number. Pick the order value at which your fully-loaded margin — after shipping, fees, and packaging — is at least 35%. For most Shopify stores selling physical product, that's not €50. It's closer to €65–75. Run the calculation product by product, use your blended average basket, and let that number set your threshold.
If a customer is already using a 15% discount code, they shouldn't also trigger free shipping below threshold. Shopify lets you configure this natively in your discount rules — it's a settings change, not a code change. Stacked discounts are where the worst below-floor orders come from. This single config change eliminates most of them.
Pull your actual courier invoices, divide total spend by parcel count, and see what number you get. If it's drifted more than 10% from your model, your threshold is now wrong. Carrier rates move more than most merchants realise — especially in Q4. A quarterly cost review takes thirty minutes and keeps your margin model honest.
That gets you most of the way there. Where it falls down is on the orders that slip through anyway — the edge cases where someone hits the threshold by €2, stacks a discount code you forgot to exclude, and ends up below your floor. Those orders are individually small. They accumulate.
Most margin tools in the Shopify ecosystem report margin after the order has shipped. By then the loss is taken — the order is fulfilled, the courier is paid, and you're staring at a number on a dashboard that tells you what you already can't undo.
ProfitShield is the only Shopify app that runs the margin calculation before the order ships, using Shopify Functions at the checkout layer. You set your minimum margin floor — say 30% — and any order that would land below it gets flagged for review or blocked before the customer completes checkout. The merchant sees the order, reviews the maths, and decides what to do.
That's a structural difference from BeProfit, TrueProfit, and every other reporting tool — and it's why we built it. Reporting tells you what happened. ProfitShield stops the bad ones from happening.
The other piece is discount stacking, which is where most below-floor orders come from. ProfitShield treats the full order — including stacked discounts and shipping waivers — as one calculation, so you catch the compound effect that single-tool reporting misses. More on that pattern in Losing Money on Every Discount.
Whether or not you use ProfitShield, do this one thing before your next promotion:
If it's fewer than 5%, your threshold is set well. If it's 15% or more, you've got a hole. Patch it before peak season.
If you want the calculation running automatically on every order — every margin validated in real time, every below-floor order flagged before it ships — that's what ProfitShield does. 14-day free trial at profitshield.app, no card required to start.
Either way: do the maths. The margin is real. The Shopify dashboard isn't telling you about it.
Related reading: How to Forecast Cashflow for Your Shopify Store (Without an Accountant) · Shopify Cashflow App Comparison: SmartCash vs Spreadsheets · Cashflow vs Profit: Why Shopify Merchants Get Confused · The Hidden Costs Eating Your Shopify Profit Margins · ProfitShield.