Cohort and LTV Analysis for WooCommerce and BigCommerce Stores
Measuring WooCommerce customer lifetime value is harder than it should be, mostly because nearly every LTV and cohort guide online assumes you're on Shopify. The screenshots are Shopify admin, the apps are Shopify apps, and the data model is Shopify's. If you run a WooCommerce or BigCommerce store, you get a methodology that doesn't map to your reports and a list of tools you can't install.
That's a real gap, because these aren't small platforms. WooCommerce powers millions of active stores, and BigCommerce remains the core commerce engine under its parent company, now called Commerce.com. This guide gives you a cohort and LTV method that works on both.
What native WooCommerce reporting gives you, and where it stops
WooCommerce's built-in Customers report gives you a per-customer list with orders, total spend, AOV, and last active date. It groups guest orders under one customer record when they share an email address, which is the foundation you need. What it shows for LTV is an average lifetime spend summary for the current view, not a cohort table.
That number blends customers who joined last week with customers from three years ago. It can't tell you whether customers acquired this spring are worth more or less than last spring's, and it has no idea which ad channel acquired anyone.
Extensions fill some of the gap. WooCommerce's Customer Analytics extension adds a monthly cohort retention table and lifetime value reporting. That covers repeat behavior well. The piece still missing for most media buyers is the link between a cohort and the ad spend that created it.
BigCommerce cohort analysis: what's available natively
BigCommerce's standard analytics covers store-level snapshots. The premium Ecommerce Insights add-on includes customer and marketing reports, including a view of which channels bring in customers with the highest lifetime value. That's a useful starting point, but it uses the store's own channel classification, not paid media attribution at the campaign or ad level.
For a true BigCommerce cohort analysis, you'll usually export order data (customer ID or email, order date, order total, discounts) and build the cohort table yourself, or use an attribution tool that does it from the order feed.
The cohort and LTV method for WooCommerce and BigCommerce
The method is the same on both platforms. Only the export path differs.
Step 1: Define the customer key
Use billing email, lowercased and trimmed, as the customer key. On WooCommerce this matters more than on Shopify because guest checkout is common and customer accounts are optional. If the same person checks out once as a guest and once with an account, an ID-based key will count them twice and halve their LTV.
jamie@example.comBoth orders count toward one customer's LTVStep 2: Assign each customer a first-order month
Your cohort is the month of the customer's first paid order. Exclude cancelled, failed, and fully refunded orders before you find the first one. A customer whose first order was refunded hasn't really been acquired yet.
Step 3: Use net revenue, not gross
Subtract discounts, refunds, and ideally shipping and taxes. If you have COGS, calculate gross margin LTV as well. Revenue LTV overstates the value of heavily discounted cohorts, which matters a lot around BFCM.
Step 4: Build the cumulative LTV table
Rows are cohorts (first-order month). Columns are months since first order: M0, M1, M2, and on. Each cell is cumulative net revenue per customer for that cohort. A clean example:
| Cohort | Customers | M0 | M1 | M3 | M6 |
|---|---|---|---|---|---|
| March | 1,240 | $68 | $79 | $94 | $112 |
| April | 1,410 | $64 | $73 | $86 | $101 |
| May | 1,180 | $71 | $84 | $99 | n/a |
(Illustrative figures.) Leave immature cells blank. Never compare May's M3 to March's M6.
Step 5: Add a repeat rate table alongside it
Same rows, but each cell shows the share of the cohort that has placed a second order by that month. LTV can rise because a few customers spend a lot. Repeat rate tells you whether the cohort as a whole is coming back.
Step 6: Split cohorts by acquisition channel
This is where most non-Shopify LTV tracking stops, and where the decisions actually live. Tag each customer with the channel and campaign behind their first order, then rebuild the LTV table per channel. Now you can compare a Meta-acquired April cohort to a Google-acquired April cohort at M3. We cover the general logic in our post on understanding customer lifetime value.
Why the acquisition channel tag is the hard part on WooCommerce
WooCommerce stores often run a patchwork of plugins for pixels, UTMs, and analytics, and order source data can be inconsistent or missing. Platform pixels each claim their own conversions, so you can't just take Meta's or Google's word for which customers they acquired. Add up platform-reported conversions and they routinely exceed actual orders.
The more reliable approach is first-party, click-based attribution stored against the order itself. AdBeacon connects natively to WooCommerce and BigCommerce (as well as Shopify) and tracks every ad click through to the order, so each customer's first purchase is tied to a specific channel, campaign, and ad. It's click-only, meaning a channel gets credit only when the shopper actually clicked, not for an impression nobody can verify. You can compare first click, last click, linear, and Lighthouse models, use lookback windows up to 180 days, and see new vs returning customers, nCAC, and AdBeacon-measured ROAS next to platform-reported ROAS. If you're weighing platforms, our first-party data primer explains why the order record is the right source of truth for this.
Turning WooCommerce customer lifetime value into decisions
Once you have channel-level cohorts, three decisions get easier:
- Set CAC targets by channel. If Google-acquired customers reach $110 by M6 and Meta-acquired reach $85, they don't deserve the same CAC ceiling.
- Build better audiences. AdBeacon's prebuilt RFM segments (Champions, Loyal Customers, At Risk, Hibernating, and others) and lookalikes like High-LTV and Power Buyers come straight from the order data, so you can target the customer types your best cohorts contain.
- Judge promotions honestly. Compare your November cohort's M3 LTV against a non-promo cohort. BFCM 2026 runs November 27 to 30, so set up the cohort tags before then.
A $25 gap per customer by month six means each channel needs its own CAC target.
Luma, AdBeacon's AI assistant built on Claude, can answer questions like "which channel's customers have the highest repeat rate this quarter" directly from the attribution data, which saves the export-and-pivot routine. For the profit side, see why profitability-based reporting beats ROAS.
Closing
WooCommerce and BigCommerce stores can run the same cohort and LTV analysis Shopify brands do: email-keyed customers, first-order cohorts, net revenue, and, most importantly, a reliable acquisition channel on every first order. That last step is what turns an LTV table into a budget decision. If you want to see channel-level LTV built from your own WooCommerce or BigCommerce orders, book a live AdBeacon demo.
FAQ
How do I calculate WooCommerce customer lifetime value?
Group orders by billing email, assign each customer a first-order month, and sum net revenue per customer over time for each monthly cohort. Report LTV at fixed points like 30, 90, and 180 days rather than as one blended average.
Does WooCommerce have built-in cohort analysis?
The native Customers report shows per-customer spend and an average lifetime spend, but not a cohort table. Extensions such as WooCommerce's Customer Analytics add monthly cohort retention reporting.
How do you do BigCommerce cohort analysis?
Export orders with customer email, date, and net total, then build a table of first-order month by months since first order. BigCommerce's Ecommerce Insights add-on also reports LTV by store channel.
How do guest checkouts affect WooCommerce LTV?
If you key customers by account ID, guest orders and account orders from the same person get split, which understates LTV. Using billing email as the customer key avoids most of that.
Can I see LTV by ad channel on WooCommerce or BigCommerce?
Yes, if each first order carries reliable attribution data. AdBeacon provides click-based, first-party attribution natively on WooCommerce and BigCommerce, so cohorts can be split by channel and campaign.