Customer concentration
The /reports/customer-concentration endpoint analyzes revenue concentration across your customer base. It shows how MRR is distributed among your top customers (Pareto analysis), helping identify revenue concentration risk.
💡 Use case: Assess revenue concentration risk, identify your most valuable customers, understand if you're over-dependent on a few large accounts.
GET /reports/customer-concentration
Returns Pareto analysis of revenue distribution and concentration metrics.
Authentication
Required
Include your API key in the Authorization header:
curl https://api.growpanel.io/reports/customer-concentration \
-H "Authorization: Bearer YOUR_API_KEY"Query parameters
| Parameter | Type | Description |
|---|---|---|
baseCurrencyoptional | string | Target currency for conversion. Defaults to account base currency. |
qoptional | string | Search by customer name, email, or ID. |
chartoptional | string | Set to pareto to return only pareto data for charting (omits detailed customer info). |
tableoptional | string | Set to 1 to return data in table format with individual customer details. |
regionoptional | string | Filter by region or country codes (space-separated). |
currencyoptional | string | Filter by currency codes (space-separated). |
industryoptional | string | Filter by industry (space-separated). |
channeloptional | string | Filter by channel (space-separated). |
ageoptional | string | Filter by customer age in months (e.g., 0-6, 12-). |
sizeoptional | string | Filter by customer size (space-separated). |
data_sourceoptional | string | Filter by data source ID (space-separated). |
Response
200 OK
Returns Pareto analysis with concentration metrics.
{
"result": {
"pareto": [
{
"rank": 1,
"name": "Acme Corp",
"id": "cus_123",
"mrr": 25000,
"cumulative_mrr": 25000,
"cumulative_pct": 20.0
},
{
"rank": 2,
"name": "Beta LLC",
"id": "cus_456",
"mrr": 15000,
"cumulative_mrr": 40000,
"cumulative_pct": 32.0
},
{
"rank": "11-20",
"mrr": 18000,
"cumulative_mrr": 95000,
"cumulative_pct": 76.0,
"count": 10
}
],
"concentration": {
"top_1": { "mrr": 25000, "pct": 20.0, "count": 1 },
"top_5": { "mrr": 60000, "pct": 48.0, "count": 5 },
"top_10": { "mrr": 77000, "pct": 61.6, "count": 10 },
"top_100": { "mrr": 120000, "pct": 96.0, "count": 100 },
"rest": { "mrr": 5000, "pct": 4.0, "count": 50 }
},
"count": 50,
"summary": {
"total_mrr": 125000,
"total_customers": 150,
"avg_mrr": 833,
"median_mrr": 500
}
}
}Response fields
| Field | Type | Description |
|---|---|---|
| Pareto Array | ||
rank | number or string | Customer rank (1-10) or group label (e.g., "11-20") |
name | string | Customer name (individual customers only) |
id | string | Customer ID (individual customers only) |
mrr | number | MRR in base currency (cents) |
cumulative_mrr | number | Cumulative MRR up to this rank (cents) |
cumulative_pct | float | Cumulative percentage of total MRR |
count | integer | Number of customers in group (grouped entries only) |
| Concentration Object | ||
top_1 | object | MRR, percentage, and count for top 1 customer |
top_5 | object | MRR, percentage, and count for top 5 customers |
top_10 | object | MRR, percentage, and count for top 10 customers |
top_100 | object | MRR, percentage, and count for top 100 customers |
rest | object | MRR, percentage, and count for remaining customers |
| Summary Object | ||
total_mrr | number | Total MRR across all customers (cents) |
total_customers | integer | Total number of active customers |
avg_mrr | number | Average MRR per customer (cents) |
median_mrr | number | Median MRR per customer (cents) |
Example requests
Get concentration analysis
curl https://api.growpanel.io/reports/customer-concentration \
-H "Authorization: Bearer YOUR_API_KEY"Get pareto chart data only
curl "https://api.growpanel.io/reports/customer-concentration?chart=pareto" \
-H "Authorization: Bearer YOUR_API_KEY"Search for specific customer
curl "https://api.growpanel.io/reports/customer-concentration?q=acme" \
-H "Authorization: Bearer YOUR_API_KEY"Filter by region
curl "https://api.growpanel.io/reports/customer-concentration?region=us" \
-H "Authorization: Bearer YOUR_API_KEY"Notes
⚠️ Currency values: All monetary values are returned in cents/smallest currency unit. Divide by 100 for display in most currencies.
- Pareto principle: Typically 80% of revenue comes from 20% of customers
- Top 10 detail: The top 10 customers are listed individually, then grouped (11-20, 21-50, etc.)
- Concentration risk: High concentration (e.g., top 5 customers = 50%+ of MRR) indicates risk
- Median vs average: Large difference suggests high concentration
- Use cases: Investor due diligence, risk assessment, account management prioritization
Related endpoints
- Summary Metrics - Overall metric snapshots
- Map - Geographic distribution
- MRR Table - Time-series MRR data