Supplier concentration risk analysis
Analyzes spend concentration by supplier to identify excessive dependencies and supply disruption risk.
80/100·📆 Monthly·IntermediateCFOProcurement
SuppliersSpend analysisspendesk_analyze_spendget_suppliers
🎯 Skill purpose
Analyzes spend concentration by supplier to identify excessive dependencies and supply disruption risk.
📊 What it produces
Supplier ranking by share of total spend with concentration risk indicators and diversification recommendations.
⚡ Benefit
Before
No visibility on supplier dependency — risk is only discovered when an incident occurs.
After
Supplier risk map in seconds, enabling proactive diversification and strategic sourcing decisions.
# Supplier concentration risk analysis ## Goal Identify the suppliers that account for the bulk of spend (Pareto principle), detect single-source dependencies per category, and quantify concentration risk for the CFO and Procurement. ## Instructions ### Step 1 — Total spend per supplier over 12 months ``` Call spendesk_analyze_spend with: - groupBy: supplier - period: last 12 months - Retrieve: supplierId, supplierName, totalAmount, currency Sort by totalAmount descending. ``` ### Step 2 — Pareto analysis (80/20) ``` Calculate total spend (sum across all suppliers). Calculate the cumulative % by walking through the suppliers sorted from largest to smallest. Identify: - The number of suppliers accounting for 80% of spend (top concentration) - The % of suppliers accounting for 80% of spend - Suppliers each accounting for > 10% of total spend (critical risk) ``` ### Step 3 — Identify single-source dependencies per category ⚠️ **Verified bug**: `category` does not exist as a `spendesk_analyze_spend` dimension (server error `"grouper is not a function"`). Employee-facing expense categories are carried by the "Analytic codes" analytical field — use the `analyticalCode` dimension instead: ``` Call spendesk_analyze_spend with groupBy: analyticalCode to get the categories. For each category > 5% of total spend: Call spendesk_analyze_spend groupBy: [analyticalCode, supplier], filters.analyticalCodes=[<category id>] Identify if a single supplier = > 90% of the category (single-source), via the row's breakdown[] ``` ### Step 4 — Enrich critical suppliers ⚠️ **Response-size risk**: `get_suppliers` embeds an `accountPayable.supplierIds` field that, for suppliers sharing a consolidated AP account, can hold hundreds of redundant IDs per record — even `pageSize=3` can already exceed the response size limit. Never paginate broadly here. ``` For suppliers accounting for > 5% of spend (usually a handful): Call get_suppliers with ids=[<id1>, <id2>, ...] (targeted, no broad pagination) to retrieve: country, status, IBAN country Identify critical suppliers in geopolitically risky countries or without a validated IBAN. ``` ### Step 5 — Risk report ``` Present: 1. Overall concentration score: N suppliers = 80% of spend 2. Critical suppliers (> 10% of spend each) with amount + % 3. Single-source categories (1 dominant supplier) 4. Recommendations: suppliers to diversify as a priority ``` ## Points of attention - The 80/20 Pareto applies to spend tracked in Spendesk — spend outside Spendesk is not included - A "critical" supplier doesn't always mean risk if it's a validated strategic partner - Compare with the prior-year period to see if concentration is increasing ## Example prompts - "Which are our most critical suppliers in terms of dependency?" - "How many suppliers account for 80% of our purchases?" - "Are there any categories where we only have one supplier?" - "Show me our supplier concentration risk for the board"
How to install this skill
/
- 1Download the file
s45-supplier-concentration-risk.mdusing the button above. - 2Place the file in the
.claude/directory of your project (or~/.claude/for a global install).cp s45-supplier-concentration-risk.md .claude/s45-supplier-concentration-risk.md - 3Use in Claude Code — the skill is automatically discovered. Describe your need in natural language and Claude will apply the skill instructions.
💡 Make sure the Spendesk MCP is configured in your
.claude/settings.json with the tools spendesk_analyze_spend, get_suppliers.Similar skills
★ Top