Sales by State Report for WooCommerce
Sales by State Report for WooCommerce adds a report showing net and gross sales grouped by state, county or province, for a chosen year and a chosen set of order statuses.
With WooCommerce Analytics enabled the report appears under Analytics, alongside Revenue and Orders, drawn with the same components so it looks like a built-in report. With Analytics disabled it appears under WooCommerce instead, and looks the same there.
It answers the question sales tax and territory planning actually ask: how much did each state buy in a given year, counting only the orders that matter.
This plugin requires WooCommerce.
Documentation: salesbystate.com
What the report shows
- Net Sales and Gross Sales for every state in the selected country
- A summary of both figures across all states
- Sortable columns and paginated results
- States with no sales, shown as zero rather than hidden
Filters
- Country — any country WooCommerce defines states or provinces for. Defaults to the store’s base country.
- Year — a rolling list that starts ten years back and gains a year each January without dropping one. Defaults to the current year.
- Order status — a checkbox list of WooCommerce order statuses. Defaults to Completed.
How the figures are calculated
Gross Sales is the order total. Net Sales is the order total minus tax and shipping. Both use the values WooCommerce stores on the order, so they reconcile with WooCommerce’s own reporting.
Refunds are not modelled as separate records. An order that has been fully refunded carries the Refunded status, so the status filter controls whether it is counted. A partial refund is not deducted from its order’s total.
Performance
Sales for a whole year are answered by one indexed query that returns one row per state. The response size does not grow with the number of orders.
Data and privacy
The plugin creates one custom database table holding, per order: the order ID, order status, creation and payment dates, billing and shipping country and state codes, currency, and the order, tax, shipping and net totals. It stores no names, addresses, email addresses or any other personal data.
Nothing is sent anywhere. The plugin makes no external HTTP requests, includes no third-party services, and collects no analytics or telemetry.
Deleting the plugin removes the table and its options.
Compatibility
- High-Performance Order Storage (HPOS)
- Cart and Checkout blocks
- WooCommerce Analytics — used for the menu location when enabled, never for the figures
