Shopify reconciliation, explained

Your Shopify export doesn't match your dashboard

Short answer

They are not supposed to match. The orders export and the Sales reports apply different inclusion rules, and Shopify documents the differences: test orders are in the export but not in Sales reports, and a custom-amount refund appears in the export but not in the Sales report.

Neither is wrong. The export is the record of what was ordered; the Sales report is an analytical view with its own exclusions. Decide which question you are asking, then pick the surface that answers it -- and name the difference rather than splitting it.

The decision tree

Work down this list. In our experience most gaps are gone by the third step.

1. Are there test orders in the export?

Shopify states plainly that "test orders aren't included in Sales reports but they're included in your orders export". A store that ran gateway tests will have an export total above its dashboard, permanently, with no error anywhere.

What to do: filter test orders out of the export before you compare. They are a correct and final exclusion -- they are not revenue and never will be.

2. Is there a custom-amount refund?

Shopify documents that a custom refund "doesn't display in your Sales report, but is included in your orders export". This one moves the numbers the other way: the export shows a reduction the report does not.

3. Does the window contain the order but not its refund?

Shopify notes that if your date range does not include both the order creation and the return, you get only one part of the order -- and that refunding and restocking on separate dates can make the same amount appear twice. A month boundary between a sale and its refund is enough to produce a gap that no amount of re-adding will close.

4. Are cancelled, pending or unpaid orders in scope?

Gross sales includes canceled, pending and unpaid orders per Shopify's documentation. If you are comparing a gross figure against something built only from paid orders, the difference is those orders, and it is expected.

5. Is a refund still pending?

Shopify states that if a refund is still pending you might see a positive amount in the Sales by channel report, and that it displays as a negative amount once the refund completes. The figure is mid-flight, not wrong.

Shopify Help Center: Sales discrepancies in Shopify Analytics

Which number is right?

Both, for different questions. The useful move is not to pick a winner but to state the basis: "net sales from paid and refunded orders in the export, excluding test orders, for orders created in August" is a defensible sentence. "Sales were 128,400" is not, because nobody can check it.

That is the whole of the method: tie the figure to a named source, list what you took out and why, and gate anything the data cannot prove. It is written up at how to make a Shopify number defensible.

What a reconciliation actually looks like

A reconciled figure has three parts: the source total, the mapped total, and a residual between them that is either zero or explained. Every order that did not make it into the mapped total is listed individually with a reason -- test, voided, pending, gift card, cancelled -- rather than absorbed into a rounding difference.

When the residual is not zero and nothing explains it, the honest output is a named gap, not a smaller font. Our limitations page lists what we refuse to compute for exactly that reason.

Common questions

Are test orders included in my Shopify orders export?

Yes. Shopify's documentation states that test orders aren't included in Sales reports but they're included in your orders export. If your export total is higher than your dashboard, test orders are the first thing to check.

Why does a refund show in my export but not in my Sales report?

Shopify documents that a refund for a custom amount doesn't display in your Sales report, but is included in your orders export. A custom refund is not tied to a returned line item, so a report built on line items has nothing to attach it to.

Does the dashboard include cancelled or unpaid orders?

For gross sales, yes. Shopify's documentation notes that gross sales includes canceled, pending, and unpaid orders, while net quantity excludes returns. That is a common source of a dashboard figure sitting above what was actually collected.

Should I just use whichever number is higher?

No. Pick the surface that answers your question, then state what it excludes. A figure whose exclusions are named is defensible; a figure chosen because it looked better is not.

What this does not tell you

This page explains why the two surfaces differ. It does not tell you which figure your accountant should book -- that depends on your revenue recognition policy, and it is their call, not ours.

Shopify changes its reporting surfaces. Every claim here is linked to the Shopify documentation that states it, so you can check whether it still says that.

Related
Gross sales vs net sales in ShopifyShopify orders export: what each column provesHow to make a Shopify number defensibleAll Shopify reconciliation guides
Run your own file -- no signup, no account.

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 export

CSV uploads are parsed in your browser. Shopify orders you sync are stored on our servers.

Sources last checked 2026-08-04.