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 counts | SUM(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 treatment | Inherits store’s taxesIncluded mode. |
| Shipping | Included. |
| Discounts | Deducted (post-discount). |
| Refunds | NOT 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 orders | Included if Shopify indexed them; cancelled-pre-payment customers shouldn’t appear in totals at all. |
| Currency | Multi-currency arithmetic without FX. Customers paying multiple currencies have raw-amount sums. Filter by currency for cross-customer comparison. |
| Channels / sources | All channels. POS-walk-in customers without email are anonymous; they don’t appear here. |
| Time window | 90D (default 90D rolling) |
| Alert trigger | None directly; pair with churn-risk for VIP-departure alerting. |
| Roles | owner, 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.| Rank | Customer | 90D Spend | Orders (90D) | Note |
|---|---|---|---|---|
| 1 | Sarah J. (corporate gifting buyer) | £4,820 | 6 | B2B-style behaviour, employee-gift programs |
| 2 | Marcus W. | £3,180 | 12 | Subscriber + frequent reorderer |
| 3 | Laura K. (interior designer) | £2,940 | 4 | Bulk-orders for client homes |
| 4 | David L. | £2,210 | 9 | Wedding-gift season buyer |
| 5 | Emma P. | £1,940 | 8 | Loyal repeat |
| … | … | … | … | |
| 50 | Tom S. | £680 | 3 | Threshold to enter VIP tier |
| Top-50 total | £68,420 | 312 | ~15.5% of total revenue | |
| Top-50 share of customer base | 0.42% |
- 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.
- 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.
- 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.
- 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.
- 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.
- 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:| Card | Why pair it with Top Customers |
|---|---|
| Top Refunding Customers | The flip-side; high-refund customers may rank as VIPs gross but be net-negative. |
| Customer Segments | Cohort context; VIPs split between corporate, subscribers, gift-buyers. |
| Repeat Customer Rate | The base-rate retention; VIPs are the high-end of repeat. |
| Churn Risk | Predictive flip-side; VIPs about to churn are the highest-priority retention target. |
| Customer Count | The denominator for the top-50 share calculation. |
| Average Order Value | The blended; VIPs typically have higher individual AOVs. |
| Order Frequency | Re-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.
| Reason | Direction | Why |
|---|---|---|
| Time window | Shopify Admin shows lifetime by default | We use 90D rolling; Admin’s Total spent is all-time unless segmented. |
| Customer linking | Shopify may link better | Identity-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 treatment | We don’t deduct | Some Shopify reports show net spend; we show gross. |
| Multi-currency | Sums distort | Customers paying multiple currencies have raw-amount sums; not FX-normalised. |
| POS anonymous customers | Both miss | Walk-in customers without email-capture are missing from both. |
| Sync lag | Ours lower for “today” | Most-recent 5-15 min may not be in. |
| Card | Expected relationship | What causes legitimate divergence |
|---|---|---|
klaviyo.kl_top_subscribers (when connected) | Different ranking criteria | Klaviyo 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 criteria | Loyalty programs rank by points-earned-or-redeemed, not raw spend. |
| CRM (Hubspot, Salesforce) top-customer reports | Should overlap meaningfully | CRM-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:- Corporate / wholesale account using personal email at checkout. Sarah from Acme Corp may show as “Sarah J.” with a personal address.
- Repeat purchaser using throwaway / aliased email for privacy.
- 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).
- Refund happened: pair with Top Refunding Customers. The customer’s net spend may be unchanged.
- Buying cycle shift: corporate gifting buyers often cluster around quarterly cycles; a quiet month is normal.
- Real churn: customer found a competitor or stopped needing the product. Reach out via account manager or customer-success channel.
- 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.
- 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.
- 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.
- Low-loyalty business: if even top 5-10 churn frequently, your retention model has a problem. Pair with Repeat Customer Rate.
- Personal acknowledgement: top 10 should know they’re recognised. A handwritten note, a check-in email, or a call from the founder.
- Account management for top 5: especially if they’re B2B-style; assign a named contact.
- Predictive churn watch: pair with Churn Risk. VIPs about to churn are the highest-priority retention.
- Lookalike acquisition: feed top-customer profiles to Meta / Google Ads as lookalike seeds.
- Product feedback: top customers know your product best; survey them for new-product or experience feedback.
- Privacy and discretion: don’t expose this list publicly or use customer names externally without consent.