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 counts | SUM(Transaction.Amount) for revenue accounts, grouped by Customer.Name, sorted desc, top 20. |
| B2B parent rollup | NetSuite 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 treatment | Net of tax. |
| Refunds / Credit Memos | Deducted within each customer. |
| Currency | OneWorld: reporting currency. |
| Subsidiary scope | Respects dashboard filter. |
| Time window | 90D (longer than most cards because customer concentration smooths over short windows) |
| Alert trigger | None at headline; concentration alert lives on a separate dashboard pulse |
| Roles | owner, 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.| Rank | Customer | Revenue (USD) | % of period total | YoY |
|---|---|---|---|---|
| 1 | Major Department Store Chain | $4,820,000 | 23% | +8% |
| 2 | Western Regional Retailer | $2,140,000 | 10% | +3% |
| 3 | Online Marketplace Account | $1,680,000 | 8% | +24% |
| 4 | Boutique Group A | $1,120,000 | 5% | -12% |
| 5 | Boutique Group B | $980,000 | 5% | +2% |
| 6-10 | (mid-tier) | $3,820,000 | 18% | +5% |
| 11-20 | (smaller) | $2,640,000 | 13% | +4% |
| Long tail (rest) | various | $4,090,000 | 19% | +6% |
| Total | $21,290,000 | 100% | +4.5% |
- 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.
- Top 5 = 51%, top 20 = 81%. Classic mid-market B2B distribution. Long tail (everyone else) is 19%.
- 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.
- 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.
- 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
| Card | Why pair it with Top Customers Revenue |
|---|---|
| Top B2B Accounts | The B2B-only filter. Excludes retail / DTC customers. |
| Customer Credit Utilisation | Top customers by credit-line usage. Risk view. |
| Customer Churn Signals | Customers showing churn signal. Top + churning = priority list. |
| Active Customers | Customer count over time. |
| Revenue by Class | Product-side cut. Cross-tab with customer for matrix view. |
| Margin by SKU | Profitability 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 DetailSales by Customer is the closest match. Customer Aging is balance, not flow. Why our number may legitimately differ from NetSuite reports:
| Reason | Direction | Why |
|---|---|---|
| B2B parent rollup | Card consolidates | Native Sales by Customer can roll up via group-by setting. The card defaults to rollup-on. |
| Class / Department filters | Either | Some saved searches scope to a specific Class or Department. |
| Inactive customer inclusion | Card excludes | If 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 cadence | Small | Transaction-date FX. |
| Card | Relationship | Why |
|---|---|---|
| shopify.top_customers (DTC) | Different population | DTC customers may also appear in NetSuite if you do hybrid B2B + DTC. Match by email. |
| bigcommerce.top_customers | B2B parallel | If using BC for B2B portal, customer overlap is high. Match by Customer ID mapping. |