Supplier concentration risk analysis

Analyzes spend concentration by supplier to identify excessive dependencies and supply disruption risk.

↓ Download skill (.md)
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

/
  1. 1
    Download the file s45-supplier-concentration-risk.md using the button above.
  2. 2
    Place 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
  3. 3
    Use in Claude Codethe 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
95/100·🔍 Ad hoc·Expert

MCP coverage audit & gap analysis

Probes all available MCP tools, re-evaluates coverage of 50 persona use cases, detects new fields or tools, and regenerates the gap analysis report.

CFOControllerAP Manager
90/100·🔍 Ad hoc·Intermediate

Active vs archived cost centers

Distinguishes active cost centers from archived ones with correct use of get_cost_centers. Avoids the counter-intuitive isArchived vs isActive naming convention pitfall.

ControllerFinance Analyst
★ Top
89/100·🔍 Ad hoc·Intermediate

Skill Builder

Aide un client à transformer un besoin métier précis (contexte, contraintes, format de sortie souhaité) en un nouveau skill Claude sur mesure, prêt à l'emploi sur le MCP Spendesk

CFOControllerAP Manager