> ## Documentation Index
> Fetch the complete documentation index at: https://docs.vortexiq.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Repeat Customer Rate, BigCommerce

> Repeat Customer Rate for BigCommerce stores. Tracked live in Vortex IQ Nerve Centre. How to read it, why it matters, and how to act on it.

**Metrics type:** [Supporting Metrics](/nerve-centre/overview#metrics-types-explained)  •  **Category:** [Ecommerce Platform](/nerve-centre/connectors#connectors-by-type)

## 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](/nerve-centre/kpi-cards/bigcommerce/guest-vs-registered-orders)) is essential to reading this number correctly.

|                               |                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| ----------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **What it counts**            | `COUNT(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 treatment**       | n/a, this is a count metric.                                                                                                                                                                                                                                                                                                                                                                                                              |
| **Shipping**                  | n/a.                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| **Discounts**                 | n/a.                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| **Refunds**                   | **Refunded 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 orders**          | Excluded. A `Cancelled` order never reached the customer; the order doesn't count toward the customer's order count.                                                                                                                                                                                                                                                                                                                      |
| **`Incomplete` orders**       | Excluded. Abandoned-checkout artefacts do not count as orders.                                                                                                                                                                                                                                                                                                                                                                            |
| **Currency**                  | n/a, this is a count metric.                                                                                                                                                                                                                                                                                                                                                                                                              |
| **Channels / sources**        | All 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 gotchas** | Three: (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 matters**            | 90D 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 window**               | `90D` (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 key**             | `repeat_rate`                                                                                                                                                                                                                                                                                                                                                                                                                             |
| **Roles**                     | owner, 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 cohort         | Distinct customers | Customers with >1 order | Repeat rate | Notes                                         |
| ----------------------- | ------------------ | ----------------------- | ----------- | --------------------------------------------- |
| Registered (logged-in)  | 4,200              | 2,100                   | **50.0%**   | Subscription cohort, near the theoretical max |
| Guest checkout          | 8,400              | 1,008                   | **12.0%**   | Includes inflation from email-aliasing        |
| **Blended (this card)** | **12,600**         | **3,108**               | **24.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](/nerve-centre/kpi-cards/bigcommerce/guest-vs-registered-orders)** 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-platform 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](/nerve-centre/kpi-cards/bigcommerce/customer-acquisition-trend) and [BC New Customers](/nerve-centre/kpi-cards/bigcommerce/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

| Card                                                                                              | Why pair it with Repeat Rate                                                                                                                                        |
| ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [BC Guest vs Registered](/nerve-centre/kpi-cards/bigcommerce/guest-vs-registered-orders)          | The diagnostic for whether repeat rate is structurally under-reported. Stores with >50% guest checkout will see this card depressed regardless of actual retention. |
| [Customer Count](/nerve-centre/kpi-cards/bigcommerce/unique-customers)                            | The denominator. Repeat rate alone hides whether customer base is growing, shrinking, or stable.                                                                    |
| [New Customers](/nerve-centre/kpi-cards/bigcommerce/new-customers)                                | Inversely related. Rising new-customer volume mechanically depresses repeat rate even if retention is unchanged.                                                    |
| [BC Customer Trend](/nerve-centre/kpi-cards/bigcommerce/customer-acquisition-trend)               | Time-series. Track repeat rate movement to see whether changes are recent or long-standing.                                                                         |
| [BC Top Customers](/nerve-centre/kpi-cards/bigcommerce/top-customers)                             | The customers driving the repeat rate. Top 5% of repeat customers typically generate 30-50% of revenue.                                                             |
| [Order Frequency](/nerve-centre/kpi-cards/bigcommerce/customer-order-frequency)                   | The orders-per-repeat-customer metric. Repeat rate × frequency = total customer LTV input.                                                                          |
| [Churn Risk](/nerve-centre/kpi-cards/bigcommerce/customer-churn-risk)                             | The forward-looking complement. This card looks at past behaviour; churn risk predicts who's about to stop being a repeat customer.                                 |
| [BC Channel Repeat Rate](/nerve-centre/kpi-cards/bigcommerce/repeat-customer-rate-by-channel)     | Per-channel split. Marketplace channels (Amazon) typically have 5-10% lower repeat than DTC because customers there are buying the marketplace, not the brand.      |
| [AOV](/nerve-centre/kpi-cards/bigcommerce/average-order-value)                                    | Repeat customers usually have higher AOV. If your AOV is rising and repeat rate is rising together, retention strategy is working.                                  |
| [Klaviyo Email Revenue Share](/nerve-centre/kpi-cards/bigcommerce/email-attributed-revenue-share) | Cross-connector. Email-driven revenue is overwhelmingly from repeat customers; Klaviyo share correlates strongly with this card.                                    |
| [Total Revenue](/nerve-centre/kpi-cards/bigcommerce/total-revenue)                                | Always 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:**

| Reason                           | Direction   | Why                                                                                                                                                                                                                         |
| -------------------------------- | ----------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Customer-identity definition** | Either      | BC 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 boundary**              | Either      | We use UTC; BC uses store time zone. Edge customers around boundary-day count differently.                                                                                                                                  |
| **POS linkage**                  | Ours lower  | If POS customers are not linked to web customers in BC POS settings, both we and BC under-count cross-platform repeat. The merchant can fix this in BC POS Settings → Customers.                                            |
| **B2B Edition company accounts** | Ours higher | If 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 treatment**    | Either      | We 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 casing**                 | Slight gap  | We 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):**

| Card                                                                         | Expected relationship                                                         | Notes                                                                                                                                                                           |
| ---------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [`klaviyo.repeat_purchase_rate`](/nerve-centre/klaviyo/repeat_purchase_rate) | Should match within ±5% on stores using Klaviyo as the customer-data backbone | Klaviyo'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. |

***

<details>
  <summary><em>Documentation cross-reference (for agencies running multiple platforms)</em></summary>

  The repeat-rate metric exists on Shopify and Adobe Commerce with similar definitions. Shopify exposes the cleanest version because guest checkouts are tied to email by default; Adobe's customer-identity model is closer to BC's registered/guest split.

  * [`shopify.repeat_rate`](/nerve-centre/kpi-cards/shopify/repeat-customer-rate)
  * [`adobe_commerce.repeat_rate`](/nerve-centre/kpi-cards/adobe-commerce/repeat-customer-rate)
</details>

## 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](/nerve-centre/kpi-cards/bigcommerce/new-customers) and [Customer Trend](/nerve-centre/kpi-cards/bigcommerce/customer-acquisition-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](https://app.vortexiq.ai/login) or [book a demo](https://www.vortexiq.ai/contact-us) to see this metric running on your own data.
