The Margin report answers the question the Sales report can't: what did you actually make? It sets net revenue against cost of goods for everything you sold in a window and ranks by gross profit - so the top of the list is your most profitable products, and anything selling at a loss gets flagged instead of hiding at the bottom.
Run it
Go to Reports, pick Margin, and set a date range. Then choose the Cost basis:
Receipt costs (the default) - cost of goods comes from what your stock actually cost to land: each receipt's unit cost plus its share of freight and other charges, consumed under the Method your books use (FIFO or Weighted average). It is the same costing engine as The COGS report, so the two reconcile.
Current cost - an estimate at each item's current cost in Shopify. The day-one answer, before your receiving history builds up.
If receipt costing can't cover the window - costing hasn't started yet, or the dates predate it - the report falls back to current cost and says so under the table, rather than opening empty. Grouping By vendor works on both bases; By location is available under Current cost only, because receipt costing tracks each item across all locations and a per-location number would be invented.
The trend chart
The chart plots the window day by day (weekly once the range passes six weeks) with a toggle for Profit, Margin %, or Revenue, and the hero number shows the change vs the prior period - the same window shifted back by its own length. Where margin isn't known yet, the line breaks rather than guessing: the most recent days post after the nightly costing settles, so revenue shows immediately and margin follows.
Reading the table
Units / Net revenue - sold minus refunded; revenue is net of discounts, before tax and shipping.
COGS / Profit / Margin % - the cost of the units sold under your chosen basis, and what's left of revenue after it.
Vs prior - margin movement in points against the prior period. A product can grow revenue while its margin slips - this column is where that shows.
% of profit - each row's share of total gross profit. A handful of products usually carry most of it; this is where you see which.
GMROI (receipt costs only) - gross profit returned per dollar of average inventory. 2x means every $1 tied up in that product's stock returned $2 of profit over the window.
Sell-through (receipt costs only) - net units sold as a share of what was available to sell: opening stock plus units received during the window.
Bands and the flag list
Under the table, badges count sales into margin bands - Negative, 0-15%, 15-30%, and 30%+ - with the revenue riding in each. The bands cover everything sold in the window, not just the rows shown above them.
Set Flag at or below % and a second table lists everything at or below that margin, worst first, with the average selling price beside the average cost - the fastest way to spot a mispriced product or a cost that crept past its price. Leave it empty to see only what sold at or below cost.
When margin doesn't show
The report never quietly guesses. A row holding units without a usable cost shows no margin rather than an understated one, and the footnotes under the total count everything excluded: units that sold past all cost layers (they used the nearest known cost), items with foreign-currency costs (excluded until currency conversion ships), and how many rows show no margin as a result.
Drill into a product
On any product page, the Cost & price card is the drill-down: a 12-month chart of the Avg selling price (or Est. margin %) per variant, over a ledger of every cost change - Shopify edits and receipt landed costs, named with the PO that changed them - and every retail price change as they happen.
Export and schedule it
Like every report, Export CSV downloads exactly what you see (GMROI and sell-through included on the receipt basis), and Schedule can email it or post it to Slack on a cadence. Reports in Stockroom covers how scheduling works.
Good to know
Margin here is merchandising margin - revenue net of discounts, before tax and shipping - not a full P&L.
GMROI and sell-through need to know what stock you held through the window, which only receipt costing tracks - so they hide on the current-cost basis rather than estimate.
The report reaches back up to 2 years of sales. Revenue tracking began July 10, 2026, so earlier dates on early installs may show units without revenue.
The more you receive through Stockroom, the more of your margin sits on real landed costs instead of an estimate.



