Gross sales vs net sales in Shopify
Shopify defines gross sales as "Sales revenue, before discounts and sales reversals are factored in", and net sales as "Sales revenue, with discounts and sales reversals factored in" -- computed as gross sales minus discounts minus sales reversals.
Net sales is the figure worth reporting, because it is the one that survives a refund. Total sales is a different thing again: net sales plus taxes, shipping, duties and fees, which is what customers were charged rather than what you earned.
The arithmetic
gross sales = what was sold, before discounts and reversals
net sales = gross sales − discounts − sales reversals
total sales = net sales + taxes + shipping + duties + additional fees
Shopify Help Center: Analytics data points (fields) reference
Note the direction of the last line. Total sales is larger than net sales and further from revenue, because most of what it adds is money you are holding for someone else. Reporting total sales as revenue is one of the easiest and most expensive mistakes on this list.
Where Shopify's own surfaces disagree
The definitions are consistent. What differs is which orders each surface counts, and when.
Inclusion rules
- Test orders: Shopify states they are not included in Sales reports but are included in your orders export.
- Custom-amount refunds: Shopify states a custom refund does not display in the Sales report but is included in the orders export.
- Cancelled, pending and unpaid orders: included in gross sales per Shopify's documentation.
Timing
Shopify notes that a pending refund can display as a positive amount until it completes, that refunding and restocking on separate dates can show the same amount twice, and that a date range not covering both the order and the return leaves you with only part of the order.
Shopify Help Center: Sales discrepancies in Shopify Analytics
Which one should you report?
Net sales, with the basis stated. Gross flatters and includes orders that never became money; total sales includes money that is not yours. Net sales is the figure a refund correctly reduces, which is the property that makes it worth tracking month over month.
The basis matters as much as the number. "Net sales, from paid and refunded orders in the Orders export, excluding test orders, by order creation date" can be checked by anyone. A bare figure cannot. That is the subject of how to make a Shopify number defensible, and the column-level detail is in what each export column proves.
Common questions
What is the difference between gross sales and net sales in Shopify?
Shopify defines gross sales as sales revenue before discounts and sales reversals are factored in, and net sales as sales revenue with discounts and sales reversals factored in. Net sales equals gross sales minus discounts minus sales reversals.
Does gross sales include cancelled or unpaid orders?
Yes. Shopify's documentation notes that gross sales includes canceled, pending, and unpaid orders. That is why a gross figure can sit well above anything that was actually collected.
Is total sales the same as revenue?
No. Shopify defines total sales as the amount customers spent in your store -- net sales plus additional fees, duties, shipping charges and taxes. Tax is collected on behalf of a tax authority, so total sales is further from a revenue figure than net sales, not closer.
Why does the same period show different net sales in two places?
Usually inclusion rules or timing. Test orders are in the orders export but not in Sales reports; a custom-amount refund is in the export but not the Sales report; and a refund dated outside your window puts only half the story in range.
What this does not tell you
Shopify's reporting surfaces change, and definitions can differ between the Analytics surfaces and what an API returns for the same store. The definitions quoted here are linked to Shopify's own reference so you can check them against the current version.
Net sales is not gross profit. It says nothing about cost of goods, fulfilment, or payment fees -- those are separate lanes, and a margin figure that skips them is not a margin figure.
Upload your Shopify Orders export and see which figures reconcile to it, which are excluded and why, and which layers your data cannot prove yet. Your first report is free.
Reconcile my Orders exportCSV uploads are parsed in your browser. Shopify orders you sync are stored on our servers.
Sources last checked 2026-08-04.