Lifetimely: Repurchase Rate and Repurchase Rate Breakdown
Repurchase Rate and Repurchase Rate Breakdown
At a glance
Repurchase Rate follows monthly cohorts of new and returning customers through fixed repurchase windows. Repurchase Rate Breakdown compares that behavior by product, promotion, customer, or geography attributes so you can find where retention is strongest and choose when or where to intervene.
Availability and data freshness
Availability and prerequisites: The current reports request Shopify data in a Shopify store context and Amazon data when the active store context includes Amazon.
Freshness and history: The fallback range is the previous 365 days through yesterday in the store timezone. A date range previously chosen in another report can override that fallback.
On this page
- Use the shared data contract
- Track monthly cohorts in Repurchase Rate
- Understand Repurchase Rate metrics
- Compare dimensions in Repurchase Rate Breakdown
- Understand Breakdown columns
- Resolve differences
Access both reports from Customer behaviour (the UI uses British spelling). Select Repurchase Rate or Repurchase Rate Breakdown.
Shared data contract
Both reports send the selected store, dates, store settings, store-wide prefilters, platform context, and report-level complex filters to the Customer Behavior reporting API. They then count customer-associated commerce orders; they do not use revenue, cost, ad-spend, or forecast data.
- Prefilters establish the base population. Enabled status, channel, order-tag, and customer-tag exclusions are applied automatically. Because these rules can remove a customer's earliest order, they can change the reported first order, new-versus-returning classification, cohort membership, and repurchase rate. Review report prefiltering before reconciling counts.
- Complex filters narrow the analysis. Use the filter button on either page for a temporary report-level question.
- Dates anchor customers; they do not necessarily cap follow-up purchases. Repurchase Rate groups qualifying anchor activity into months. Breakdown explicitly includes new customers whose first order is in the selected range or returning customers whose repeat order is in the selected range.
- Customer identity is required. These rules can make customer totals differ from order totals.
- Currency does not affect these counts or percentages. The date picker constructs day boundaries in the active store timezone.
Repurchase Rate
Open Customer behaviour > Repurchase Rate (/customer_behaviour/repurchase_rate). The page makes two separate API requests over the same dates and filters:
- New Customer Repurchase Rate groups customers by first-order month and measures whether they make another purchase within 30, 60, 90, 180, or 365 days after that order.
- Returning Customer Repurchase Rate groups customers by the month in which they place a repeat order and measures whether they purchase again within each window after that repeat order.
One chart point therefore represents one monthly anchor cohort and one repurchase window. It is not the percentage of all customers active in that calendar month.
Use the Repurchase Rate controls and chart
- Time Period: Choose custom dates or the shared presets Last 6 months, Last 12 months, This year, or Since 2020 through Since 2025. Presets end yesterday. The initial fallback begins 365 days ago and ends yesterday; the most recently selected canonical report range is remembered across reports and can replace it.
- Filters: Apply complex report filters to both the new- and returning-customer sections. Store-wide prefilters, store timezone, and Shopify/Amazon context are applied automatically rather than changed on this page.
- Metric cards: Each section shows an overall rate for 30, 60, 90, 180, and 365 days. These cards pool only cohorts old enough to have completed the applicable window; they do not average the visible monthly percentages.
- Area chart: Each colored series is a repurchase window and each x-axis label is an anchor month. Select legend items to hide or reveal a series. Hover a month to see the cohort count, repurchaser count, and percentage for every visible window.
- Incomplete cohorts: A dashed line marks recent cohorts that have not had the full window to repurchase. Their chart values are partial and can rise as the cohort matures; they are excluded from the corresponding overall card.
- Chart download: The chart menu can print or download PNG, JPEG, or SVG. The current implementation gives both chart downloads a new-customer title and filename, even from the returning-customer section; verify the section before sharing the file.
- CSV export: Each section exports every returned month with cohort counts, repurchaser counts, and rates for all five windows. The current returning-customer CSV also retains first-order-oriented column headings; interpret its month and cohort columns using the returning-customer definition above.
- Ask AI: The report supplies both result sets plus the active date range and number of report filters as page context when this feature is available.
Caution: A longer-window line should not be compared between recent and mature cohorts as if both had equal observation time. Use solid-line cohorts or the mature-cohort cards for that comparison.
Repurchase Rate metrics and calculations
| Field | Definition |
|---|---|
| Anchor month | First-order month for New Customer Repurchase Rate; repeat-order month for Returning Customer Repurchase Rate. The chart labels this second mode Repurchase order month. |
| Cohort customers | Distinct qualifying customers anchored to that month. |
| Repurchasers within N days | Customer count returned for another qualifying purchase within 30, 60, 90, 180, or 365 days after the anchor order. |
| Monthly repurchase rate | repurchasers within N days / cohort customers × 100. The UI displays one decimal place. A zero-customer denominator displays 0% on the chart and in CSV. |
| Overall repurchase rate | sum of repurchasers in mature cohorts / sum of customers in those same mature cohorts × 100, displayed to one decimal place. Cohort maturity is evaluated from the cohort month's end against the current date separately for each window. No qualifying mature denominator displays N/A. |
The 365-day card has an additional display rule: it excludes all cohorts when the selected start date is on or after approximately one year ago. With the default one-year range, N/A is therefore expected even though the chart can show partial 365-day values.
Worked example
Suppose two mature 60-day cohorts contain 100 and 50 customers. If 30 and 10 customers repurchase within 60 days, the monthly rates are 30% and 20%, while the overall card is (30 + 10) / (100 + 50) = 26.7%. It is not the unweighted mean of the monthly rates, which would be 25%.
Use the overall card to summarize retention across the selected mature population, then use the monthly points to locate the acquisition cohort that changed. Apply a product or channel-related complex filter to test a hypothesis, or continue to Breakdown to compare dimension rows.
Repurchase Rate Breakdown
Open Customer behaviour > Repurchase Rate Breakdown (/customer_behaviour/repurchase_rate_breakdown). The initial control state is Unlimited, Product, New, color scale on, and Customers sorted descending. The date range follows the same remembered-range behavior as Repurchase Rate.
Use the Breakdown controls and table
- First order date / Previous order date: In New mode, include customers whose first order is within these dates. In Returning mode, include returning customers who placed a repeat order within these dates. Breakdown-specific presets are Last 3 months, Last 6 months, Last 12 months, Last 24 months, Last 36 months, and Last 48 months; all end yesterday.
- Repurchase window (days): Choose 30, 60, 90, 180, 365, or Unlimited. This changes how long after the anchor order a later order can qualify. Unlimited does not normalize for cohort age.
- Breakdown by: Choose Product, Product tag, Product type, Product variant, Vendor, SKU, Country, Customer tag, First-order tag, or First-order discount code. In Returning mode, the last two controls are labeled Order tag and Order discount code.
- Customer type: Switch between New (first-to-second order analysis) and Returning (repeat-order-to-next-order analysis). This also changes the date anchor and relevant tooltips.
- Show color scale: Turn relative cell coloring on or off. The scale uses the minimum and maximum among all returned rows, not only the current page, for each of the three rate/time columns. It is for comparison within the current result and is not a fixed performance benchmark.
- Filters: Apply report-level complex filters after the prefiltered base population. This control is independent of Breakdown by.
- Sorting and pagination: Select any column heading to sort all returned rows locally. Selecting the same heading reverses direction; selecting a different heading starts ascending. The table initially shows 10 rows per page and allows the page size to be changed.
- CSV export: Download all returned rows, not just the visible page, in the active table sort order and with the active dates, customer type, repurchase window, breakdown, and filters.
- Ask AI: When available, Ask AI receives the returned table and page context including dates, breakdown, customer type, and repurchase window.
Note: The first column header remains First Order Product or Previous Order Product even when another breakdown is selected. Read its values as the active Breakdown by dimension, not necessarily as products.
Repurchase Rate Breakdown column reference
One row represents one returned dimension value associated with the first order in New mode or the previous repeat order in Returning mode. A customer or order can have multiple products or tags, so rows can overlap and must not be summed as unique customers without verifying the dimension's API rules.
| Column | Definition |
|---|---|
| First Order Product / Previous Order Product | Value for the selected breakdown dimension on the anchor order or customer. |
| Customers | Qualifying new or returning customers assigned to the row. |
| Repurchasers | Customers with another qualifying order inside the selected repurchase window after their first order (New) or previous repeat order (Returning). |
| Repurchased Anything | repurchasers / customers × 100, rounded to a whole percentage. A zero denominator or missing repurchaser count displays 0%. |
| Repurchased Same Product | customers returned by the API as repurchasing the same product / customers × 100, rounded to a whole percentage. |
| Time Between Orders | API-supplied average days from first to second order in New mode or previous to next order in Returning mode. A missing value is blank in the table but exported as 0. |
Worked Breakdown workflow
- Choose New, Product, and a fixed window that matches your normal replenishment cycle—for example, 90 days.
- Sort Repurchased Anything descending to find strong first-order products, then compare Repurchased Same Product to distinguish replenishment from cross-sell behavior.
- Use Time Between Orders to choose when to send replenishment or cross-sell messaging.
- Repeat with an equally mature date range or customer segment. Do not use Unlimited to compare recent and old anchor cohorts because older customers have had more time to return.
- Export the complete sorted result, then verify candidate rows against qualifying customers and orders in your commerce platform. The report currently has no order-level drill-down.
For example, if a row has 200 customers, 50 repurchasers, and 30 same-product repurchasers, the table displays 25% for Repurchased Anything and 15% for Repurchased Same Product. The latter is a share of all 200 row customers, not 30/50 of repurchasers.
Resolve differences
Repurchase Rate does not match Repurchase Rate Breakdown
The reports should not be expected to match row for row:
- Repurchase Rate groups by monthly anchor cohort and has only fixed 30–365-day windows; Breakdown groups by a selected dimension and can use Unlimited.
- Repurchase Rate overall cards exclude immature cohorts separately for each window. Breakdown does not apply an equivalent maturity adjustment in the UI.
- Breakdown rows can overlap when an anchor order has several products or tags, and its percentages are rounded to whole numbers. Repurchase Rate monthly and overall values use one decimal place.
- Align the store, customer mode, dates, fixed window, prefilters, and complex filters before comparing. Then compare counts rather than adding overlapping dimension rows.
Customer or order counts differ from other reports
These reports use anchored customer cohorts, not orders placed during a calendar period. A repurchase may fall outside the anchor month, one customer can place several orders but counts once in a window, and prefilters can redefine the first qualifying order. Time between orders instead analyzes selected order intervals, while Cohorts accumulates value and other metrics over cohort time.
Data is missing or unexpectedly low
- Confirm the active store and remembered date range; both can differ from the fallback.
- Review every store-wide prefilter, especially customer/order tags, status, channel, cancellation, and zero-value exclusions.
- Clear or align the page's complex filters.
- For a missing overall card, check whether any cohort has matured through that window and remember the special one-year rule for the 365-day card.
- For Breakdown, confirm the selected customer type, repurchase window, and dimension. A blank time-between-orders value is different from the CSV's exported zero fallback.
Next actions
- Choose lifecycle timing with Time between orders.
- Compare accumulated value by acquisition cohort.
- Use Repurchase Rate Breakdown to find a strong product or segment, then compare fixed-window results before launching a replenishment, cross-sell, or win-back campaign.