Skip to main content
Card class: Card

At a glance

Top 20 customers by revenue (Invoiced, post-Credit Memo) for the period. The concentration view that exposes single-point-of-failure customer risk.
What it countsSUM(Transaction.Amount) for revenue accounts, grouped by Customer.Name, sorted desc, top 20.
B2B parent rollupNetSuite Customer hierarchy (parent / sub-buyer) is rolled up. A parent retailer with 50 store-location sub-buyers shows as one row at the parent level by default.
Tax treatmentNet of tax.
Refunds / Credit MemosDeducted within each customer.
CurrencyOneWorld: reporting currency.
Subsidiary scopeRespects dashboard filter.
Time window90D (longer than most cards because customer concentration smooths over short windows)
Alert triggerNone at headline; concentration alert lives on a separate dashboard pulse
Rolesowner, finance

Calculation

Calculated automatically from your NetSuite 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 wholesale apparel distributor on NetSuite. 90-day window 14 Jan 26 to 12 Apr 26.
RankCustomerRevenue (USD)% of period totalYoY
1Major Department Store Chain$4,820,00023%+8%
2Western Regional Retailer$2,140,00010%+3%
3Online Marketplace Account$1,680,0008%+24%
4Boutique Group A$1,120,0005%-12%
5Boutique Group B$980,0005%+2%
6-10(mid-tier)$3,820,00018%+5%
11-20(smaller)$2,640,00013%+4%
Long tail (rest)various$4,090,00019%+6%
Total$21,290,000100%+4.5%
Five things to notice:
  1. Top customer at 23% is the concentration risk. If they walk, the business loses nearly a quarter of revenue. This number should drive treasury policy (cash reserves) and account management priority.
  2. Top 5 = 51%, top 20 = 81%. Classic mid-market B2B distribution. Long tail (everyone else) is 19%.
  3. Boutique Group A is contracting (-12% YoY). The card surfaces the trend per customer; a 12% YoY drop on a $1.12M account is the kind of attrition signal that warrants account-management attention.
  4. The marketplace account is growing fastest (+24% YoY). Strategic question: is this a partnership to invest in, or a margin-eroding channel that’s cannibalising direct relationships? Pair with Margin by SKU to answer.
  5. B2B parent rollup matters. “Major Department Store Chain” includes 250+ store-location sub-buyer Customer records in NetSuite. Without rollup, the top 20 list would be dominated by individual store ZIP codes; with rollup it’s the negotiation entity.

Sibling cards merchants should reference together

CardWhy pair it with Top Customers Revenue
Top B2B AccountsThe B2B-only filter. Excludes retail / DTC customers.
Customer Credit UtilisationTop customers by credit-line usage. Risk view.
Customer Churn SignalsCustomers showing churn signal. Top + churning = priority list.
Active CustomersCustomer count over time.
Revenue by ClassProduct-side cut. Cross-tab with customer for matrix view.
Margin by SKUProfitability of revenue. Top customers at low margin = risk.

Reconciling against the vendor’s own dashboard

Where to look in NetSuite:
Reports → Sales → Sales by Customer Reports → Customer/Receivables → Customer Aging Detail
Sales by Customer is the closest match. Customer Aging is balance, not flow. Why our number may legitimately differ from NetSuite reports:
ReasonDirectionWhy
B2B parent rollupCard consolidatesNative Sales by Customer can roll up via group-by setting. The card defaults to rollup-on.
Class / Department filtersEitherSome saved searches scope to a specific Class or Department.
Inactive customer inclusionCard excludesIf a customer became inactive mid-period, their revenue still counts; they just don’t display as top-20 if revenue went to a successor.
FX cadenceSmallTransaction-date FX.
Cross-connector reconciliation:
CardRelationshipWhy
shopify.top_customers (DTC)Different populationDTC customers may also appear in NetSuite if you do hybrid B2B + DTC. Match by email.
bigcommerce.top_customersB2B parallelIf using BC for B2B portal, customer overlap is high. Match by Customer ID mapping.

Known limitations / merchant FAQs

What’s a healthy concentration ratio? For B2B mid-market: top-1 should be <30%, top-5 should be <60%, top-20 should be <90%. Higher = riskier. Treasury policy and credit insurance often follow these ratios. Why does the top customer change rank from period to period? Big customers often have lumpy ordering patterns (quarterly buys, seasonal peaks). Look at rolling 12-month for the strategic ranking; quarterly ranking is operational. B2B parent rollup, can I see store-level detail? Yes, dashboard toggle. Default is parent rollup. Drill-down shows sub-buyer breakdown. Customers who left, do they still appear? Only if they had revenue in the period. Customers with $0 in the period are excluded. The Customer Churn Signals card surfaces departures specifically. Multi-currency customers, how is FX handled? Each Invoice is translated at transaction-date FX. Customer total is the sum. If a customer transacts in EUR but reporting is GBP, FX moves the GBP-reported number even if EUR sales are flat. Intercompany customers, do they show? By default yes. Filter to third-party only via field map. ASC 606 deferred revenue per customer? Recognised revenue only. ARM-deferred revenue sits on the Balance Sheet by customer; the card shows what’s been recognised on the P&L. Can I see the full customer list, not just top 20? Yes, dashboard toggle expands to top 100 or all. Top 20 is the default for board-readable view. Customer name privacy, can I anonymise? Workspace setting. Some accounts anonymise customer names in shared dashboards (replace with “Customer A, Customer B”). The card supports the anonymisation flag.

Tracked live in Vortex IQ Nerve Centre

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