How to use RPR Measurement
A practical guide to measuring repeat purchase rate without fooling yourself — window selection, cohort vs sitewide, customer vs order denominators, and the platform pitfalls that quietly inflate or deflate the number.
RPR Measurement
The methodology for computing repeat purchase rate accurately — choosing a time window, cohort scope, and denominator that reflect real buying behaviour.
RPR measurement is the set of decisions that turn raw order data into a defensible repeat purchase rate number. The headline formula — repeat customers divided by total customers — hides three judgement calls: which time window you measure over, whether you compute sitewide or by acquisition cohort, and whether your denominator counts customers or orders.
Done well, RPR becomes a leading indicator of brand health and a reliable input for LTV models. Done casually, it produces a number that swings wildly between dashboards and gives no one a reason to act. This guide covers the choices that matter and the platform-specific traps in GA4 and Shopify that distort the result.
Most teams quote a single repeat purchase rate number and assume everyone in the room means the same thing. They don't. A 28% RPR computed sitewide on all-time orders is a completely different signal to a 28% 90-day cohort RPR — and only one of them tells you whether last quarter's acquisition is paying back.
The goal of this guide is to make your RPR number boring: stable across reporting tools, comparable across months, and usable as an input to retention experiments and LTV models. We'll work through window choice, cohort framing, denominator selection, and the platform pitfalls that quietly break all three.
Choosing the right measurement window
The measurement window is the time range in which a second purchase has to happen to count as a repeat. Shorter windows react faster but undercount slow categories. Longer windows are stable but lag — by the time a 365-day RPR moves, the cohort that moved it is a year old.
A 60-day window suits consumables — coffee, supplements, skincare refills — where the natural repurchase cycle is weeks. A 90-day window is the default for general DTC apparel and beauty: long enough to capture most repeats, short enough to act on. A 365-day window suits considered purchases like footwear, electronics accessories, or premium home goods.
Whichever window you pick, anchor it to the first order, not the calendar. "Repeat within 90 days of first order" is a clean cohort statistic. "Repeat in Q2" mixes customers acquired in Q1, Q2 and earlier years and tells you almost nothing about acquisition quality.
The trailing-window trap
A rolling "repeat rate over the last 90 days" sounds intuitive but conflates new and old customers. A first-time buyer from day 1 and a five-year veteran both contribute. Anchor windows to the first-order date so every customer gets the same shot at being a repeater.
Cohort RPR vs sitewide RPR
Sitewide RPR — repeat customers divided by all customers ever — is the number Shopify shows on its overview dashboard. It's useful as a single health score, but it drifts upward forever because the denominator stops adding new customers proportional to acquisition rate. A brand that scales paid acquisition aggressively will see sitewide RPR fall even if retention is improving.
Cohort RPR fixes this. You group customers by the month they made their first purchase, then measure what share of that cohort made a second purchase within your chosen window. The result is a stable per-cohort number you can plot over time and compare directly. It's also the input shape that feeds straight into cohort LTV curves and time-to-second-purchase analysis.
Cohort 90-day RPR vs sitewide RPR over 12 months
Cohort 90-day RPR
Sitewide RPR (all-time)
The chart shows the diagnostic value of separating the two views. Retention is genuinely improving — cohort RPR climbs from 22% to 31% — but sitewide RPR falls because new acquisition is diluting an all-time denominator full of long-tail one-and-done buyers. Quoting only the sitewide number would have a Head of E-commerce convinced retention was broken.
Customer-count vs order-count denominators
The standard formula uses customer counts: customers with two or more orders, divided by total customers. A second, less common variant uses order counts: repeat orders divided by total orders. These are not interchangeable. The order-count version tells you what share of orders come from returning buyers — useful for forecasting and inventory — but it's not a retention metric.
A boutique selling €180 dresses might have 25% customer-count RPR and 45% order-count RPR because the few repeat customers buy three or four times each. Both numbers are correct; they answer different questions. When you publish RPR, name the denominator explicitly so nobody reverse-engineers the wrong conclusion.
Typical 90-day cohort RPR ranges by DTC vertical
| Vertical | Lower quartile | Median | Upper quartile |
|---|---|---|---|
| Coffee & consumables | 28% | 38% | 48% |
| Beauty & skincare | 20% | 28% | 36% |
| Supplements | 30% | 42% | 55% |
| Apparel (mid-tier) | 12% | 18% | 26% |
| Footwear | 8% | 14% | 22% |
| Home & decor | 6% | 11% | 18% |
| Electronics accessories | 10% | 16% | 24% |
Use these ranges as sanity checks, not targets. A premium apparel brand with a 90-day cohort RPR of 11% is roughly on-vertical; the same number for a supplement brand suggests a serious problem with subscription conversion or first-order experience. Pair the number with time-to-second-purchase to see whether your repeaters are coming back faster or slower than the median customer in your category.
Platform pitfalls in GA4 and Shopify
GA4's "Returning users" metric is not a repeat purchase metric. It counts device-level returning sessions, not customers with two paid orders. A user who window-shops three times before their first purchase counts as returning. Use GA4 for traffic-side retention signals and source-of-truth order data from Shopify (or your OMS) for RPR itself.
Shopify's customer record has its own quirks. Guest checkouts with the same email but different capitalisation can create duplicate customer rows, inflating the denominator and depressing RPR. Subscription orders processed through ReCharge or similar apps may or may not register as separate orders depending on configuration. Reconcile against raw order exports before publishing the number.
Reconciliation checklist before you publish RPR
1) De-dupe customers by normalised email. 2) Decide whether subscription rebills count as repeat orders and apply it consistently. 3) Exclude refunded or cancelled orders from the numerator. 4) Anchor windows to first-order date, not calendar quarter. 5) Publish window, cohort scope, and denominator alongside the number — never the bare percentage.
Frequently asked questions
Repeat purchase rate is customers with two or more orders divided by total customers, expressed as a percentage. For meaningful comparison, restrict both numerator and denominator to a defined cohort and time window — for example, customers acquired in March whose second order arrived within 90 days.
Match the window to your repurchase cycle. Consumables like coffee and supplements work with 60 days, general apparel and beauty with 90 days, and considered categories like footwear or home goods with 365 days. The window should be long enough to capture most genuine repeats but short enough that the number reacts to recent changes.
Repeat purchase rate measures whether customers came back at all. Retention rate, in the subscription sense, measures whether they kept an active relationship — usually a paid plan. For one-off DTC purchases the two collapse into the same idea, but if you run subscriptions, treat them separately. See the dedicated comparison page for the operational differences.
Use cohort RPR for trend analysis, acquisition quality checks, and LTV model inputs. Use sitewide RPR as a single health score on an executive dashboard. They answer different questions, and a scaling brand will see them move in opposite directions — which is the most common source of confusion in retention reporting.
Shopify counts customers with multiple paid orders. GA4 counts returning users — device-level sessions, not orders. The two are measuring different things and should not be reconciled. Use Shopify (or your OMS) as the source of truth for RPR and treat GA4's metric as a traffic signal.
It depends on the question you're answering. If you want to measure whether a customer chose to come back, treat the initial subscription opt-in as the second purchase and ignore subsequent rebills. If you're forecasting revenue, count each rebill. Pick one rule and apply it consistently across reports.
Recompute cohort RPR monthly once a cohort has matured past its window. For 90-day cohorts that means the January cohort is final in early May. Reporting before the window closes gives you a partial number that will only ever revise upward, which is misleading.
It depends entirely on your vertical and window. A 90-day cohort RPR of 25% is strong for mid-tier apparel, average for beauty, and weak for supplements. The benchmark table on this page gives ballpark ranges; compare like-for-like before celebrating or panicking.
Cohort RPR is one of the primary inputs to a cohort LTV curve: it determines what share of a cohort generates a second order, which combined with average order value and time-to-second-purchase yields the second-purchase revenue layer. Get RPR measurement right before you trust any LTV number.
Yes — and you should. The biggest non-discount levers are post-purchase email sequences timed to your category's natural repurchase cycle, product-education content that reduces buyer regret, and a frictionless reorder path. Discount-led retention compresses margin and trains customers to wait for the next offer.
Test ideas before you ship them
Run unlimited A/B tests, attach hypotheses to outcomes, and build a searchable archive of what works — and what doesn't.