Shopify 9 min read

Shopify Profit Margin: What You Actually Keep

Branded QodeBites card reading Shopify shows gross margin, not your profit, beside a descending stack of bars narrowing to a small highlighted bar representing what is kept per order

Your Shopify profit margin is whatever survives after every cost that moves with an order has been taken out of it — and the report inside your admin is not measuring that. Shopify’s profit report is a product-level gross margin. It subtracts one cost, the price you paid for the goods, and it stops there.

That is the report doing its job, not a flaw in it. The problem is that most stores read it as the answer to “am I making money on this?” when it only answers “is this priced above what it cost me to buy?” Everything between those two questions — processing, apps, shipping, discounts, returns, the labour of getting a parcel out of the door — is where thin stores discover they are thin.

What Shopify’s profit report actually counts

Shopify’s profit reports are built from a single field on the product: Cost per item. Shopify defines that field as the price you paid the manufacturer, explicitly “excluding taxes, shipping, or other costs”, and it is blunt about the consequence — profit “is reported only for products and variants that had cost recorded at the time they were sold.”

Two things follow, and both catch people out. First, if the cost field was empty when an order went through, that order contributes revenue and no cost — so the reported margin is flattering rather than slightly off. Backfilling later does not repair history: Shopify notes the field holds static data, so figures are only relevant to the point in time they were captured. Second, even a perfectly maintained cost field produces gross margin only.

Diagram showing the boundary of Shopify's profit report, with net sales and cost per item inside the boundary producing gross profit, and payment processing, third-party gateway fees, app fees, shipping subsidy, returns and fulfilment labour sitting outside it
Everything inside the boundary is in Shopify’s profit report. Everything outside it still leaves your bank account.

Three margins, three different questions

“Margin” is doing too much work as a single word. There are three of them, they answer different questions, and quoting one when you meant another is the most common way a store talks itself into an unprofitable decision. Our glossary definition of profit margin covers the arithmetic; what matters operationally is which one belongs in which conversation.

Gross margin

Selling price less the cost of the goods. This is the Shopify report. It is the right number for buying and pricing decisions — should I stock this, what should it retail at — and the wrong number for anything involving an ad platform.

Contribution margin

Gross margin less every other cost that only exists because the order happened: processing fees, per-order app charges, the shipping you subsidise, the discount that won the sale, and the share of orders that come back. This is the number that decides whether taking one more order makes you money, and it is the one your acquisition spend has to be judged against.

Net margin

Contribution less the costs that would exist whether or not today’s order arrived — subscription, salaries, rent, retainers, software that bills monthly. This is the business’s actual profitability: an accounting figure rather than an operating one.

Margin What comes out The question it answers
Gross Cost of goods only Is this product priced above what I paid for it?
Contribution Cost of goods, plus every per-order cost Does one more order of this make me money?
Net All of the above, plus fixed costs Is the business profitable this month?

The cost lines that decide your real margin

The gap between the report and reality is made of a short, predictable list. None of it is exotic; it is simply spread across places that do not add themselves up.

Payment processing. Comes off every order, on every plan, and is the single largest deduction after the goods themselves for most stores. There is a second, easily missed line here: Shopify applies third-party transaction fees on all third-party and alternate payment gateways — and, in its own words, they apply “even when Shopify Payments is activated”. If you run an alternate gateway alongside Shopify Payments because a local method demands it, you are paying both sides. On Plus these fees may be waived when Shopify Payments is active, depending on your location, which is exactly the kind of detail worth confirming for your own market before you model anything.

Apps that bill per order or per action. A monthly app subscription is a fixed cost and belongs in net margin. An app that charges per order, per message, per review request or per shipping label is variable, and it belongs in contribution — which means adding another one quietly lowers the margin on every order you take. That is separate from what a heavy stack does to your storefront; we covered the performance half of it in the piece on what your app stack is doing to store speed.

The shipping delta. Not what shipping costs — what it costs after whatever the customer paid towards it. A free-shipping threshold set by copying a competitor rather than by your own margin turns this line into a subsidy that scales with volume. Our free shipping threshold calculator works the floor out from your own numbers.

Discounts. These come off the top before anything else and rarely appear as a cost anywhere, because the order simply arrives smaller. A store running near-permanent promotions is operating at a structurally different margin from the one on its price list.

Returns and refunds. A returned order gives back the goods, sometimes resaleable and sometimes not, but the outbound shipping and the pick and pack do not come back with it. Whether your processor returns its fee on a refund varies — check yours rather than assuming, because a high-return category lives or dies on that answer.

Fulfilment labour. Someone picks, packs and hands over the parcel. Whether that is a warehouse invoice or an hour of your own evening, it scales with orders and belongs in the stack.

Three-band diagram classifying store costs by how they behave, showing costs that move with every order such as goods, processing and packaging, costs that move with some orders such as discounts, shipping subsidy and returns, and fixed costs such as subscription, salaries and monthly app fees
Sorting costs by how they behave, not by which invoice they arrive on, is what separates contribution from net.

How to work out your Shopify profit margin

The method is four steps, and the first one is the one people skip.

