Cohorts
Performance → Cohorts shows a retention matrix and cumulative LTV curves from your retained Shopify order history. The page selects the latest 24 cohort calendar months; each cohort keeps all its later observations. Shopify history backfill reaches store inception, without the ad platforms’ 24-month cap.
A cohort contains customers whose first eligible order falls in that calendar month in your Brand’s reporting timezone. A January buyer returning in March stays in January’s cohort. Customers are joined across selected stores by email hash; without an email hash, customer IDs stay local to their store.
Choose a dimension and value: all customers, first product, first-order discount
code, or first-order country. The value selector offers the top 25 values by
customer count. Several products in the first order put the customer into each
product cohort: product cohorts must not be added together. Product edits,
refund-preserved membership and your product identity settings apply. An empty
or excluded basket has no product row. Several discount codes form one sorted,
uppercase value such as A+B; no code is a separate value. Country uses shipping,
then billing, then ZZ for unknown. Acquisition channel is not available yet.
The matrix switches between retention, cumulative LTV, active customers and
orders. Retention is ordering customers divided by original cohort size;
Month 0 is 100%. Curves show cumulative LTV by month offset. Younger cohorts
stop at the observation boundary; * marks the current partial month.
LTV is cumulative revenue per original cohort customer, including the first order, net of discounts and refunds under your Brand Revenue Basis and channel policy. Cancelled and VOIDED orders remain members with their current value. Money is shown in Base currency.
Refund-date definition
Section titled “Refund-date definition”Refunds reduce LTV in the month they occur. A €100 purchase in Month 0, fully
refunded in Month 3, yields [100, 100, 100, 0]. The series restores retained
refunds to the order’s current value before subtracting them by date, so refunds
are not counted twice. A refund dated before its parent order month stays in acquisition Month 0.
When FX changes, an explicit refund-month reconciliation adjustment bridges
event-date FX to the current order’s purchase-date valuation. Later refunds do
not rewrite earlier cells when refund history is complete; policy changes,
order edits and newly recovered history can change the reconstruction.
Totals reconcile to Performance net revenue over full matched history only.
They do not equal independently queried historical store_revenue_net windows.
Reconciliation metadata uses unique eligible customers before dimension or date
filters; add excluded populations back to compare to the full retained-order
population. Make sure the selected accounts and their window coverage match.
If Performance excludes a backfilling account from that full window, the page
shows a reconciliation warning naming the account; it does not claim equality.
Coverage
Section titled “Coverage”The coverage strip reports unidentified orders, unknown customer history, accounts awaiting full-history verification, and missing refund amounts. Customers are eligible when the account’s current Shopify coverage reaches 2000-01-01, or retained order counts cover the synced lifetime customer order count. Incomplete first-order history is excluded, not treated as a new customer. One uncertain store makes a shared customer’s acquisition uncertain.
If retained refund rows cannot explain an order’s total refunded amount, its current value remains in its purchase month. That order and its missing refund amount are disclosed; no refund date is invented. Figures refresh with syncs and the ten-minute table cache. These are observed values, not predictive LTV.