Skip to main content
Metrics type: Supporting MetricsCategory: Ecommerce Platform

At a glance

Top BigCommerce customers ranked by 90-day spend. The card the marketing and customer-service teams use for VIP recognition, retention investment, and B2B account-management decisions. The 5% of customers who drive 30-50% of revenue, this is your shortlist.

Calculation

Calculated automatically from your BigCommerce data. See the At a glance summary above for what the metric tracks and the worked example below for a typical reading.

Worked example

A US homewares brand on BigCommerce Enterprise (B2B Edition active), 90-day window 14 Feb 26 to 14 May 26. What’s interesting:
  1. Top 3 customers (all B2B) account for 51% of top-100 spend, ~22% of total store revenue. This is concentration risk: losing any of the top 3 wholesale accounts could move quarterly revenue 5-10%. Action: dedicated account manager for top 3, quarterly business reviews, contract renewals proactively managed.
  2. **Atlantic Hospitality Group at 84k/14ordersisthestrategiccrownjewel.4yeartenuresuggestsstablerelationship;AOVof84k / 14 orders is the strategic crown jewel.** 4-year tenure suggests stable relationship; AOV of 6k means meaningful per-order revenue. Investigate: is contract up for renewal? Are competitors pitching them? Do they need a custom product line?
  3. The retail VIP tier (ranks 4-10) are gold for brand storytelling and retention. Linda K. at 5-year tenure with $14k 90-day spend is the kind of customer who refers friends. Action: invite to private events, early-access launches, personalised outreach. Loyalty program tier above standard.
  4. Robert M. as a new high-spender is a “watch closely” pattern. 1.8-year tenure means relatively new; $2,850 AOV is high; could become a top-3 if growth continues. Action: nurture deliberately, ensure smooth experience, track for repeat behaviour.
  5. The 40-50 mid-tier customers (ranks 11-50) are the loyalty-program backbone. Each spends meaningfully but not enough for white-glove treatment. Standard VIP perks (free shipping, early access) keep them engaged.
  6. Top 100 = 42% of revenue. This is healthy concentration for a multi-channel BC store with B2B. Pure retail stores typically see 25-35% top-100 concentration; pure B2B sees 60-75%. Hybrid stores like this fall in between.
Action priority order:
  1. Account-management plan for top-3 B2B this week, dedicated AM, quarterly reviews, retention-priority contracts.
  2. Retail VIP recognition this month personalised emails, early access to next launch, private event invitations.
  3. Watch-list mid-tier risers track ranks 51-100 monthly for promotion to retail VIP tier as spend grows.
  4. Quarterly: assess concentration risk if top-3 share rises above 30% of total revenue, diversify proactively.
  5. B2B / retail segmented views run this card filtered to each customer group monthly for cleaner per-segment decisions.

Sibling cards merchants should reference together

Reconciling against the vendor’s own dashboard

Where to look in BigCommerce Control Panel: Customers → View sorted by total spend descending gives a basic top-customers view. Analytics → Customer Reports on Pro / Enterprise plans includes a top-customers report. For B2B Edition, B2B Edition → Customers shows the wholesale-portal customer view separately. Why our number may legitimately differ from BC: Cross-connector reconciliation (when CRM and email integrations are connected): The top-customers view is BC-aligned with similar cards on Shopify (repeat_rate) and Adobe Commerce; the merchant-facing semantics are equivalent.

Known limitations / merchant FAQs

Why does my top-customer ranking shift week-over-week? Top customers buy in bursts (B2B reorder cycles, retail seasonal restocks). A 90-day window smooths individual purchase spikes but ranks still shift as new orders push customers up and trailing windows drop old orders. The top-3 are usually stable across weeks; ranks 30+ swing more. Should I exclude wholesale customers from this view? Depends on the question. For overall customer concentration risk, include all. For retail-VIP recognition programs, filter to retail-only. For wholesale account management, filter to B2B group. The card supports group filters; configure saved views per use-case. Why do guest customers not show up? Guests have no customer_id (or each order gets a synthetic ID), so they can’t be aggregated reliably. Toggle “include guests by email” to dedupe by email address; this catches the same email-address guest making multiple orders without registering. Some BC merchants see 30-50% guest checkout rate; turning this on can materially shift the rankings. My #1 customer is a friend / family member, what do I do? Tag the account internally (BC custom field internal_account = true) and configure the card to exclude tagged accounts. Otherwise the top of the list misrepresents real customer concentration. Many BC stores have 1-3 internal accounts (founder’s family, employees) that distort top-N views. Why is my top customer’s spend much higher than their AOV × order count? Likely because they have a refunded high-value order in the period; the gross spend includes the original transaction. Net spend would be lower. For accurate net-customer LTV, cross-reference each top customer’s refund history. Can I see lifetime value instead of 90-day spend? Toggle the time window to “Lifetime” for the card. Lifetime ranking reveals long-tenure customers who may not appear in 90-day rankings (a 5-year customer with 4 small orders/year is below 90-day radar but is high-LTV). For retention investment, lifetime view is more meaningful; for current-period recognition, 90-day. My top retail customer hasn’t ordered in 60 days, are they at risk? Possibly. Cross-reference Churn Risk for the at-risk segment. Customers in the top-100 with no recent orders should get proactive outreach: a personalised email, an exclusive offer, a “we miss you” check-in. Reactivation rates on top-100 customers are typically 20-30% with light-touch outreach. Should I share this list with my customer-service team? Yes, the top-50 should be flagged in your CS / chat tool with VIP status. When they contact support, they should be routed to senior agents, given priority queue, and any complaints handled white-glove. The cost of losing a top-50 customer (years of LTV) far exceeds the cost of giving them senior CS attention. My B2B Edition portal customers all have business names, where are the contacts? The customer_id in BC’s B2B Edition can be either an Account-level (business) or a Contact-level (individual user within the business). Most B2B portals operate at Account level; the spend rolls up to the business name. Drill into the customer record in BC for the contact-level user list and order assignment. Why doesn’t this card show the LTV / customer cohort analysis? That’s a separate card (planned: bc_customer_ltv_cohort). This card is the spend ranking; cohort and LTV analysis is a different shape (matrix or chart, not ranking). The two pair well. A new customer jumped to rank 8 with one order, normal? Yes for B2B (large first orders are common); unusual for retail. A retail customer hitting top-10 with one order is either a wholesale-style purchase mis-categorised as retail, an estate purchase, or a gift-from-friend large order. Investigate; it may be a B2B-prospect to convert formally, or a one-off that won’t repeat. Multi-currency, do top customers sum across currencies? Without a currency filter, yes (naively). A customer transacting in both USD and EUR sums the native amounts. Filter by currency for accurate per-currency ranking; or use a single-currency conversion view for unified ranking. Most multi-currency stores want one filtered view per major currency.

Tracked live in Vortex IQ Nerve Centre

Top Customers 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.