Shopify's profit report says your best seller makes a healthy margin. Then the month closes, the money in the bank is a lot less than that margin suggests, and nobody can say which products or orders ate the difference. The answer is usually not one big leak but five small ones, each kept in a different corner of Shopify.

Shopify's gross profit is net sales (after discounts and sales reversals) minus the cost per item you entered on each product. It leaves out payment fees, shipping labels, packaging, return postage, app subscriptions and advertising. To see your real margin, pull the fees from your payouts and the labels from your bills, then add them to each order.

What is the gap costing you?

Work it out for one month with your own numbers.

LineWhere it livesExample (dollars)
Net salesAnalytics, Gross profit by product100,000
Product costCost per item on each variant38,000
Shopify's gross profit62,000 (62%)
Payment processing feesFinance > Payouts export3,000
Shipping labels, after adjustmentsSettings > Billing9,000
Packaging and pick-and-packSupplier or 3PL invoices5,000
Return postage and unsellable returnsBills and your returns log2,000
Margin after order costs43,000 (43%)

Advertising and app subscriptions come off after this, and they decide whether a product is worth selling at all.

Why doesn't Shopify show the real margin?

Because each cost lands in a different place, and the profit reports only read one of them.

  • Profit reports only see the cost per item. Shopify defines gross profit as net sales minus cost of goods sold, and net sales as gross sales minus discounts and sales reversals. The fields it lists for the calculation don't include fees or label costs.
  • Cost per item is a snapshot. Shopify's help says the field "contains static data": the report uses the cost recorded when the item sold. If your supplier raised prices and nobody updated the field, last month's margin is overstated.
  • Variants without a cost drop out. Shopify reports profit only for products and variants that had a cost recorded at the time of sale, and says orders with missing cost data may be left out of the report.
  • Shopify's cost per item excludes freight and duty. For goods you resell, Shopify's product details page gives the example of entering what you paid the manufacturer, excluding taxes, shipping or other costs. If you pay to bring stock in, that cost has to be added somewhere. Ask your accountant how they want it handled.
  • Fees live in payouts. With Shopify Payments, every charge and refund shows its fee in the payout records, not in Analytics.
  • Labels live in your bill, and they change. Shipping label charges sit in your Shopify bill. Shopify says a carrier's price correction shows as a charge or credit on your next bill, and taxes aren't included in the label price at purchase.
  • Refunds cost more than the refund. The refund lowers net sales, but the postage both ways and any item you can't resell don't appear next to it.

How do you work out your real margin yourself?

  1. Fill in cost per item on every variant. Open each product and enter Cost per item on its product details page; Shopify says you can also add costs to many products at once with the bulk editor or a CSV import. Then make updating it part of receiving a new supplier price.
  2. Run the Gross profit by product report for last month: Analytics > Reports, filtered to the Profit Margin category. If its net sales are well below your sales report, some variants are missing costs.
  3. Export your payment fees. Go to Finance, select View payouts, then View transactions and Export, choosing items by date. Shopify emails a CSV that includes Type, Order, Amount, Fee and Net for each transaction. Add up the fees by order number. If you use a payment provider other than Shopify Payments, pull its fee report instead.
  4. Export your label costs. Go to Settings > Billing, open each bill for the month, and click the number of shipping fees in the Shipping section to see the charges by order. Check the next month's bill for adjustments to these orders.
  5. Add the costs that live outside Shopify: packaging, pick-and-pack fees on 3PL invoices, and return labels.
  6. Put everything in one sheet keyed by order number. Each row is one order: net sales, product cost, fee, label, packaging, returns. Margin per order is what's left. Group by product, by channel or by discount code to see where it's thin.
  7. Tie the total to your books. The month's total should be close to what your bookkeeper's profit and loss statement shows for the same lines. Big differences usually mean a missing cost or a timing issue.

When does doing it yourself stop working?

  • You need this every week, not once a quarter.
  • Orders also come from Amazon, wholesale or retail, and the costs differ by channel.
  • Your 3PL bills by order, by unit and by storage, and matching invoice lines to orders takes longer than the rest combined.
  • Costs change often enough that a static cost per item is never right for long.

What are your options?

OptionWhat you getWhat to watch
Do it yourselfThe monthly sheet aboveA few hours a month, more when orders grow
Buy a toolA profit-tracking app that reads Shopify and your ad accountsWhich costs it can't see, such as 3PL invoices, and how it treats refunds
Hire a freelancerAn ecommerce bookkeeper who reports margin each monthWhether you get margin per order and per product, or only a monthly P&L
An outside team that learns how you work and builds on your dataYour costs mapped from every source first, then a margin report built on your orders that updates itselfOwnership of what's built, and a written note on how each cost is assigned

The Reports & answers page covers the last row. If you'd rather show us last month's numbers than describe them, a walk-through is 30 minutes on screen.

What can you hand off, and what should stay with your team?

Hand offKeep
Pulling payouts, bills and invoices each monthSetting prices and discounts
Matching every cost to its orderDeciding which products to cut or push
Keeping cost per item current from supplier price listsAgreeing with your accountant how freight and duty are treated
Flagging products whose margin fellChoosing what to spend on ads

Questions to ask anyone you hire, us included

  • Which costs will the report include, and which will it leave out?
  • How will refunds, return postage and unsellable returns be handled?
  • Will the total tie to my bookkeeper's profit and loss each month?
  • What happens when a supplier changes a price?
  • Who owns the report and the data connections when you're done?

FAQ

Does Shopify show profit after fees? Its profit reports show gross profit, which is net sales minus the cost per item you recorded. Payment fees are in your payout records and shipping labels are on your bill, so you add them yourself.

Why are some orders missing from the gross profit by product report? Often because those variants had no cost per item when they sold. Shopify reports profit only for items that had a cost recorded at the time.

Should I put shipping and duty into cost per item? Shopify's definition excludes them. Some brands add them to get a landed cost; others book them separately. That's a choice to make with your accountant, so your reports and your books agree.

Does a refund show up as a cost? The refund lowers net sales. The postage both ways and any stock you can't resell don't show up next to it, so track them separately.

How often should I check margin per order? Monthly is the minimum. Weekly is worth it when you're running promotions or a carrier changes its rates.