At a glance
Count of unique customers who placed at least one order in the rolling 30 days. The headline-traffic-quality metric, more revenue from fewer customers means concentration risk; more customers at flat revenue means a thinning customer base. Pair with order count and AOV for the full picture.
| What it counts | COUNT(DISTINCT customer_id) for orders created in the period, where customer_id is BC’s stable registered-customer identifier. Guest orders excluded by default (toggle to dedupe by email and include). |
| VAT / tax treatment | n/a (count metric). |
| Shipping | n/a. |
| Discounts | n/a. |
| Refunds | A customer who placed and refunded an order still counts (they were a customer in the period). |
| Cancelled / voided orders | Customers whose only order in the period was cancelled don’t count by default; they didn’t actually transact. |
| Currency | n/a (count metric). |
| Channels / sources | All channels contribute. A customer ordering through both web and B2B portal counts once (same customer_id). Marketplace customers may not have BC customer_id (anonymised by marketplace) and would be excluded; toggle the marketplace-include filter for an estimated count. |
| New vs returning | This card is the total unique count; new vs returning is in BC Customer Segments. |
| Guest deduplication | Default excludes guests (no customer_id). Toggle “include guests by email” to dedupe by email; this catches the same email-address guest making multiple orders without registering. Some BC stores see 30-50% guest rate; this materially shifts the count. |
| B2B Edition note | B2B account-level customers count once per account regardless of how many users within the business placed orders. For per-user count, use the contact-level granularity in B2B Edition. |
| Time window | 30D vsP (30D vs prior 30D for trend) |
| Alert trigger | None on this card directly. |
| Roles | owner, marketing |
Calculation
Worked example
A US homewares brand on BigCommerce Pro, 30-day window 14 Apr 26 to 14 May 26.| Metric | This 30D | Prior 30D | Change | Verdict |
|---|---|---|---|---|
| Total registered customers (active in period) | 4,820 | 4,420 | +9.0% | Healthy growth |
| Guest customers (email-deduped) | 2,140 | 2,080 | +2.9% | Flat |
| Unique customers (registered + guest) | 6,960 | 6,500 | +7.1% | Growing |
| Total orders | 8,420 | 7,840 | +7.4% | Tracking customer growth |
| Orders per customer | 1.21 | 1.21 | 0% | Stable cadence |
| Total revenue | $548,000 | $510,000 | +7.5% | Tracking |
| Revenue per customer | $78.7 | $78.5 | +0.3% | Stable |
- Customer count growing 7% is healthy growth. When customer count, order count, and revenue all grow at similar rates, the business is scaling proportionally; no concentration risk emerging.
- Orders-per-customer flat at 1.21 means most customers buy once in 30 days. Pure DTC stores often see 1.0-1.3; subscription / consumable stores see 1.5-3+. Whether 1.21 is good depends on category benchmarks.
- Guest customers at 31% of total is normal for B2C. Guest checkout is a low-friction-conversion choice; the trade-off is reduced retention (no account = no easy reorder, no email marketing). Stores that aggressively push registration see lower guest rates but sometimes lower conversion.
- The 2.9% guest growth vs 9% registered growth suggests the registration push is working; new customers are increasingly registering. Long-term this improves retention and LTV.
- Revenue per customer at $78.7 is stable. If revenue per customer was rising sharply on flat customer count, it would signal that you’re squeezing more from fewer customers (fragile). Stable revenue/customer with growing customer count is the durable growth pattern.
- Maintain customer-acquisition rate the 7% growth needs continued ad-spend / SEO / content investment.
- Push guest-to-registered conversion post-purchase email “save your details for next time” lifts registration rate.
- Investigate orders-per-customer flat trend can it grow? Subscriptions, replenishment reminders, bundle upsells could move it.
- Monitor monthly cadence customer count growing significantly slower than revenue is an early warning of customer-base concentration.
- Quarterly: review by acquisition source which channels bring the most customers? Which the most LTV? Allocate budget accordingly.
Sibling cards merchants should reference together
| Card | Why pair it with Customer Count |
|---|---|
| New Customers | The new-customer subset; growth in new customers vs growth in total tells acquisition vs retention story. |
| Repeat Rate | The retention dimension; high repeat with stable count = healthy retention; low repeat = leaky bucket. |
| BC Customer Segments | New / returning / VIP segmentation. |
| BC Top Customers | The high-value tail; concentration risk inversely correlated with customer count. |
| BC Guest vs Registered | Guest vs registered split; affects retention math. |
| Customer Trend | Time-series trend of customer count. |
| Total Revenue | Revenue per customer = total ÷ count. |
| Order Frequency | Per-customer order frequency. |
Reconciling against the vendor’s own dashboard
Where to look in BigCommerce Control Panel: Customers → View lists registered customers. Analytics → Customer Reports on Plus / Pro / Enterprise plans shows customer counts over time. The native BC views show registered customers; this card optionally adds email-deduped guests. Why our number may legitimately differ from BC:| Reason | Direction |
|---|---|
| Guest deduplication. We optionally dedupe guests by email; BC counts each guest order separately. | Vortex IQ may show DIFFERENT count depending on toggle |
| Cancelled-only customers. We exclude customers whose only order in the period was cancelled; BC may count them. | Vortex IQ LOWER |
| Time-zone. UTC default; BC store time zone may shift boundary days. | Boundary differences |
| Channel coverage. We include all channels by default; BC views may default to web. | Different totals |
Marketplace customers. Anonymised marketplace customers have no customer_id; we may include or exclude based on configuration. | Configurable |
| Card | Expected relationship | What causes legitimate divergence |
|---|---|---|
klaviyo.kl_active_subscribers | Klaviyo email-marketable subscribers; should track customer count for stores with strong email-capture. | Klaviyo includes prospects (newsletter signups without orders); this card is buyers only. |
hubspot.hs_contacts | HubSpot total contacts; superset of customers (includes leads). | Different definitions; expect partial overlap. |
google_analytics.ga_users | GA4’s distinct users; superset (includes non-buyers). | Different denominators. |
Known limitations / merchant FAQs
My customer count is flat but revenue is rising, healthy or risky? Risky. Means each customer is spending more (AOV up, or repeat rate up) but the customer base isn’t growing. If the trend continues, you become dependent on a fixed cohort; any of them leaving disproportionately hurts. Healthy growth has both customer count AND per-customer revenue rising; flat customer count with rising revenue is fragile. Why does my customer count include guests? By default it doesn’t (registered customers only). Toggle “include guests by email” to include guest orders deduped by email address. Inclusion is more realistic for category benchmarks; exclusion is cleaner for retention math. My customer count fell 15% but orders are stable, what happened? Likely a concentration shift: fewer customers ordering more often. Check repeat rate, if it spiked, you’ve shifted toward retention-driven revenue. Sustainable for established stores; concerning for stores that need acquisition. Should I count B2B customers separately? Yes via filter. B2B customers have very different cadences and AOVs; mixing them with retail can mislead. Most stores want a B2B-specific dashboard plus a retail-specific dashboard. A customer ordering through 3 channels (web, POS, B2B), counted once or three times? Once if theircustomer_id is the same across channels (BC-stable customer ID). If they have separate accounts per channel (some legacy stores), they count multiple times; consolidate accounts in BC for accurate count.
Why is my marketplace customer count missing?
Most marketplaces (Amazon especially) anonymise customer data; BC doesn’t get a stable customer identifier. Marketplace customers can’t be deduplicated into this count. The unique-customer view is most accurate for direct channels.
My customer count is dropping, what should I do?
Investigate three angles: (1) acquisition (are new customers slowing? cross-reference New Customers); (2) retention (are returning customers slowing? cross-reference Repeat Rate); (3) data quality (is customer-account creation broken? sync issues?). Each has different fixes.
Should I push customers to register vs guest checkout?
For long-term LTV, yes. Registered customers have email-marketing reach, easier reorder, and stable identity. For first-purchase conversion, guest checkout reduces friction. Best practice: offer both, then post-purchase encourage registration (“save your details for next time, get 10% off”).
My multi-currency store has the same customer ordering in 2 currencies, counted once?
Yes. Customer ID is stable across currencies. The customer’s gross spend sums their multi-currency orders naively (which is mathematically odd but acceptable for count-purpose evaluation).
A new customer placed an order then got refunded; counted?
By default yes (they were a customer in the period; they placed the order). For “real customer” counts, exclude customers whose only order was refunded; configurable via filter.
Why does my count differ from my CRM (Klaviyo / HubSpot)?
CRMs include leads, prospects, newsletter signups; this card is buyers only. CRMs are typically 3-10× larger than buyer count. The two are different funnels: CRM tracks total reach; this card tracks transacting customers.
Should I exclude my staff and family accounts?
Yes for accurate metrics. Tag staff / family accounts with a custom field; configure the card to exclude tagged accounts. Otherwise the customer count and customer LTV math is distorted by non-real customers.
Multi-store BC setup, do customer counts combine?
No. Each BC store is its own customer database with its own connector. A customer ordering from 3 of your BC stores counts as 3 separate customers (different customer_id). Cross-store customer consolidation requires a master CRM (HubSpot / Klaviyo / Salesforce).