Shopify Sales Report: Which One to Use and What the Columns Mean
Shopify offers more than twenty sales reports. Four cover a normal month, and two columns cause most of the arguments: Total sales, and the one that used to be called Returns.
For a normal month, run four Shopify sales reports: Total sales over time for the trend, Total sales by product and Total sales by sales channel for where it came from, and Sales by discount codes for how much was bought with a code. Report net sales, not total sales. Then check any older template, because Shopify replaced the Returns column with Sales reversals, and the new definition goes well beyond returned goods.
Which reports matter
Shopify's sales report list runs to more than twenty, under Analytics → Reports. What you can see can vary by store setup and plan. This is how I would sort them:
| Report | Use it for | How often |
|---|---|---|
| Total sales over time | The monthly trend. Group by month and show 13 months. | Monthly |
| Total sales by product | Which products moved | Monthly |
| Total sales by sales channel | Online store, POS, marketplaces | Monthly |
| Sales by discount codes | How much depended on a promotion | Monthly |
| Total sales by product variant | Size or color decisions | When buying |
| Sales by customer name | Wholesale and repeat accounts | Quarterly |
| Average order value over time | Checking a bundle or free-shipping change | When testing |
What each column includes
These are Shopify's own definitions:
| Column | Definition |
|---|---|
| Gross sales | Product price × quantity, before taxes, shipping, discounts and sales reversals |
| Discounts | Line item discounts plus each order's share of order-level discounts |
| Sales reversals | Negative order adjustments, such as returned products, cancellations, edits and refunds |
| Net sales | Gross sales − discounts − sales reversals |
| Shipping | Shipping charges − shipping discounts − refunded shipping amounts |
| Total sales | Gross sales − discounts − sales reversals + taxes + duties + shipping charges + fees |
My rule: use net sales for trends, targets and product comparisons, and use total sales only to match money received. Comparing total sales against a plan that was built on net sales will flatter you by whatever you charged for tax and shipping. There is more on this in net sales vs gross sales in Shopify.
Returns is now Sales reversals, so read the definition
Shopify replaced the Returns term with Sales reversals, with the old term due to remain only until May 1, 2026. If a spreadsheet template still looks for Returns, one of two things happens:
- A lookup breaks with an error. Annoying, but you will notice it.
- Someone remaps the new column and moves on. This is the worse case, because Shopify defines the new column to include cancellations, edits and refunds as well as returned products. If your own history treated returns more narrowly, the trend can shift for reasons that have nothing to do with customers.
A column rename is the kind of change that gets dealt with quickly and thought about too little. The fix takes thirty seconds, so whoever finds it fixes it and tells nobody. Months later, someone asks why a ratio stepped up in the spring, and the team goes hunting for a business cause that does not exist. When a source changes the meaning of a field and not only its name, I would write a dated note on the report itself, in the place the reader will look. It costs one line, and it saves the meeting where people explain a change that was never real.
The CSV quirk that inflates order counts
Shopify warns about this on the same page: if you add custom columns to Total sales over time, then in a CSV export "each individual row counts as an order". Summing that column can overstate your orders. The number will look reasonable, and average order value will come out too low. Keep a clean copy of the report just for order counts, or get orders from the dashboard figure and check them against the export.
A month's number can change later
Reversals can land in a later period than the sale, so last month's figure may not be final, and a big refund can make this month look worse than demand really was. Save your report on the same day each month, and read attributing refunds to the right month if you need to report by when the sale happened.
Asking instead of exporting
The manual version above takes a while because each report answers one question and the next question needs another report. Quiriz reads the store's data, from the Shopify connector or from an export you upload, and lets you ask directly: which products drove the change in net sales this month? The net sales definition lives in Company Context, so it does not change from one question to the next, or between Slack, Excel and a Word report.
You can try it on a sample store at app.quiriz.co/try with no signup. For a monthly pack, Quiriz for Excel and PowerPoint keep the questions in the file, so next month is a refresh.
Where this stops. Shopify reports revenue, not profit: margin needs product costs that many stores never entered. See gross margin by SKU for that. Our Shopify App Store listing is still on its way, so check the current connection options before you plan around one. And if you only need the numbers once a month, Shopify's own reports are free and perfectly good.
Ask your store a question
Try it on a sample Shopify store with no signup, then connect your own or upload an export.
Try Quiriz free →