Customers and retention

How to find your top customers in WooCommerce

To find your top customers in WooCommerce, go to WooCommerce › Customers and click the Total spend column header to sort from highest to lowest. Click Orders instead to rank by how often people buy. Both rankings are lifetime totals, and the Download button exports the full list as a CSV.

Below: which ranking to use, how to see top customers for a specific period, the traps in the list, and what to do with it.

The free way: sort the Customers report

  1. In WordPress admin, go to WooCommerce › Customers.
  2. Click the Total spend header to rank customers by revenue. Click it again to flip the order.
  3. Click Orders to rank by number of orders, or AOV to rank by average order value.
  4. Use Advanced filters to narrow the list, for example Country or region, Last active after a recent date (to see top customers who are still buying), or Total spend more than a threshold.
  5. Click Download to export the current view as a CSV.

The summary under the table shows the count, average orders, average lifetime spend and average order value for whatever's filtered. Filtering to Total spend above, say, $500 and reading the count tells you how many high-value customers you have.

Three rankings, three questions

Sort by Answers Watch out for
Total spend Who has brought in the most revenue overall? Long-time customers rank high even if they've stopped buying
Orders Who are my most frequent buyers? Small, frequent orders can rank above big spenders
AOV Who places the biggest orders? One large order can put a one-time buyer at the top

Looking at one customer

When you open one of their orders, the Customer history box on the order edit screen shows that customer's total orders, revenue and average order value. That box arrived with order attribution in WooCommerce 8.5.

How concentrated is your revenue?

The top customers list also answers a bigger question: how much of your revenue depends on a small group of people? You can measure it from the export in a few minutes.

  1. Download the Customers report with no filters and open it in a spreadsheet.
  2. Sort by Total spend, highest first.
  3. Add up the total spend of your top 10% of customers and divide by the total spend of everyone.

Say you have 1,500 customers. The top 150 spent $68,000 out of $160,000 in total, so your top 10% account for 42.5% of lifetime revenue.

There's no right answer, but the number changes how you run the store. If a small group carries a large share, losing a few of them hurts, so checking that they're still buying belongs in your monthly routine. If revenue is spread evenly, broad marketing and your repeat rate matter more than any individual account.

What the top customers list doesn't show

  • No date range. The Customers report has no date picker, so it can't tell you who your top customers were last quarter. A customer who spent heavily three years ago and nothing since still ranks high.
  • No profit. A customer who buys only discounted products may rank high on spend but low on margin.
  • Split guests. Guest orders are grouped by email address, so one person using two addresses shows up twice with smaller totals.
  • Staff, test and wholesale accounts. These often sit at the top. Filter them out by email, role or username before drawing conclusions.

To catch the first problem, add a Last active filter after a recent date. Top customers who fail that filter belong on your list of customers who stopped buying.

For developers: top customers for a date range in SQL

Joining the Analytics tables wc_order_stats and wc_customer_lookup gives you a ranking for any period. This works with HPOS or posts storage. It ranks customers by net sales in the 12 months to 31 October 2026:

SELECT c.customer_id,
       c.first_name,
       c.last_name,
       COUNT(*) AS orders,
       ROUND(SUM(s.net_total), 2) AS net_sales
FROM wp_wc_order_stats s
JOIN wp_wc_customer_lookup c ON c.customer_id = s.customer_id
WHERE s.parent_id = 0
  AND s.status IN ('wc-completed', 'wc-processing')
  AND s.date_created >= '2025-11-01'
  AND s.date_created < '2026-11-01'
GROUP BY c.customer_id, c.first_name, c.last_name
ORDER BY net_sales DESC
LIMIT 20;

net_total excludes tax and shipping. parent_id = 0 leaves out refund rows, so totals are before refunds. Match the status list to the statuses your Analytics counts and change wp_ if your prefix differs. This query returns personal data, so keep the results inside your admin and don't paste them into outside tools.

What Askshelf can and can't tell you

Askshelf doesn't answer questions about top customers or any named customer. It never reads or sends names, emails, phone numbers or addresses, and it declines questions about individual people. That's a deliberate design choice: the AI model only ever sees store-level totals. The reasoning is in is it safe to give AI your store data.

The nearest thing it can do is count how many of your loyal customers have gone quiet, without naming them:

Askshelfexample answer

How many customers with 5 or more orders haven't ordered since July?

23 customers have placed at least 5 orders but none since 1 July 2026. They're among your most frequent buyers, so they're worth looking up in the Customers report.Lapsed customers, at least 5 orders, none since 1 July 2026
An example on a demo store. In your store, the numbers come from your own orders.

Then filter the Customers report by Number of orders (more than 4) and Last active (before 1 July) to see who they are. For more on what Askshelf covers, see customer analytics with Askshelf.

What to do with your top customers list

  • Thank them personally. A short note, an early look at new products or a small free extra costs little and is remembered.
  • Learn what they buy. If your top 50 customers mostly buy one product line, that line deserves stock priority and attention. Compare with your best-selling products.
  • Check where they are. If your best customers cluster in a few regions, see where your WooCommerce customers are.
  • Put a value on them. Your top customers' spend against the average shows how uneven your revenue is. The guide on customer lifetime value explains the calculation.

For the full set of customer reports and metrics, see the WooCommerce customer analytics guide.

Common questions

Can I see top customers for last month only?

Not directly. The Customers report shows lifetime totals and has no date range picker. For a specific period, export orders or run a query on the Analytics tables grouped by customer.

Do guest customers appear in the top customers list?

Yes. The Customers report includes guests and groups their orders by email address. A guest who used several email addresses appears as several smaller customers.

Should I rank by total spend or number of orders?

Use total spend to find who brings in the most revenue, and number of orders to find your most loyal regulars. The two lists often differ, and both are worth looking at.

See how Askshelf handles this: Customer analytics for WooCommerce