Shopify reconciliation, explained

Why your Shopify order count doesn't match

Short answer

Shopify's order count, your orders export and your payout transactions are three different lists, so they rarely show the same number. The payout list holds only money that moved through Shopify Payments, so orders paid another way, not yet paid, not yet paid out, or that charged nothing never appear in it. The orders export prints one row per line item, so counting rows overcounts orders.

Match the lists by order number and every missing order falls into one of six named reasons.

Three lists, three questions

Sources: Shopify Help Center: Sales discrepancies in Shopify Analytics · Shopify Help Center: Exporting orders · Shopify Help Center: Shopify Payments activity report (read 29 Oct 2026)

The six reasons, in the order to check them

1. You counted rows, not orders

Count distinct values in the Name column. Orders with several products take several rows.

2. The order was paid another way

PayPal, Afterpay, manual payments, cash on delivery and bank transfer are not Shopify Payments money. The Payment Method column can hold several methods on one order, separated by " + ".

3. The order had no card charge

A $0 order, a fully discounted order or a gift-card-only order has nothing to pay out. (Reasoning from "Shopify Payments money only", not a quote.) How gift cards show up in sales at all is a question of its own.

4. The order is not paid yet

Payment terms, authorized but not captured, or pending. The export's transaction history is captured payments only, so check Financial Status and Paid at.

5. It was captured after the payout cut-off

Compare Created at with Paid at: an order can belong to this period and be paid out in the next. The day an order lands in also depends on timezone, see why a day can differ. (Reasoning, not a quote.)

6. It is a test, voided or cancelled order

Filter on Financial Status and Cancelled at, and say which filter you used.

A worked example (hypothetical)

Home shows 127 orders. Paid with PayPal: 12. Captured after the last payout: 6. Not yet paid: 5. No card charge: 4. Expected in the payout list: 127 − 12 − 6 − 5 − 4 = 100. The payout export has 100. Unexplained: 0. The same store's orders export has 163 rows for those 127 orders, because 26 orders have more than one product.

Tie your own counts in about 15 minutes

  1. Export orders for the period, keeping Name, Financial Status, Paid at, Created at, Cancelled at, Payment Method and Source.
  2. Remove duplicate Name values so each order appears once.
  3. Export the payout transactions for the same dates.
  4. Match the two on order number and tag each unmatched order with one of the six reasons.
  5. Open any order you could not tag, one at a time.

More on the columns: what each export column proves; on why the totals differ: export versus dashboard; on making the number defensible: the method.

What ProfitRoot does with this

ProfitRoot ties Net Sales to Shopify to the cent and keeps every excluded order on a list with its reason. On the sample store (SAMPLE DATA), December 2025 ties at $0.00 across 271 orders, with 14 held out: 7 pending, 5 voided, 2 test. Free to install; Pro $49 a month; Firm $149 a month; every feature free during the founding period.

Common questions

Why does my Shopify export have more rows than I have orders?

The orders export prints orders with several products on separate lines, one row per line item. Count distinct order names (the Name column), not rows, to get the number of orders.

Why are some orders missing from my payout transactions?

The payouts report reflects balance activity in Shopify Payments only. Orders paid with PayPal, Afterpay, manual payment methods, cash on delivery or bank transfer, orders that charged nothing, and orders captured after the payout cut-off do not appear in that payout.

Do test and cancelled orders count?

It depends on the list. Shopify says test orders aren't included in Sales reports but are included in the orders export, and that canceled, pending and unpaid orders are included in gross sales. Filter the export by Financial Status and Cancelled at, and say which filter you used.

Does the orders export show authorized payments?

No. Shopify says the transaction history in the export contains only captured payments data, and authorization data isn't included. An order authorized but not yet captured has no captured payment to match.

Should my order count equal my payout count?

No. They answer different questions. Shopify states the payouts report isn't a statement of revenue for accounting purposes. Tie the two lists by order number and give every unmatched order a reason, instead of forcing the totals to agree.

What this does not tell you

Reasons 3 and 5 below are reasoning from the fact that the payout list holds Shopify Payments money only; they are not quotes from Shopify. The worked example is hypothetical.

This page ties order counts. It does not tell you why a payout amount differs from your sales; that is a different question.

Want to see every excluded order named, on your own store?

Install ProfitRoot and see these steps on your own orders.

Install free from the Shopify App Store

Orders synced from a connected Shopify store are transmitted to and stored on our servers so they can be recomputed on later visits.

Related
Your Shopify payout doesn't match your salesShopify export doesn't match your dashboardHow to make a Shopify number defensibleAll Shopify reconciliation guides

Sources last checked 2026-10-29.