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

At a glance

The top N customers ranked by gross spend in the 90D window. Surfaces the VIP tier; the people whose churn would hurt most.
What it countsSUM(totalPrice) GROUP BY customerId ORDER BY sum DESC LIMIT 50 (default 50 customers). Each customer’s gross customer-paid total across all orders in the window.
VAT / tax treatmentInherits store’s taxesIncluded mode.
ShippingIncluded.
DiscountsDeducted (post-discount).
RefundsNOT deducted. A customer who bought £10k and refunded £8k still ranks at £10k here. Pair with Top Refunding Customers for a net view.
Cancelled / voided ordersIncluded if Shopify indexed them; cancelled-pre-payment customers shouldn’t appear in totals at all.
CurrencyMulti-currency arithmetic without FX. Customers paying multiple currencies have raw-amount sums. Filter by currency for cross-customer comparison.
Channels / sourcesAll channels. POS-walk-in customers without email are anonymous; they don’t appear here.
Time window90D (default 90D rolling)
Alert triggerNone directly; pair with churn-risk for VIP-departure alerting.
Rolesowner, marketing

Calculation

Calculated automatically from your Shopify 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 UK gifting / homewares brand on Shopify, ~12,000 customer base. 90D window 12 Feb 26 to 12 May 26.
RankCustomer90D SpendOrders (90D)Note
1Sarah J. (corporate gifting buyer)£4,8206B2B-style behaviour, employee-gift programs
2Marcus W.£3,18012Subscriber + frequent reorderer
3Laura K. (interior designer)£2,9404Bulk-orders for client homes
4David L.£2,2109Wedding-gift season buyer
5Emma P.£1,9408Loyal repeat
50Tom S.£6803Threshold to enter VIP tier
Top-50 total£68,420312~15.5% of total revenue
Top-50 share of customer base0.42%
Six things to notice:
  1. Power-law distribution. Top 50 customers (0.42% of base) drive ~15.5% of revenue. The shape is consistent; almost every Shopify store sees a similar concentration. The top 5% of customers usually drive 30-50% of revenue.
  2. VIPs are heterogeneous. Sarah (corporate gifting) buys infrequently but in bulk; Marcus (subscriber) buys often in smaller amounts. They need different retention strategies. A “VIP” segment that lumps them together over-simplifies.
  3. Single-customer concentration risk. Sarah at £4,820 is 7% of the top-50’s revenue alone. If she churns or her employer changes vendors, the top-of-list shrinks meaningfully. Customer-success outreach pre-empts this.
  4. The 50th customer is the threshold. Below £680 in 90D, customers don’t appear. Most “loyal” customers sit between £200-£680. Worth segmenting that “near-VIP” tier separately for nurture campaigns.
  5. Anonymous customers (POS walk-ins) are missing. A walk-in at the pop-up store who paid £500 cash with no email-capture doesn’t appear here. Hybrid-retail brands under-count VIPs unless POS staff capture email aggressively.
  6. Refunders may be inflated VIPs. A customer with £3k spend and £2k refunds ranks here at £3k. Pair with Top Refunding Customers to find net-VIPs (gross spend minus refunds). Some apparent VIPs are net-loss customers.

Sibling cards merchants should reference together

Top Customers is the VIP list. The companions:
CardWhy pair it with Top Customers
Top Refunding CustomersThe flip-side; high-refund customers may rank as VIPs gross but be net-negative.
Customer SegmentsCohort context; VIPs split between corporate, subscribers, gift-buyers.
Repeat Customer RateThe base-rate retention; VIPs are the high-end of repeat.
Churn RiskPredictive flip-side; VIPs about to churn are the highest-priority retention target.
Customer CountThe denominator for the top-50 share calculation.
Average Order ValueThe blended; VIPs typically have higher individual AOVs.
Order FrequencyRe-purchase rhythm; VIPs span both high-value-low-frequency and low-value-high-frequency archetypes.

Reconciling against the vendor’s own dashboard

Where to look in Shopify Admin:
Shopify Admin → Customers → Sort by Total spent (descending)
The most direct equivalent. Switch the time-frame manually (Shopify’s customer total-spent is lifetime by default; for 90D, run a custom segment with total_spent filter and date-range). Other Shopify Admin views:
  • Analytics → Reports → “Customers by total spent”: ranks all customers by lifetime spend. Different time window than this card.
  • Customer segments (Plus): build a “high-value” segment with custom criteria.
  • Apps like Loyalty Lion, Smile.io, Klaviyo: their VIP tiers are usually based on lifetime spend or custom logic.
