Shopify profit reports: why they're only as good as your cost per item

Costs and margins · 6 min read · Updated · By the Box to Shelf team

Short version: Shopify's profit reports use the Cost per item recorded when each order was placed. Products with no cost are left out, and stale costs make margins look better (or worse) than they are. You can't fix past orders by editing costs, so the fix is keeping costs current from now on, ideally every time a supplier invoice arrives.

Profit reports are one of the most useful things in Shopify analytics, and one of the most misread. They're only as accurate as the cost data behind them, and in most stores that data is patchy. Here's how the reports use cost per item and how to make them trustworthy.

Where to find profit reports

In your Shopify admin, go to Analytics › Reports and filter by the Profit margin category. The reports there break gross profit down, for example by product and variant, showing net sales, cost of goods sold (COGS) and gross profit. Which reports you see can depend on your plan.

How cost per item feeds the reports

Three rules from Shopify's help center explain almost every confusing number:

  1. Cost is recorded at the time of sale. When an order is created, Shopify stores each variant's cost per item at that moment. Profit reports use that stored cost.
  2. No cost, no profit. Products and variants that had no cost recorded when they were sold are left out of profit reports. That's why net sales in a profit report can be lower than in your sales reports.
  3. Changes aren't retroactive. Editing a cost today doesn't change orders that were already placed.

The three ways cost data goes wrong

1. Missing costs

Products created in a hurry, imported from a supplier feed or added years ago often have no cost. Their sales vanish from profit reports, which can make your overall margin look better than it is (if the missing products are low-margin) or worse.

Find them: export your products (Products › Export) and filter the Cost per item column for blanks. Or use the bulk editor with the cost column visible.

2. Stale costs

The cost was right when entered, but the supplier has raised prices since. Every sale since then is recorded with too low a cost, overstating profit.

Find them: compare recent supplier invoices with current costs. See spotting supplier price increases.

3. Wrong costs

Case prices entered as unit costs, VAT included when it shouldn't be, or a foreign-currency price entered unconverted. These produce margins that are wildly off, often negative.

Find them: sort a product export by margin. Anything negative, or above 90% for physical goods, deserves a look. See pack pricing and currency and VAT.

Fixing it going forward

  1. Fill in missing costs for everything you still sell, using the bulk editor or a product CSV (how to). Use the most recent invoice price.
  2. Decide what cost means for your business: latest supplier price, or landed cost including freight and duty. Write it down so everyone enters costs the same way.
  3. Update costs at receiving. The invoice is in your hands when the delivery arrives. Make updating cost part of receiving, not a quarterly clean-up.
  4. Check monthly. Run the profit by product report and look for outliers.

What about past orders?

Because cost is recorded at the time of sale, historical reports keep whatever cost was set then, including blanks. If you need corrected historical COGS for accounting, calculate it outside Shopify from your supplier invoices, or ask your accountant. Your bookkeeping system, not Shopify's analytics, is usually the source of truth for COGS in your accounts.

A quick health check

CheckHealthy
Active variants with a cost per itemAll of them
Net sales: profit report vs sales reportClose to equal
Products with negative marginNone, unless on purpose
Costs updated after last supplier invoiceYes, for every changed line

Where Box to Shelf helps

Box to Shelf makes cost updates part of receiving. When you process a supplier invoice, each matched line shows your current cost per item and the new cost from the invoice, converted to unit cost, with the margin change. Applying the document updates stock and cost together, so cost per item stays current with every delivery and your profit reports are recorded with the right cost from then on.

Questions

Why are some orders missing from my Shopify profit report?

Products and variants without a cost per item at the time of sale are left out of profit reports.

Can I fix the cost on past orders?

Changing cost per item doesn't change orders already placed. Keep costs current so future orders are recorded correctly.

Sources

Shopify changes its admin often. Steps were checked against the Shopify Help Center in November 2026; if a menu has moved, the help center links above have the current version.