If a figure in the Sales by Country report does not match what you see elsewhere in WooCommerce Analytics, this page explains why. It states exactly which orders are counted, how each column is calculated, and which store settings change the result.
Which orders are counted
The report does not use its own list of order statuses. It reads the Excluded statuses setting from WooCommerce → Analytics → Settings, the same setting that drives every other Analytics report. Any status ticked there is left out of the Sales by Country figures.
If you have never changed that setting, the report falls back to excluding these statuses:
- Pending payment
- Cancelled
- Failed
- Trash
- Refunded — the status on the whole order, which is not the same thing as a partial refund. See How refunds are handled below.
Because the setting is shared, changing Excluded statuses in Analytics changes the Sales by Country numbers at the same time as the core reports. That is intentional: it is what keeps the two in agreement.
How each column is calculated
| Column | What it is | Formula |
|---|---|---|
| Country | The country name, taken from the billing or shipping address depending on the toggle at the top of the report. | — |
| Orders | The number of orders from that country. Refunds are not counted here — a refunded order is still one order. | Count of orders, excluding refund records |
| Items Sold | Total quantity of individual line items across those orders. | Sum of item quantities |
| Total Sales | The full amount the customer paid, after discounts and including tax and shipping. This is the order total. | Gross sales − discounts + tax + shipping |
| Net Sales | Product revenue only — what is left after discounts, tax and shipping are taken out. | Total Sales − tax − shipping |
| Total Tax | Tax collected on those orders. | Sum of order tax |
| Avg Order Value | The average amount paid per order. | Total Sales ÷ Orders |
| Orders (%) | That country’s share of all orders in the report for the selected period. | Country orders ÷ all orders × 100 |
How refunds are handled
Refunds are deducted from the money columns, and they are deducted from the country the original order belonged to.
- Total Sales, Net Sales and Total Tax — reduced by the refunded amount. This covers partial refunds as well as full ones.
- Orders — unchanged. A refund is not a separate order and never adds to, or subtracts from, the order count.
- Avg Order Value — falls after a refund, because the refunded amount leaves Total Sales while the order count stays the same.
- Country — a refund inherits the billing and shipping country of the order it belongs to, so it always reduces the right country.
A refund whose parent order sits in an excluded status is not counted, because the order it belongs to is not counted either.
Billing country, shipping country, and orders with neither
The toggle at the top of the report chooses which address field the whole report groups by. It does not blend the two, and it does not fall back from one to the other.
If you sell digital products, Billing Country is usually the view you want — switch to it with the toggle at the top of the report.
Which date an order is counted on
The report uses the Date type setting from WooCommerce → Analytics → Settings — again, the same setting core Analytics uses. On a default store this is date paid, so an order placed on the 31st but paid on the 1st falls in the new month.
Changing Date type in Analytics moves orders between periods in this report too. If a month’s totals shift unexpectedly, check whether that setting was changed.
Time zone
Days are bounded by your store’s own time zone, set at Settings → General → Timezone — not UTC, and not the viewer’s local time. A day runs from 00:00:00 to 23:59:59 in store time, so an order placed at 23:30 store time belongs to that day even if it was already tomorrow in UTC.
Who can see the report
Access follows WooCommerce’s own reporting capabilities, so you do not need to manage a separate permission for this plugin.
| What they see | Required capability | Typical role |
|---|---|---|
| The country table, chart, summary, Best-Selling Products and anomaly alerts | view_woocommerce_reports or manage_woocommerce | Shop manager, Administrator |
| The Orders table in Single Country View, and the AI summary, recommendations and question box | manage_woocommerce | Shop manager, Administrator |
| The settings screen — saving an API key, testing the connection | manage_woocommerce | Shop manager, Administrator |
A user with view_woocommerce_reports but not manage_woocommerce sees the report but not the per-order detail or the AI panels. If someone reports a "Sorry, you are not allowed to access this page" message, this is the capability to check.
Why your numbers might still differ from core Analytics
| Symptom | Most likely cause |
|---|---|
| Average order value is higher here than in Analytics | Expected. This report divides Total Sales by orders; Analytics divides Net Sales. See the note above. |
| Shipping Country shows fewer orders than Billing Country | Orders with no shipping address are excluded from the shipping view. Normal on stores selling virtual or downloadable products. |
| Older orders are missing, or show no country | Historical orders need a one-time import before they carry country data. See Past Order Import. |
| A country’s totals dropped without new refunds | Check whether Excluded statuses or Date type changed under Analytics → Settings. |
| Totals changed after a WooCommerce data rebuild | A core rebuild repopulates the Analytics tables and can clear the country columns. Re-run Past Order Import afterwards. |
| Figures look wrong on a multi-currency store | Amounts are shown in one currency at a time. See Compatibility for how each multi-currency plugin is handled. |