At a glance
The percentage of distinct customers in the period who placed more than one order. The single most predictive customer-quality KPI in commerce: a store with a 35% repeat rate has structurally lower CAC pressure than a store at 15%, regardless of paid-acquisition spend. On BigCommerce specifically, this card has a wrinkle, registered customers are tracked accurately by customer_id, guest customers can only be deduplicated by email, so stores with high guest-checkout rates systematically under-report repeat behaviour. Understanding the registered-versus-guest split (see BC Guest vs Registered) is essential to reading this number correctly.
Calculation
Worked example
A UK supplements brand on BigCommerce, 90-day window 14 Feb 26 to 14 May 26, mostly DTC subscription-style consumables.
What’s interesting:
- The blended 24.7% triggers the alert, but the registered cohort alone is 50% (excellent). The store’s actual retention is healthy; the card under-reports because guest checkouts dilute the figure. Stores with high guest-checkout rates need to read repeat-rate alongside BC Guest vs Registered or they’ll mistakenly conclude they have a retention problem.
- Guest 12% repeat is structurally suspicious. Guests should ideally show a 20-30% repeat rate (within email-deduplication accuracy); 12% suggests email-aliasing or typos are inflating the distinct-guest count and depressing the rate. Audit a sample of guest emails: typically 5-15% are duplicates of registered customers (same email, different cookie session creates a guest checkout against an account that exists).
- Subscription stores should target 50%+ on registered. Below 30% on the registered cohort means subscriptions aren’t sticking; investigate first-order experience (delivery time, packaging, product quality) and reach out to lapsed subscribers.
- The 24.7% blended is misleading for retention strategy. A merchant who reads only this card and concludes “I need to invest in retention” might pour budget into loyalty-app spend that won’t move this number, because the bottleneck is guest-to-registered conversion, not retention activity. The actual lever is reducing guest-checkout rate (offer post-purchase account creation, surface guest-order history retrieval, reduce friction in account creation).
- Segment by registered vs guest first. This card alone tells you what; the segmentation tells you why.
- If registered repeat is healthy and blended is below 25%: invest in account-creation conversion, not retention.
- If registered repeat is also low (<35%): the retention problem is real. Look at first-order experience, second-order timing, lapsed-customer reactivation campaigns.
- If POS customers don’t link to web customers, the card under-reports cross-platform repeat. Enable BC POS customer-link feature; expect the rate to jump 3-5 percentage points for stores with strong omnichannel.
- Pair with BC Customer Trend and BC New Customers to see whether the repeat rate is dropping because retention got worse or because new-customer volume rose (mathematical artefact).
Sibling cards merchants should reference together
Reconciling against the vendor’s own dashboard
Where to look in BigCommerce’s own dashboard: The closest native view is BC Control Panel → Analytics → Insights → Customers → Returning Customers (Plus and Enterprise tiers). The “Returning customer rate” metric is BC’s own version of repeat rate; it uses a slightly different denominator definition (customers with any orders in the period regardless of when they joined). For an export, Customers → Customers → Filter: number of orders > 1. For Standard tier (no Insights), use the customer list with the order-count filter and divide manually. Why our number may legitimately differ from the vendor’s:
Cross-connector reconciliation (when both connectors are connected for this merchant):
Known limitations / merchant FAQs
My repeat rate dropped 8 points last month, what should I check first? In order: (1) did new-customer volume rise (mathematical dilution), (2) did a Channel Manager integration go live (marketplace customers have lower repeat), (3) was there a major paid-acquisition push (paid-acquisition customers repeat at half the rate of organic), (4) did your loyalty / email program break (Klaviyo flow disabled, abandoned-cart sequence broken), (5) did first-order experience degrade (slower fulfilment, packaging issue). Run BC New Customers and Customer Trend for the same period; if new-customer volume rose proportionally, the dilution is the cause and the underlying repeat behaviour hasn’t changed. What’s a good repeat rate? Wildly category-dependent. Subscription / consumables: 50-65% on registered customers. Apparel / accessories: 25-35%. Furniture / one-off purchases: 8-15%. B2B: 60-80% (procurement is structurally repeat). Compare to your category, not to a global benchmark. Why is my registered-customer repeat rate so much higher than blended? Because guests dilute the figure. A guest who shops once, then comes back as a registered customer the second time, looks like two distinct customers each with one order. The actual person was a repeat buyer; the data shows two non-repeat buyers. Convert guests to registered at the post-purchase moment to capture this signal cleanly. Should I fire a marketing campaign at non-repeat customers? Almost certainly yes. The non-repeat cohort is the highest-leverage retention target on most stores. A 5pp lift in repeat rate via reactivation campaigns is achievable with email re-engagement flows; the lift compounds over 6-12 months. Why does this card show 24% but my Klaviyo dashboard shows 38%? Klaviyo deduplicates customers by email universally (no registered-vs-guest distinction) and uses a 365-day window by default. Different definition, different number. Use Klaviyo for retention strategy decisions; use this card for BC-native ops decisions; reconcile only after aligning windows and definitions. Does this include refunded customers? Yes. A customer who placed two orders and refunded one still counts as repeat. If you want to exclude refund-only customers, use Ask Viq: “show repeat rate excluding customers whose only repeat order was refunded”. My subscription store has 65% repeat rate and the alert still fires, why? The alert threshold is configurable per store. Subscription stores typically set the floor higher (40-45%) because anything below that flags subscription churn. Configure in Settings → Alerts → Repeat Rate Threshold. How does B2B Edition affect this card? B2B Edition orders count normally. If you operate company accounts (multiple buyers percustomer_id), the buyer’s procurement team’s combined activity inflates the repeat rate. For a clean per-buyer view, segment by individual user via Ask Viq.
Can I see repeat rate by acquisition channel?
Yes via Ask Viq: “show repeat rate by first-order channel for last 90 days”. Typical pattern: organic-first customers repeat at 30-40%; paid-first customers repeat at 12-20%; email-first (newsletter signup, then converted) repeat at 35-50%. The split tells you where to invest acquisition spend.
Why does my POS-only customer not show as repeat even though they buy weekly?
BC POS doesn’t always link to web customer records unless the cashier looks up the customer at checkout. Train POS staff to look up customer by email or phone at every transaction; this card jumps 3-5pp on most multi-channel stores after this is enabled.
Does this respect customer-group filtering?
No, it aggregates all groups. Use Ask Viq for filtered views: “repeat rate for customer_group_id 5 over last 90 days”.
My CFO wants annual repeat rate, can I get that?
Yes, change the time window in card settings to 365D. Caveat: 365D repeat is mechanically higher than 90D repeat (more time for the second order to land); compare apples to apples by always using the same window for trend analysis.
The card shows 0% repeat rate, what’s wrong?
Either the date window is too short (a 7D window will show near-zero repeat for most categories), or there’s a data issue with customer_id or email fields not being populated. Check a sample of recent orders to confirm customer_id is populated for registered customers; if blank, BC’s customer creation hook may be misconfigured.