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

ParameterTypeDescription
baseCurrency (optional)stringTarget currency for conversion. Defaults to account base currency.
q (optional)stringSearch by customer name, email, or ID.
chart (optional)stringSet to pareto to return only pareto data for charting (omits detailed customer info).
table (optional)stringSet to 1 to return data in table format with individual customer details.
region (optional)stringFilter by region or country codes (space-separated).
currency (optional)stringFilter by currency codes (space-separated).
industry (optional)stringFilter by industry (space-separated).
channel (optional)stringFilter by channel (space-separated).
age (optional)stringFilter by customer age in months (e.g., 0-6, 12-).
size (optional)stringFilter by customer size (space-separated).
data_source (optional)stringFilter 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

Pareto Array

FieldTypeDescription
ranknumber or stringCustomer rank (1-10) or group label (e.g., "11-20")
namestringCustomer name (individual customers only)
idstringCustomer ID (individual customers only)
mrrnumberMRR in base currency (cents)
cumulative_mrrnumberCumulative MRR up to this rank (cents)
cumulative_pctfloatCumulative percentage of total MRR
countintegerNumber of customers in group (grouped entries only)

Concentration Object

FieldTypeDescription
top_1objectMRR, percentage, and count for top 1 customer
top_5objectMRR, percentage, and count for top 5 customers
top_10objectMRR, percentage, and count for top 10 customers
top_100objectMRR, percentage, and count for top 100 customers
restobjectMRR, percentage, and count for remaining customers

Summary Object

FieldTypeDescription
total_mrrnumberTotal MRR across all customers (cents)
total_customersintegerTotal number of active customers
avg_mrrnumberAverage MRR per customer (cents)
median_mrrnumberMedian 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