Repeat Purchase Rate Calculator

Enter orders and unique customers over a window to compute repeat purchase rate, second-order rate, and average time to second purchase — with DTC category benchmarks to compare against.
Repeat Purchase Rate Calculator
A tool that divides repeat customers by total customers over a fixed window to show how many buyers come back.
Repeat purchase rate (RPR) is the share of customers in a given window who placed more than one order. This calculator takes two inputs from your Shopify, WooCommerce, or Magento export — total orders and unique customers over the same window — and returns RPR, the second-order rate, and average days to the second purchase.
Operators use it to sanity-check retention before feeding numbers into an LTV forecast, to compare against DTC category benchmarks, and to decide whether the post-purchase experience or replenishment cadence needs work. It is the fastest way to turn a raw order export into a defensible retention headline.
Calculate your repeat purchase rate
Total orders in window
Count every order placed in your chosen window (90, 180, or 365 days).
Unique customers in window
Distinct customers who placed at least one order in the same window.
Customers who placed a 2nd order
Distinct customers whose 2nd order fell inside the window.
Average days from 1st to 2nd order
days
Mean gap between first and second purchase for the customers above.
Repeat purchase rate
28.6%
Second-order rate
24.0%
Avg time to second purchase
47 months
Use the same window for all three inputs. If your window is 90 days, only count customers whose second order also lands inside that 90 days — otherwise the second-order rate will read low for reasons that have nothing to do with retention.
The calculator uses the standard order-based formula rather than a cohort-based one, because that's what shows up on almost every DTC dashboard. It is fast to compute from a raw export and directly comparable to published benchmarks. When you want the deeper view — retention by acquisition month — a cohort RPR view is the follow-up.
The formula behind the calculator
RPR = (Total Orders − Unique Customers) / Total Orders
Total Orders
Total orders
Every order placed inside the chosen window (90, 180, or 365 days).
Unique Customers
Unique customers
Distinct customers who placed at least one order in the same window.
RPR
Repeat purchase rate
Share of orders that came from customers with more than one purchase.
A skincare brand on Shopify runs the numbers for the last 180 days.
Total orders: 4200
Unique customers: 3000
→ 28.6%
Roughly 29% of orders came from customers already in the file — a healthy result for skincare, but the number hides whether new cohorts are retaining better or worse than older ones.
Two nuances trip up first-time users. First, the window matters — a 90-day RPR will always look lower than a 365-day RPR for the same store, so pick one and stick with it. Second, the sitewide number averages good and bad cohorts together; if acquisition mix has shifted, sitewide RPR can stay flat while the newest cohort is quietly falling off a cliff.
Benchmarks: what a good RPR looks like by category
Typical 365-day repeat purchase rate ranges by DTC category
| Category | Low | Median | Top quartile |
|---|---|---|---|
| Apparel & accessories | 18% | 26% | 38% |
| Beauty & skincare | 28% | 42% | 58% |
| Supplements & vitamins | 35% | 52% | 70% |
| Coffee & consumables | 40% | 58% | 75% |
| Home & décor | 12% | 19% | 28% |
| Electronics & accessories | 9% | 14% | 22% |
| Pet food & supplies | 38% | 55% | 72% |
Median 365-day RPR by DTC category
Consumables sit at the top for an obvious reason: the product runs out. Apparel and one-time categories rely on brand affinity and new drops instead of replenishment. When you compare your number to the table, match category and window before drawing conclusions — a 30% RPR is a win for apparel and a red flag for coffee.
How to act on the number
If RPR is below your category median, the first move is to split the sitewide number by acquisition cohort. A cohort view often reveals that a specific paid channel — usually a broad prospecting campaign — is dragging the average down while your organic and email-acquired customers retain fine.
If RPR is healthy but second-order rate is weak, the leak is in the first 60 days post-purchase. Audit the transactional emails, the unboxing insert, and the day-30 flow. If time to second purchase is longer than your product's usable life (e.g. 90 days on a 60-day skincare SKU), the replenishment reminder is firing too late.
Once you trust the number, feed it into an LTV forecast — but only after you've decided whether to include subscription orders. Subscription RPR overstates underlying product-market fit because the reorder is a default, not a decision.
The window trap
Running RPR on a rolling 90-day window right after a big acquisition push will always look terrible — you've stuffed the denominator with brand-new customers who haven't had time to reorder. Either use a longer window, or restrict the denominator to customers whose first order was at least 60 days before the window's end.
Frequently asked questions
RPR is order-based: it measures the share of orders that came from customers with more than one purchase. Second-order rate is customer-based: it measures the share of customers who placed a specific second order. Second-order rate is usually the more honest board-level number because it can't be inflated by a small group of very frequent buyers.
365 days is the default for annual reporting and LTV work. 180 days is best for operational tracking on categories with a 2–4 month reorder cycle. 90 days is only useful for consumables and subscription-heavy stores where the reorder cycle is short. Whatever you pick, keep it consistent — mixing windows makes trend lines meaningless.
Shopify flags any order after a customer's first as a repeat, but the definition breaks down in edge cases: guest checkouts using a new email create phantom new customers, and returns/exchanges can inflate order counts. Before calculating, dedupe by email and exclude orders with a status of refunded or cancelled.
Report both — one number with subscription reorders included, one without. Subscription orders are essentially auto-renewals, so including them makes RPR look great but tells you nothing about whether customers would actively choose to come back. The subscription-excluded number is the better measure of product-market fit.
Sitewide RPR averages every cohort together, which can hide a retention cliff in newer cohorts if older ones are still contributing repeat orders. Cohort RPR groups customers by acquisition month and tracks each group over time, revealing whether retention is improving or degrading. If sitewide is flat but the last three monthly cohorts are 30% below the older ones, you have a problem.
Yes. The math is platform-agnostic — you just need total orders and unique customers over the same window. Both WooCommerce (via the Analytics → Orders report) and Magento (via Sales → Orders with a customer-group filter) can produce the two numbers directly. On Shopify, the ShopifyQL customers report is the fastest source.
The simplest LTV model multiplies average order value by expected order count, which is derived from RPR and repeat frequency. If your 365-day RPR is 40% and repeat buyers average 2.3 orders in year one, expected orders per acquired customer is 1 + (0.40 × 1.3) ≈ 1.52. Multiply by AOV and gross margin for a defensible year-one LTV.
Almost always because acquisition is outpacing retention. New customers stuff the denominator faster than repeats can accumulate, so the ratio drops even when absolute repeat revenue is rising. This is why cohort RPR matters — it strips out the acquisition-mix effect and shows whether retention itself is degrading.
Match it to your product's usable life. For a 30-day skincare SKU, 25–40 days is healthy. For apparel, 60–120 days is normal and tied to seasonal drops. For coffee subscriptions the natural cadence is 28–35 days. If time-to-second exceeds usable life, your replenishment reminders are firing after the customer has already bought elsewhere.
Monthly is the right cadence for a rolling 365-day number — frequent enough to spot cohort-level degradation, slow enough that noise from a single big week doesn't distort the trend. Recalculate immediately after any major acquisition-channel change; a shift in traffic mix can move RPR within a single cohort.
Start tracking the metric that matters
Free for 30 days. No credit card. Connect your site in 4 minutes and see the one metric driving revenue.