WooCommerce Analytics Beyond the Dashboard
The built-in reports are a good start, but they disagree with your order list for reasons that are easy to miss. Know the four causes, then ask the questions the dashboard does not.
WooCommerce analytics rarely matches your order list on the first try, and the reasons are specific: which statuses are counted, which date an order is placed under, when refunds land, and whether shipping and tax are included. This post explains each cause, then lists the questions worth asking once the numbers agree.
What WooCommerce Analytics shows
The built-in Analytics section covers revenue, orders, products, categories, coupons, taxes and customers. It is good at totals over time and at ranking products. For a small store that checks sales weekly, it is often enough, and it costs nothing extra. The trouble starts when you add up the order list yourself and arrive at a different figure for the same month. Before trusting either number, check the four causes below.
Cause 1: which statuses are counted
Analytics counts every status except pending, failed and cancelled by default. That means a custom status such as shipped or delivered still counts, and an on-hold order does too. Your order list shows all statuses unless you filter it. If you sum the list without filtering, cancelled and pending orders inflate the total. The first reconciliation step is to filter the list to the same statuses Analytics counts.
Cause 2: refunds land on the refund date
WooCommerce Analytics counts a return in the period the refund was issued, not the period of the original order. An order from March refunded in April lowers April's net sales and leaves March untouched. Your order list shows the order in March with a refunded amount attached. Both views are legitimate. They answer different questions: the Analytics view tells you what the month's money did, the order view tells you how good the month's sales were in hindsight. If you compare months, decide which question you are asking. The same issue exists on other platforms; attributing refunds to the right month covers it in general terms.
Cause 3: paid date versus created date
Analytics has a Date type setting. On a new store the default can be the date an order was paid, while the order list sorts by the date it was created. For most orders these are the same day. They differ for on-hold orders that are paid later, bank transfers, and orders created late on the last day of a month and paid after midnight. Those orders appear in one month in the list and the next in Analytics. If you are checking Analytics against the order list, switch the Date type to date created for the comparison. Quiriz reads orders by date created, which is why we mention it.
Cause 4: shipping and tax
Net sales is gross sales minus coupons minus returns. It does not include shipping or taxes. An order total does. Total sales in Analytics adds shipping and taxes back. When a number on a screen is a few percent above another, check whether one of them is a total and the other is net sales. Fees count as sales in Analytics, so a store that adds handling fees will see them in gross and net sales.
A worked reconciliation (illustrative numbers)
Suppose a store's order list for a month sums to 12,400 in order totals. Strip out cancelled and pending orders (minus 700), and you have 11,700. Take out shipping and tax (minus 1,300) and you have 10,400 of gross sales less coupons. Subtract 300 of coupons, and you have 10,100. Analytics shows 9,800 net sales, and the 300 difference is refunds issued this month on orders from earlier months. Every step has a name and an owner. These numbers are made up to show the method, not a benchmark.
Questions worth asking beyond the dashboard
- New versus returning customers. How many customers placed a first order each month, and what share of orders came from people who had bought before.
- Average order value by month. Whether the trend comes from basket size or from a change in mix.
- Products most refunded. Returned units against units sold, with a floor on volume so a product with two sales and one return does not top the list.
- Net sales by country. Which markets carry the store and whether one is growing faster than the rest.
These cross orders, refunds and customers, which is why a single Analytics screen rarely answers them. The Shopify equivalent of this routine is in Shopify analytics beyond the dashboard, and the net versus gross distinction is explained at net sales versus gross sales.
Asking those questions with Quiriz
The WooCommerce connector (in beta, read-only, refreshed daily) builds six datasets from your store: [WooCommerce] Orders, Order line items, Refunds, Sales, Products and Customers. The Sales dataset is built to match WooCommerce Analytics > Revenue, with returns on the refund date, so the net sales it returns can be checked against the screen you already know. Orders carry a first-order flag, country and a one-way customer key, so new versus returning and net sales by country become plain-English questions. Net sales, Orders, Average order value and New customers are stored metrics in Company Context, so the definition is the same every month and Quiriz shows the work behind each answer.
Honest limits
- Orders are read newest first up to an order cap set by your admin, and only whole months are kept. A very large store sees its newest months.
- New-customer flags only see orders inside the imported window, so a returning customer from before the window may look new.
- Amounts stay in each order's currency. A store selling in several currencies should check before summing.
- Refund reasons are not imported.
More store workflows are at Quiriz for ecommerce, and the AI angle is in WooCommerce AI.
Ask what the dashboard cannot answer
Connect WooCommerce and ask about repeat customers, refunds and countries in plain English. Free to start.
Try Quiriz free →