Skip to main content
Card class: Non-HeroCategory: Ecommerce Platform

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.
What it countsCOUNT(distinct customer_id WHERE order_count > 1) / COUNT(distinct customer_id) over the window. Customer is identified by customer_id for registered customers, by billing_address.email (lowercased, trimmed) for guests. Email-based grouping is fragile: typos, plus-aliasing, and case-sensitivity edge cases all under-deduplicate.
VAT / tax treatmentn/a, this is a count metric.
Shippingn/a.
Discountsn/a.
RefundsRefunded orders are still counted as orders for repeat-rate purposes. A customer who placed two orders and refunded one still counts as repeat. This is the conventional retention definition; subtract refund-only customers manually if you want a “happy-customer” repeat rate.
Cancelled ordersExcluded. A Cancelled order never reached the customer; the order doesn’t count toward the customer’s order count.
Incomplete ordersExcluded. Abandoned-checkout artefacts do not count as orders.
Currencyn/a, this is a count metric.
Channels / sourcesAll channels aggregate. POS-customer matching to web-customer is a known gap on BigCommerce, the same physical customer who bought once on POS and once on web typically appears as two distinct customer_id records unless the merchant uses BC POS’s customer-link feature. This is a structural under-counting of repeat rate on multi-channel stores.
Customer identity gotchasThree: (1) registered → guest → guest is one customer, three IDs (the registered → guest transitions break linkage). (2) Email aliasing (susant+test@example.com vs susant@example.com) creates fake-distinct customers. (3) B2B Edition company-account customers may share a single customer_id across multiple buyers (procurement teams), inflating the per-customer order count without representing genuine repeat behaviour.
Window matters90D is the default but interpretation changes with window: 30D repeat rate measures fast repeat (subscription, consumables), 90D measures normal repeat (apparel, beauty), 365D measures annual repeat (furniture, B2B). Don’t compare across windows.
Time window90D (rolling 90 days; settings allow 30D, 90D, 180D, 365D).
Alert trigger<25% (Tier-1 retention floor). Below 25% on a 90D window is a structural retention problem; the store is leaking customers as fast as it acquires them.
Sentiment keyrepeat_rate
Rolesowner, marketing

Calculation

COUNT(orders > 1 by customerId) / CARDINALITY(customerId)
  WHERE date BETWEEN [period_start, period_end]

Worked example

A UK supplements brand on BigCommerce, 90-day window 14 Feb 26 to 14 May 26, mostly DTC subscription-style consumables.
Customer cohortDistinct customersCustomers with >1 orderRepeat rateNotes
Registered (logged-in)4,2002,10050.0%Subscription cohort, near the theoretical max
Guest checkout8,4001,00812.0%Includes inflation from email-aliasing
Blended (this card)12,6003,10824.7%Below the 25% Tier-1 threshold
What’s interesting:
  1. 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.
  2. 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).
  3. 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.
  4. 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).
What the merchant should do:
  1. Segment by registered vs guest first. This card alone tells you what; the segmentation tells you why.
  2. If registered repeat is healthy and blended is below 25%: invest in account-creation conversion, not retention.
  3. If registered repeat is also low (<35%): the retention problem is real. Look at first-order experience, second-order timing, lapsed-customer reactivation campaigns.
  4. If POS customers don’t link to web customers, the card under-reports cross-channel repeat. Enable BC POS customer-link feature; expect the rate to jump 3-5 percentage points for stores with strong omnichannel.
  5. 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

CardWhy pair it with Repeat Rate
BC Guest vs RegisteredThe diagnostic for whether repeat rate is structurally under-reported. Stores with >50% guest checkout will see this card depressed regardless of actual retention.
Customer CountThe denominator. Repeat rate alone hides whether customer base is growing, shrinking, or stable.
New CustomersInversely related. Rising new-customer volume mechanically depresses repeat rate even if retention is unchanged.
BC Customer TrendTime-series. Track repeat rate movement to see whether changes are recent or long-standing.
BC Top CustomersThe customers driving the repeat rate. Top 5% of repeat customers typically generate 30-50% of revenue.
Order FrequencyThe orders-per-repeat-customer metric. Repeat rate × frequency = total customer LTV input.
Churn RiskThe forward-looking complement. This card looks at past behaviour; churn risk predicts who’s about to stop being a repeat customer.
BC Channel Repeat RatePer-channel split. Marketplace channels (Amazon) typically have 5-10% lower repeat than DTC because customers there are buying the marketplace, not the brand.
AOVRepeat customers usually have higher AOV. If your AOV is rising and repeat rate is rising together, retention strategy is working.
Klaviyo Email Revenue ShareCross-connector. Email-driven revenue is overwhelmingly from repeat customers; Klaviyo share correlates strongly with this card.
Total RevenueAlways interpret repeat rate as a contributor to revenue. A 5pp increase in repeat rate typically lifts revenue 3-7% over 6 months.

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:
ReasonDirectionWhy
Customer-identity definitionEitherBC may treat email-only customers (no customer_id) as guests and exclude from repeat-rate; we deduplicate by email. The choice changes the rate by 2-8 percentage points on guest-heavy stores.
Window boundaryEitherWe use UTC; BC uses store time zone. Edge customers around boundary-day count differently.
POS linkageOurs lowerIf POS customers are not linked to web customers in BC POS settings, both we and BC under-count cross-channel repeat. The merchant can fix this in BC POS Settings → Customers.
B2B Edition company accountsOurs higherIf procurement teams share a company account, all their orders contribute to one customer’s count, inflating repeat rate. BC Insights may treat each buyer as a sub-customer; we treat the company account as the customer.
Cancelled order treatmentEitherWe exclude cancelled orders from per-customer order counts; some BC views include them. A customer with 1 confirmed + 1 cancelled order shows as repeat in BC’s view, single-order in ours.
Email casingSlight gapWe lowercase emails for deduplication; BC’s internal logic varies. Stores with lots of mixed-case email entries see 1-3% gap.
Cross-connector reconciliation (when both connectors are connected for this merchant):
CardExpected relationshipNotes
klaviyo.repeat_purchase_rateShould match within ±5% on stores using Klaviyo as the customer-data backboneKlaviyo’s repeat rate uses email-based customer ID universally, no registered/guest distinction. The two cards should converge on stores with strong email-capture at checkout.

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 per customer_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.

Tracked live in Vortex IQ Nerve Centre

Repeat Customer Rate is one of hundreds of KPI pulses Vortex IQ tracks across BigCommerce and 70+ other ecommerce connectors. Nerve Centre runs the detection layer; Vortex Mind investigates the cause when something moves; Ask Viq lets you interrogate any number in plain English. Start for free or book a demo to see this metric running on your own data.