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.
| What it counts | SUM(total_inc_tax) GROUP BY customer_id over the 90-day period. Each customer’s order total summed, ranked descending. Default top-100. Guest orders (no customer_id) excluded by default. |
| VAT / tax treatment | Tax-inclusive (total_inc_tax). |
| Shipping | Included. |
| Discounts | Already deducted. |
| Refunds | Not deducted (gross). |
| Cancelled / voided orders | Included if order created. |
| Currency | Multi-currency without FX. Filter by currency for clean comparison. |
| Channels / sources | All channels contribute. A B2B customer ordering through both web and B2B portal sums across both. |
| Customer ID stability | BC’s customer_id is stable per registered customer. Guests get synthetic IDs per order; filtered out by default. Toggle “include guests by email” to dedupe and include guest spend. |
| Top-customer concentration | Top 5% of customers drive 30-50% of revenue typically. Loss of any top-10 customer is a material revenue event. |
| B2B Edition note | B2B customers typically dominate due to higher AOVs (5-10× retail). Filter by customer group for cleaner segment views. |
| Time window | 90D (30-day window too short for top-customer signal stability) |
| Alert trigger | None on this card directly. |
| Roles | owner, marketing |
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.| Rank | Customer | Group | Orders | Total spend | AOV | Tenure | Verdict |
|---|---|---|---|---|---|---|---|
| 1 | Atlantic Hospitality Group | Wholesale | 14 | $84,200 | $6,014 | 4.2 yrs | Strategic B2B account |
| 2 | Maple Hotels & Spas | Wholesale | 8 | $58,400 | $7,300 | 2.8 yrs | High-value B2B |
| 3 | Westside Boutique Hotels | Wholesale | 11 | $46,800 | $4,255 | 3.1 yrs | Steady B2B |
| 4 | Linda K. (retail VIP) | Retail | 6 | $14,200 | $2,367 | 5.0 yrs | Loyal retail VIP |
| 5 | Robert M. (retail VIP) | Retail | 4 | $11,400 | $2,850 | 1.8 yrs | New high-spender |
| 6-10 | (5 retail VIPs) | Retail | mixed | $32,400 | mixed | mixed | VIP cohort |
| 11-50 | (40 customers) | Mixed | mixed | $84,000 | mixed | mixed | Solid mid-tier |
| 51-100 | (50 customers) | Mixed | mixed | $58,000 | mixed | mixed | Tail loyalists |
| Top 100 total | $389,400 | ||||||
| Top 100 share | 42% of 90D revenue | Pareto in action |
- 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.
- **Atlantic Hospitality Group at 6k means meaningful per-order revenue. Investigate: is contract up for renewal? Are competitors pitching them? Do they need a custom product line?
- 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.
- 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.
- 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.
- 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.
- Account-management plan for top-3 B2B this week, dedicated AM, quarterly reviews, retention-priority contracts.
- Retail VIP recognition this month personalised emails, early access to next launch, private event invitations.
- Watch-list mid-tier risers track ranks 51-100 monthly for promotion to retail VIP tier as spend grows.
- Quarterly: assess concentration risk if top-3 share rises above 30% of total revenue, diversify proactively.
- B2B / retail segmented views run this card filtered to each customer group monthly for cleaner per-segment decisions.
Sibling cards merchants should reference together
| Card | Why pair it with Top Customers |
|---|---|
| BC Customer Segments | Segment breakdown (new / returning / VIP); top customers anchor the VIP segment. |
| Customer Count | The total customer base; top-100 ÷ total = concentration ratio. |
| Repeat Rate | Repeat-customer rate; top customers by definition are repeats. |
| Order Frequency | Per-customer order frequency; top customers usually have high frequency or high AOV. |
| BC AOV by Country | Top customers’ country mix; B2B accounts often cluster in one region. |
| Churn Risk | Risk of losing top customers; an essential pairing for proactive retention. |
| BC Guest vs Registered | This card excludes guests; cross-reference for the missing guest cohort. |
shopify.repeat_rate | Cross-platform reference for top-customer analysis. |
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:| Reason | Direction |
|---|---|
| Time window. BC’s customer view shows lifetime spend by default; this card uses 90-day rolling. | Different totals |
| Guest deduplication. BC counts guest orders separately each time; we optionally dedupe by email. | Vortex IQ may show HIGHER guest spend if deduped |
| Multi-currency aggregation. BC may convert; we don’t FX. | Different totals |
| Refund netting. BC reports may show net spend; we show gross. | BC LOWER if netted |
| Multi-channel customers. A customer ordering through both web and B2B portal sums in our view; BC may split per channel. | Different totals on multi-channel customers |
| Anonymous-customer orders. POS walk-in customers without account creation may be invisible to both views. | Both miss the same |
| Card | Expected relationship | What causes legitimate divergence |
|---|---|---|
klaviyo.kl_top_customers_by_revenue | Klaviyo’s top customers by Klaviyo-attributed revenue; should overlap with this card’s top-100. | Klaviyo only attributes email-driven revenue; this card is all-channel revenue. |
hubspot.hs_top_accounts_by_value | HubSpot accounts (often B2B); should match the B2B-channel slice. | HubSpot tracks pipeline + closed; BC tracks paid orders. |
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 nocustomer_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.