Sales reporting
WooCommerce average order value: how it's calculated and how to raise it
To find your average order value in WooCommerce, go to Analytics › Orders in WordPress admin, choose a date range, and read Average order value in the row of figures at the top. WooCommerce calculates it as net sales divided by the number of orders, so it excludes tax and shipping and takes out coupons and refunds.
Below: how the number is built, why it can surprise you, how to track it over time, and the changes that tend to move it.
The free way: Analytics › Orders
- In WordPress admin, go to Analytics › Orders.
- Click the date range and choose a period, such as Last month.
- To see the change, set Compare to › Previous period or Previous year, then click Update.
- Read the four figures at the top: Orders, Net sales, Average order value and Average items per order. With a comparison set, each shows the percentage change.
- Click Average order value to chart it. Pick an interval (day, week or month) to see how it moved through the period.
The Analytics Overview page can show average order value as one of its headline figures too.
How WooCommerce calculates average order value
Average order value (AOV) in WooCommerce Analytics is:
AOV = net sales ÷ orders
Net sales is gross sales minus refunds minus coupon discounts, with tax and shipping left out. Here's an example:
| Amount | |
|---|---|
| Gross sales | $6,200 |
| Returns (refunds) | −$240 |
| Coupons | −$310 |
| Net sales | $5,650 |
| Orders | 130 |
| Average order value | $43.46 |
If you worked it out from order totals instead (what customers paid, including tax and shipping), you'd get a higher number. Neither is wrong, but they aren't comparable. When you compare your AOV with a figure from a payment provider, an ad platform or another tool, check which definition it uses first. The net sales vs gross sales guide explains the differences.
Why your AOV might look odd
A few things push the number around without any change in how customers shop:
- Refunds land on the refund date. A big refund this month lowers this month's net sales, and so its AOV, even if the order was placed last month.
- Excluded statuses. Orders with a status listed under Analytics › Settings › Excluded statuses aren't counted in either half of the sum. See excluded statuses.
- Small samples. On a day with eight orders, one large order can move AOV a lot. Look at weeks or months, not days.
- Wholesale or bulk buyers. One trade customer ordering 200 units will lift AOV for the month. If you have a few of these, consider filtering them out mentally, or look at the Customers report to see who's behind it.
- Free or zero-value orders. Replacement orders or giveaways processed at $0 count as orders and drag AOV down.
If the figure still doesn't match what you expect, why WooCommerce Analytics numbers don't match your orders covers the other common causes.
Tracking AOV over time
AOV moves slowly, and a single month means little. Compare it in two ways:
- Against the previous period to see the effect of something you changed, like a free shipping threshold or a new bundle.
- Against the same period last year to take seasonality out. Gift seasons often change what people buy and how much.
The guide to comparing two date ranges in WooCommerce shows how to set both up.
It also helps to look at average items per order next to AOV. If AOV rose because people bought more items, your cross-selling is working. If it rose while items per order stayed flat, people are buying more expensive things (or your prices went up).
AOV per customer
The Customers report (WooCommerce › Customers) shows an average order value for each customer, next to their number of orders and total spend. Sort by it to see who places your biggest orders. You can filter the list too, for example to customers with more than a set number of orders.
When order attribution is turned on, each order's edit screen also has a Customer history box with that customer's total orders, revenue and average order value.
For developers: AOV in SQL
The Analytics table wp_wc_order_stats holds one row per order and one per refund (refund rows have a parent_id and a negative net_total). This matches the Analytics formula for October 2026:
SELECT COUNT(CASE WHEN parent_id = 0 THEN 1 END) AS orders,
ROUND(SUM(net_total), 2) AS net_sales,
ROUND(SUM(net_total) / COUNT(CASE WHEN parent_id = 0 THEN 1 END), 2) AS aov
FROM wp_wc_order_stats
WHERE date_created >= '2026-10-01' AND date_created < '2026-11-01'
AND status NOT IN ('wc-pending', 'wc-failed', 'wc-cancelled');
The query doesn't read your Excluded statuses setting, so edit the status list to match it. Change wp_ if your table prefix differs.
The quick way: ask Askshelf
Askshelf adds Analytics › Askshelf to WordPress admin. Ask for your average order value in plain words, and it reads the same Analytics data, so the figure matches the Orders report:
What was our average order value last month, and how does it compare with the same month last year?
The same sales summary includes net sales, orders, items sold, refunds and coupon discounts, so you can see what moved AOV in one answer. It can't break AOV down by customer name (it doesn't read customer names at all). For category or country, ask for net sales and orders by that breakdown instead. More examples are on the AI sales reports page.
How to raise your average order value
These are the levers most stores use. Measure each one by comparing AOV and items per order before and after.
- Set a free shipping threshold a little above your current AOV. Customers who are close often add one more item.
- Bundle products that are often bought together, priced slightly below buying them separately.
- Show related products on product pages and in the cart. WooCommerce has built-in upsells and cross-sells on each product's Linked Products tab.
- Offer tiered discounts ("spend $75, get 10% off") instead of flat codes. A flat code lowers AOV, while a minimum spend can raise it. Check whether it paid off with how to tell if a WooCommerce coupon paid off.
- Sell larger sizes or multipacks of your best sellers. Check which variations already sell with sales by variation.
Raise AOV with care: a higher AOV with fewer orders can mean less revenue overall. Always look at net sales alongside it. For the full picture of WooCommerce sales numbers, see the WooCommerce sales reports guide.
Common questions
Does WooCommerce average order value include shipping and tax?
No. WooCommerce Analytics calculates average order value as net sales divided by orders, and net sales excludes tax and shipping. It also takes out coupon discounts and refunds.
Can I see average order value for a single customer?
Yes. The Customers report under WooCommerce › Customers shows each customer's average order value next to their order count and total spend. The order edit screen also shows it in the Customer history box when order attribution is on.
Why did my average order value drop when sales went up?
Usually because you gained more small orders, for example from a discount on a cheap product or a campaign that brought in first-time buyers. Check the Orders report for the period and compare items per order and coupon use with the previous period.
See how Askshelf handles this: AI sales reports for WooCommerce