WooCommerce knows who your customers are. It stores their name, email, billing address, and every order they've placed. But it does almost nothing with that data.
There is no built-in customer segmentation. No lifetime value calculation. No churn risk indicator. No way to distinguish a loyal high-value buyer from someone who placed one order and never came back.
All the data is there. The intelligence layer is missing. Here is how to build it.
How WooCommerce stores customer data
WooCommerce's customer data lives across several WordPress database tables. Understanding this structure explains why customer analytics is so limited out of the box.
wp_users stores the basic account: username, email, registration date. This is the WordPress user table — WooCommerce shares it with the rest of WordPress.
wp_usermeta stores customer profile details as key-value pairs: billing address, shipping address, payment methods, and WooCommerce-specific flags like paying_customer and order_count.
Order data is stored separately in wp_posts (or wp_wc_orders if you've migrated to High-Performance Order Storage). Each order links back to a customer via user ID or email address for guest checkouts.
Order item meta contains line-level details: which products were purchased, quantities, prices, coupons applied, and shipping methods.
The key takeaway: WooCommerce stores customer identity and transaction history in separate tables with no pre-computed analytics. Every insight — LTV, purchase frequency, average order value — has to be calculated from raw order records.
Building customer profiles from order history
The first step in customer analytics is assembling a complete profile for each buyer. A useful customer profile includes:
- Total lifetime revenue — sum of all order totals
- Order count — how many times they've purchased
- Average order value (AOV) — lifetime revenue divided by order count
- First order date — when they became a customer
- Last order date — the most recent purchase (critical for churn analysis)
- Purchase frequency — average days between orders
- Product categories purchased — what types of products they buy
- Coupon usage rate — what percentage of their orders used a discount
WooCommerce gives you order count and total spent on the customer edit screen in the admin. Everything else requires manual calculation or a plugin.
RFM segmentation for WooCommerce stores
RFM (Recency, Frequency, Monetary) is the most practical segmentation framework for ecommerce. It scores each customer on three dimensions:
Recency — How recently did they last purchase? A customer who ordered last week is more engaged than one who last ordered eight months ago.
Frequency — How often do they purchase? A customer with 12 orders is more loyal than one with 2 orders.
Monetary — How much do they spend? A customer who spends $500 per order is more valuable than one who spends $15.
Each dimension is scored on a scale (typically 1 to 5), giving you a three-digit RFM score per customer. An RFM score of 5-5-5 is your best customer: bought recently, buys often, spends a lot. A score of 1-1-1 is a one-time buyer who hasn't returned and didn't spend much.
Practical RFM segments for WooCommerce
| Segment | RFM pattern | Action |
|---|---|---|
| Champions | High R, High F, High M | Reward loyalty, ask for reviews, early access to new products |
| Loyal customers | Medium-High R, High F, Medium M | Upsell and cross-sell, loyalty program enrollment |
| Potential loyalists | High R, Low-Medium F, Medium M | Encourage repeat purchases with targeted offers |
| At-risk | Low R, High F, High M | Win-back campaigns — these were good customers who stopped buying |
| Hibernating | Low R, Low F, Low M | Low priority — don't spend retention budget here |
The power of RFM is that it's actionable. Each segment maps to a specific marketing strategy. You're not just labeling customers — you're deciding how to treat them differently.
Doing RFM manually in WooCommerce
Without a plugin, RFM segmentation requires:
- Exporting all orders with customer email, order date, and order total
- Aggregating per customer: last order date, order count, total spent
- Scoring each dimension into quintiles (top 20% gets a 5, next 20% gets a 4, etc.)
- Concatenating scores and assigning segment labels
This is doable in a spreadsheet. It's also tedious, static (you have to redo it regularly), and disconnected from your marketing tools.
Identifying first-time vs. repeat buyers
One of the most important splits in ecommerce is first-time buyers versus repeat buyers. Repeat customers typically convert at higher rates, spend more per order, and cost less to acquire than new customers.
WooCommerce stores an order_count meta field on user profiles, but it doesn't surface first-time vs. repeat metrics in its reports. To track this:
For any given period, count orders where the customer's first-ever order date falls within that period (first-time) versus orders where it doesn't (repeat).
Track the repeat purchase rate: what percentage of first-time buyers come back for a second order within 30, 60, or 90 days? This is your most important retention metric. If it's below 20%, you have a retention problem.
Monitor repeat buyer revenue share: in a healthy ecommerce business, repeat buyers should generate 40% or more of total revenue. If you're over-reliant on new customer acquisition, your marketing costs will keep rising.
Churn risk signals
A customer doesn't announce they're leaving. But their behavior changes before they churn. Here are the signals to watch in WooCommerce order data:
Increasing time between orders. If a customer who used to order monthly hasn't ordered in three months, they're at risk. Calculate each customer's average order gap and flag anyone who's exceeded it by 50% or more.
Declining order values. A customer who used to spend $100 per order and now spends $40 may be shifting their purchases elsewhere. Declining AOV is an early churn signal.
Reduced product breadth. A customer who used to buy across categories but now only buys one product type may be pulling away.
Increased refund rate. Multiple refunds or returns signal dissatisfaction. WooCommerce tracks refunds per order, but you need to aggregate this at the customer level.
No response to campaigns. If you're running email campaigns through Mailchimp, Klaviyo, or another tool, decreasing open and click rates from a previously active customer are churn indicators.
Email list segmentation based on purchase behavior
The most underused asset in WooCommerce is the connection between order data and email marketing. Most merchants send the same email to their entire list. Segmenting based on purchase behavior dramatically improves engagement.
By RFM segment: Champions get early access and VIP offers. At-risk customers get win-back sequences. New buyers get onboarding content and cross-sell suggestions.
By product category: Customers who buy running shoes get running content and accessory recommendations. Customers who buy casual wear get different messaging.
By price sensitivity: Customers who only purchase during sales get notified about promotions. Full-price buyers get new arrival notifications (not discount emails, which train them to wait for sales).
By purchase recency: Recent buyers get post-purchase follow-ups and review requests. Lapsed buyers get re-engagement campaigns with incentives.
The challenge is building these segments from WooCommerce data and keeping them synced with your email platform. Most merchants do this manually once and then let the segments go stale.
How Spark automates WooCommerce customer segmentation
Spark connects to your WooCommerce store via the REST API and builds customer profiles automatically from your order history. Instead of exporting data to spreadsheets or configuring plugin settings, you ask questions:
"Who are my top 10 customers by lifetime value?"
"What percentage of my revenue comes from repeat buyers?"
"Show me customers who used to order monthly but haven't ordered in 90 days."
"Which customer segment has the highest average order value?"
Spark runs RFM segmentation, identifies churn risk, calculates repeat purchase rates, and surfaces the patterns that matter — all from a single WooCommerce connection. It cross-references customer behavior with product data and margin analysis, so you're not just seeing who your best customers are, but what they buy and how profitable those purchases are.
The result is customer intelligence that updates with every new order, without spreadsheets, without plugins, and without manual recalculation.
Turn order history into customer intelligence
Spark segments your WooCommerce customers automatically — by value, behavior, and churn risk.