revenue-concentration — Claude Code skill: client concentration risk
Works out each client's share of revenue and the Herfindahl index, so you can see how much of the business rides on a few accounts.
npx skills add openaccountant/skills --skill revenue-concentration -a claude-codeWhat revenue-concentration does
The skill takes incoming payments for a period you pick and groups them by client. From there it calculates each client's share of total revenue, the cumulative share, and the Herfindahl-Hirschman Index — the sum of squared shares. The thresholds come straight from antitrust practice: under 1,500 is low concentration, 1,500–2,500 moderate, above 2,500 high. Any single client past 25% gets flagged.
Two ways to run it. With Wilson connected, the skill calls transaction_search, pulls positive amounts and groups them by payee on its own. Without Wilson you export bank transactions to CSV for 12 months, filter to income, add a client column and build a pivot table — the sheet spells out the formulas for share, squared share and running total.
Keep the 2,500 line in mind. Four clients splitting revenue evenly land exactly on 2,500, which still counts as moderate; you need seven or more comparable clients before the index drops into low territory. The skill suggests starting with a 12-month window and revisiting the numbers quarterly. If one client's share keeps climbing, that is your cue to diversify rather than wait.
What it helps with
- measure each client's share of annual revenue
- compute the HHI from incoming payments
- spot a client bringing in over a quarter of revenue
- show the cumulative share of the top three clients
- run the same math by hand from a bank export
Example prompts for the agent
- Calculate revenue concentration by client for the last 12 months
- What's our HHI, and is any client above 25% of revenue?
- Group incoming payments by payer and show cumulative shares
How to install revenue-concentration
1Skills CLI (Vercel)
npx skills add openaccountant/skills --skill revenue-concentration -a claude-code2Manually: put the files in place
~/.claude/skills/revenue-concentration/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/revenue-concentration/
1Skills CLI (Vercel)
npx skills add openaccountant/skills --skill revenue-concentration -a codex2Manually: put the files in place
.agents/skills/revenue-concentration/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add openaccountant/skills --skill revenue-concentration -a cursor2Manually: put the files in place
.cursor/skills/revenue-concentration/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install openaccountant/skills revenue-concentration2Manually: put the files in place
.github/skills/revenue-concentration/SKILL.md1Skills CLI (Vercel)
npx skills add openaccountant/skills --skill revenue-concentration -a gemini-cli2Platform CLI
gemini skills install https://github.com/openaccountant/skills --path business/revenue-concentrationManually: put the files in place
.devin/skills/revenue-concentration/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add openaccountant/skills --skill revenue-concentration -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about revenue-concentration
How do I install revenue-concentration in Claude?
Run npx skills add openaccountant/skills --skill revenue-concentration -a claude-code. The skill lands in ~/.claude/skills/revenue-concentration/SKILL.md.
What does revenue-concentration do?
It calculates each client's revenue share, the cumulative share and the Herfindahl-Hirschman Index, then flags dangerous concentration levels.
What does the skill need to run?
With Wilson connected it pulls data through transaction_search. Without Wilson you need a CSV export of bank transactions covering 12 months.
Source text
SKILL.md · MIT
--- name: revenue-concentration description: > Assess client concentration risk using revenue share and Herfindahl index. --- # Revenue Concentration Risk ## Overview Measure how dependent your business is on a small number of clients. Calculates each client's revenue share, computes the Herfindahl-Hirschman Index (HHI), and flags dangerous concentration levels. ## Wilson Tools Used - `transaction_search` — find all revenue transactions and group by client or source to calculate per-client totals ## Workflow 1. Ask for the analysis period (recommend 12 months for accuracy). 2. Use `transaction_search` to find all incoming payments (positive amounts). 3. Group by vendor/payee name to get per-client revenue totals. 4. Calculate each client's revenue share as a percentage of total. 5. Compute the Herfindahl-Hirschman Index: HHI = sum of (each client's market share percentage squared). 6. Generate the report: ``` REVENUE CONCENTRATION — [Period] ═══════════════════════════════════════════════════ Client Revenue Share Cumulative ─────────────────────────────────────────────────── Acme Corp $48,000 40.0% 40.0% Beta LLC $30,000 25.0% 65.0% Gamma Inc $18,000 15.0% 80.0% Delta Co $12,000 10.0% 90.0% Other (3 clients) $12,000 10.0% 100.0% ─────────────────────────────────────────────────── Total Revenue $120,000 100.0% Herfindahl Index (HHI): 2,550 Concentration Level: HIGH Top Client Dependency: 40.0% Risk Assessment: - Losing Acme Corp would eliminate 40% of revenue - Top 2 clients = 65% of revenue - Top 3 clients = 80% of revenue ═══════════════════════════════════════════════════ ``` 7. Interpret HHI: - **Under 1,500**: Low concentration (diversified) - **1,500-2,500**: Moderate concentration - **Over 2,500**: High concentration (risky) 8. Flag any single client above 25% as a key-person risk. 9. Recommend target: no single client above 20%, top 3 clients below 50%. ## Without Wilson 1. Export bank transactions as CSV for the past 12 months. 2. Filter to income only (positive amounts in most bank exports). 3. Add a "Client" column and tag each deposit with the source client. 4. Pivot table: Rows = Client, Values = Sum of Amount. Sort descending. 5. Revenue Share: `=ClientRevenue/TotalRevenue*100`. 6. HHI: In a new column, square each share: `=Share^2`. Then `=SUM(SquaredShares)`. 7. For cumulative share, use `=SUM($B$2:B2)/TotalRevenue*100` (assuming column B is revenue, sorted descending). 8. The U.S. DOJ uses HHI for antitrust analysis with the same thresholds: under 1,500 = unconcentrated, 1,500-2,500 = moderate, over 2,500 = highly concentrated. The same logic applies to your revenue risk. ## Important Notes - A perfectly equal distribution across 4 clients gives an HHI of 2,500 (still moderate). You need 7+ roughly equal clients to reach "low concentration." - Revenue concentration is not inherently bad if the top clients are contractually committed (annual contracts, retainers). The risk is losing a major client with no notice. - Track this quarterly. If a single client's share is growing, actively invest in diversifying your revenue base. - Consider both revenue concentration and profit concentration. A client generating 40% of revenue but 60% of profit is an even bigger risk.
© openaccountant · MIT · openaccountant/skills