Shopify reconciliation, explained
Shopify reports sales in several places, and they are not built to agree. The orders export, the Sales reports and the Shopify Payments payout report each count a different thing over a different window, so two of them disagreeing is usually correct behaviour rather than a bug.
These guides explain what each surface counts, which one answers which question, and how to reconcile a figure so it holds up when someone asks where it came from.
Start here
New to ProfitRoot? How it is different from a profit dashboard, in counted facts.
Closing a client's books? Tie their Shopify sales out before close.
The decision tree: which number is right, and why the two disagree.
Timing, fees, and why a payout was never going to equal a sales figure.
The reference: each column mapped to the lane it belongs in.
The calculation, and where Shopify's own surfaces disagree.
Three lists, six reasons: why the order counts disagree and how to tie them.
Card fees, transaction fees, processor fees: where each one lives and how to total a month.
Cost recorded at the time of sale: why profit leaves sales out, and how to see the gap.
Sold now, counted as a sale when spent: where gift card money shows instead.
After the ledger is in sync: what still is not proven, and why.
Ledger sync vs margin verification: what each tool is for, side by side.
Estimated for speed, or traced for proof: what each kind of number can carry.
Gross payments vs Net Sales: the walk from your 1099-K to Shopify, line by line.
Shipping charged vs label cost: join two exports and see what shipping costs you per order.
Budget vs actual in four numbers: the gap split into volume and order value.
CM1, CM2, CM3: contribution margin in three layers, with every missing cost named.
Payouts in, bills out, week by week: find the week cash runs lowest.
The method: reconciled-or-gated, and how to apply it to your own file.
The short version
Three surfaces, three jobs. The orders export is the raw record: one row per line item, with order-level fields on the first row of each order. The Sales reports are an analytical view with their own inclusion rules. The payout report is money movement -- when funds actually landed, net of fees and adjustments.
Most reconciliation questions dissolve once you know which of the three you are looking at, and what it excludes. The rest come down to timing: an order and its refund can fall in different periods, and a sale and its payout almost always do.
Vocabulary
- Gross sales -- Shopify defines this as "Sales revenue, before discounts and sales reversals are factored in".
- Net sales -- Shopify defines this as "Sales revenue, with discounts and sales reversals factored in", computed as gross sales minus discounts minus sales reversals.
- Total sales -- net sales plus taxes, shipping, duties and additional fees. This is the figure closest to what customers were charged, and the furthest from a revenue figure.
- Payout -- a transfer of funds to your bank, net of fees, disputes and adjustments, on its own schedule. Not a sales figure.
- Reconciled -- a figure that has been tied back to a named source and whose exclusions are listed individually, rather than one that merely looks plausible.
Shopify Help Center: Analytics data points (fields) reference
How we check our own numbers
The same standard these guides describe is the one the product is built on: a figure is either tied to its source with every exclusion named, or it is shown as gated rather than estimated. Our methodology page states what each source can prove, and limitations states what it cannot.
Common questions
Which Shopify number is the correct one?
It depends on the question. For revenue recognition, a sales figure built from orders is the right basis. For cash, the payout report is. Shopify's own documentation says the Shopify Payments activity report "isn't a statement of revenue for accounting purposes", so the two are not competing answers to one question -- they answer different questions.
Why does my orders export not match my dashboard?
Because they include different orders. Shopify documents that test orders are excluded from Sales reports but present in the orders export, and that a custom-amount refund does not appear in the Sales report while it is included in the orders export.
Do I need to connect my store to use these guides?
No. Every guide here works from your own Shopify Orders export. To see the figures on your own store, install ProfitRoot from the Shopify App Store; to see them first, use the sample store.
Install ProfitRoot and see these steps on your own orders.
Install free from the Shopify App StoreOrders synced from a connected Shopify store are transmitted to and stored on our servers so they can be recomputed on later visits.
Sources last checked 2026-11-13.