Fix the cost field first. Populate Cost per item on every variant you actively sell. Until that is complete, no report — Shopify’s or anyone else’s — can produce a gross margin, and every downstream number inherits the gap. Treat it as part of creating a product, not as a tidy-up.

Start from net sales, not total sales. Take the figure after discounts and returns, not the headline at the top of the dashboard. Total sales is a demand number; margin work needs the money that actually stayed.

Build a per-order variable cost. Add up the lines above for a typical order in a typical month: processing, per-order app charges, packaging, the shipping you absorb, an allowance for returns at your real rate. One figure, honestly estimated, beats a precise figure that omits half the list.

Then do the arithmetic. Contribution margin is net sales less cost of goods less that per-order stack, expressed as a percentage of net sales. Our free Shopify profit calculator runs it against plan and processing assumptions so you can see the shape of it quickly, and the more general profit margin calculator is there if you want to work a single product rather than a store.

Why the same product shows two different margins

Once contribution is calculated per order rather than per product, the same item sold twice can produce two very different results. Order shape does it: a full-price order on your cheapest processing route, shipped at a rate the customer partly covered and kept — versus the same item discounted to clear, shipped free because it cleared a threshold set too low, paid through an alternate gateway carrying an extra fee, then returned.

Comparison of two orders for the same product, one at full price with shipping partly covered and kept by the customer, the other discounted with free shipping through an alternate gateway and returned, showing the contribution remaining after each
Same product, same price list, two order shapes. Product-level margin cannot see the difference.

This is why a product-level margin report can look healthy while the bank balance disagrees, and why averaging matters. If the discounted, free-shipped, higher-return shape is most of your volume, that shape is your margin, whatever the price list says.

What to do when the number comes back thin

A thin contribution margin has three honest responses, and cutting the advertising budget is usually the worst of them.

The first is to make each order carry more. That is the same work as raising average order value without losing margin — bundles and thresholds that trade on convenience rather than on price, because a discount-driven increase in order value moves the very line you are trying to protect.

The second is to fix the per-order stack itself: re-set the free-shipping threshold from your own contribution rather than a competitor’s, audit which apps bill per order and whether each still earns it, and check whether your payment routing is costing you a second fee on some share of orders.

The third is to feed the real number back into acquisition. Contribution margin is the input to break-even ROAS — the return you have to hit before an ad pays for itself. Stores that calculate that target from gross margin set it too low and spend for months believing campaigns are working.

Frequently asked questions

Does Shopify show my profit margin?

It shows gross margin, at product and order level, and only for items that had a cost recorded when they sold. Payment processing, app charges, shipping subsidy, returns and labour are not part of that calculation, so the figure is a starting point rather than an answer.

What is a good profit margin for a Shopify store?

There is no single figure worth quoting, and margins differ so widely by category — and by how much of fulfilment you carry yourself — that cross-industry benchmarks tend to mislead more than they help. The test that does travel: your contribution margin has to cover customer acquisition cost and still leave enough to pay the fixed costs. Compare the number to your own previous months, not to an average.

Why is my Shopify margin different from my accountant’s?

Usually because you are quoting contribution and they are quoting net, or because the cost field was incomplete for part of the period. Agree which of the three margins is being discussed before comparing figures.

The takeaway

Shopify’s profit report answers a narrower question than the one you are asking it. Populate the cost field so the gross number is real, then build the per-order stack that sits underneath it — processing and its second fee, per-order apps, the shipping you absorb, discounts, returns, labour — and you have a contribution margin you can price against, advertise against and defend.

If you would rather have someone go through it with you, the free Shopify store audit covers the checkout, payment routing and tracking setup that has to be right before any of these numbers can be trusted.

Share X in wa
Mohamed ElQadi
Mohamed ElQadi Tech Lead @ Qode Bites

I help business owners untangle the mess between their website and their revenue — performance, conversion, and the unglamorous fixes that move numbers. Egypt + US.

Follow QodeBites on LinkedIn →
• FREE PLAYBOOK

The E-Commerce
Growth Playbook

17 moves that turn a store into a revenue machine — the exact levers our team pulls for the brands we build and grow.

  • Convert more of the traffic you already pay for
  • Speed wins that lift revenue on every visit
  • Retention flows that make the second sale cheaper
  • Ad math so you scale in profit, not blind

Get the free PDF

Enter your details and we’ll send it straight to your screen.

No spam — the guide now, and the occasional useful email. Unsubscribe anytime.

More Insights

Discover more articles, expert perspectives, and practical insights on software development, product design, emerging technologies, and digital innovation.

Ready to light it up?

Start a Project

Your Trusted Growth Partner
For Startups And Enterprises

From first concept to final deployment, Qode Bites delivers everything needed to take your idea live — with seamless setup, performance-ready infrastructure, and expert support every step of the way. Book a free 30-minute strategy call.

What We'll Cover

  • Current store performance
  • UX and conversion bottlenecks
  • Growth opportunities
  • Recommended action plan
Book a Strategy Call

June

FriSatSunMonTueWedThu

Sat, June 2