Why our number may legitimately differ from Shopify Admin:
ReasonDirectionWhy
Time windowShopify Admin shows lifetime by defaultWe use 90D rolling; Admin’s Total spent is all-time unless segmented.
Customer linkingShopify may link betterIdentity-resolution edge cases (typo’d email, phone-only matches) sometimes resolve in Admin and not in our index. Lifetime customer spend is more sensitive to this than 90D.
Refund treatmentWe don’t deductSome Shopify reports show net spend; we show gross.
Multi-currencySums distortCustomers paying multiple currencies have raw-amount sums; not FX-normalised.
POS anonymous customersBoth missWalk-in customers without email-capture are missing from both.
Sync lagOurs lower for “today”Most-recent 5-15 min may not be in.
Cross-connector reconciliation:
CardExpected relationshipWhat causes legitimate divergence
klaviyo.kl_top_subscribers (when connected)Different ranking criteriaKlaviyo ranks by email engagement, not spend. The two lists overlap meaningfully (engaged customers tend to spend) but aren’t identical.
loyaltylion.ll_top_members (when connected)Different ranking criteriaLoyalty programs rank by points-earned-or-redeemed, not raw spend.
CRM (Hubspot, Salesforce) top-customer reportsShould overlap meaningfullyCRM-tracked customers (B2B, key-account) overlap with the top of this list; should match within identity-resolution tolerance.

Known limitations / merchant FAQs

Why is my #1 customer a name I don’t recognise? Three usual causes:
  1. Corporate / wholesale account using personal email at checkout. Sarah from Acme Corp may show as “Sarah J.” with a personal address.
  2. Repeat purchaser using throwaway / aliased email for privacy.
  3. Resellers / arbitrage buyers. Some categories attract resellers who buy bulk for resale on Amazon or eBay; they appear high on this list and have a specific behaviour pattern (small-window high-volume).
For B2B-leaning brands, audit your top-20 manually; some are corporate accounts misclassified as DTC. My top customer’s spend dropped suddenly. Should I worry? Possibly. Three causes to check:
  1. Refund happened: pair with Top Refunding Customers. The customer’s net spend may be unchanged.
  2. Buying cycle shift: corporate gifting buyers often cluster around quarterly cycles; a quiet month is normal.
  3. Real churn: customer found a competitor or stopped needing the product. Reach out via account manager or customer-success channel.
What’s a healthy top-50 share of revenue? Category-dependent:
  • Mass-market consumer brands (broad audience): top 50 = 5-10% of revenue. Healthy diversification.
  • Niche / specialist brands: top 50 = 15-25%. Loyal core with broader long tail.
  • B2B-leaning DTC: top 50 = 25-40%. Concentration is the business model.
  • Subscription-heavy: top 50 = 5-15%. Subscribers are spread across the long tail.
Above 30% means concentration risk; below 5% means weak loyalty / VIP program. Should I run special offers for top-50 customers? Yes, but careful:
  • VIP-only early access (new collections, restocks): high-perceived-value, low-cost.
  • VIP-only product or limited editions: builds emotional loyalty.
  • Discount codes: can be perceived as devaluation; offer service or product perks instead.
  • Personal outreach / handwritten notes: high-touch, low-scale, high-impact.
My multi-store setup, do top customers aggregate across stores? Not directly. Each Shopify store has its own customer database; cross-store top-customer aggregation is on the roadmap. Workaround: export from each store, dedupe by email externally. Why does my top-50 list change so much month-to-month? Two possibilities:
  1. Healthy churn-and-replace at the lower ranks: ranks 30-50 naturally swap as customers buy at irregular intervals. Top 5-10 should be stable.
  2. Low-loyalty business: if even top 5-10 churn frequently, your retention model has a problem. Pair with Repeat Customer Rate.
Action playbook for using Top Customers:
  1. Personal acknowledgement: top 10 should know they’re recognised. A handwritten note, a check-in email, or a call from the founder.
  2. Account management for top 5: especially if they’re B2B-style; assign a named contact.
  3. Predictive churn watch: pair with Churn Risk. VIPs about to churn are the highest-priority retention.
  4. Lookalike acquisition: feed top-customer profiles to Meta / Google Ads as lookalike seeds.
  5. Product feedback: top customers know your product best; survey them for new-product or experience feedback.
  6. Privacy and discretion: don’t expose this list publicly or use customer names externally without consent.

Tracked live in Vortex IQ Nerve Centre

Top Customers is one of hundreds of KPI pulses Vortex IQ tracks across Shopify 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.