Measure supplier dependency

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

CFOProcurement๐Ÿ“† MonthlyIntermediateRead-only

Ask it like this

How many suppliers account for 80% of our purchases?

When to use it

When the CFO or procurement wants to identify critical suppliers, measure dependency and prepare to diversify.

What it produces

Supplier ranking by share of total spend with concentration risk indicators and diversification recommendations.

How it works

  1. 1Totals spend per supplier over the last 12 months
  2. 2Counts how many suppliers account for 80% of spend
  3. 3Spots suppliers that each weigh more than 10% of the total
  4. 4Detects spend categories that rely on a single supplier
  5. 5Notes the country of the largest suppliers
  6. 6Presents the concentration and the suppliers to diversify first

What protects you

  • This skill only reads: it changes nothing in Spendesk
  • It acts with your permissions and your role, never beyond
  • The assistant cannot approve or pay
โ–ธTechnical detail80/100 ยท 3 tools
SuppliersSpend analysisspendesk_analyze_spendget_expense_categoriesget_suppliers

# Supplier concentration and dependency

## Purpose

Measure how much spend rests on a few suppliers: how many account for 80%, which ones weigh more than 10% each, and which spend categories depend on a single supplier.

State the exact period (the last 12 months by default; 366 days at most per call).

## Step 1 โ€” Spend per supplier

```json
{
  "tool": "spendesk_analyze_spend",
  "params": { "fromDate": "YYYY-MM-DD", "toDate": "YYYY-MM-DD", "groupBy": ["supplier"], "limit": 50 }
}
```

โš ๏ธ Three points verified live:

- **By default, only 10 rows come back**; the rest is rolled into an "Others" row. Pass `limit: 50`, the maximum.
- Beyond 50 suppliers, the "Others" row remains: the 80% calculation stays exact as long as the threshold is reached within the first 50. Otherwise, say that concentration is low and the detail is not available.
- **Do not reuse `share`**: it does not match the share of the net total as soon as there are credit notes. Recompute each share on `summary.totalAmount`.

Credit notes are included and netted off. For concentration on gross purchases, add `"filters": { "payableTypes": [...] }` without `creditNote`.

## Step 2 โ€” Pareto

From the rows sorted by amount:

- number of suppliers that add up to 80% of `summary.totalAmount`;
- suppliers weighing more than 10% each: critical dependency;
- the top supplier's share.

## Step 3 โ€” Categories that depend on one supplier

There is no "category" dimension: expense categories come out under `analyticalCode`, **mixed with the values of other analytical fields**. Isolate them:

```json
{ "tool": "get_expense_categories", "params": {} }
```

Then:

```json
{
  "tool": "spendesk_analyze_spend",
  "params": { "fromDate": "YYYY-MM-DD", "toDate": "YYYY-MM-DD", "groupBy": ["analyticalCode", "supplier"], "limit": 50 }
}
```

Keep only the rows whose `id` is a category ID. In each category's `breakdown`, flag those where one supplier exceeds 90%: that is a single-supplier dependency.

## Step 4 โ€” Records of critical suppliers

```json
{ "tool": "get_suppliers", "params": { "ids": ["<id1>", "<id2>"] } }
```

Read `address.country` and `bankCountry`. An empty `iban` does not prove there are no bank details (non-IBAN accounts are never returned): do not treat it as a risk signal on its own. Judging country risk is the user's call.

## Report

```
Supplier concentration โ€” from <date> to <date>
Total spend: X EUR

N suppliers account for 80% of spend
Suppliers above 10%: name, amount, share
Categories depending on one supplier: category, supplier, share
```

## Limits to state

- Only spend that went through Spendesk is counted.
- A dominant supplier is not necessarily a risk if it is a chosen partner: the skill measures, it does not judge.
- To see whether concentration is rising, run the analysis again on the previous 12 months.

## Observed result (demo account, 5 October 2026)

Over 12 months and EUR 113,720.26 of spend, the top supplier weighed EUR 60,000.00, i.e. 52.8% of the total, and three suppliers each exceeded 10%. The share shown by the tool for the top one (51.6%) differed from the share recomputed on the total.

## Example prompts
- "How many suppliers account for 80% of our purchases?"
- "Which suppliers are we most dependent on?"
- "Are there categories where we only have one supplier?"

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 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_expense_categories, get_suppliers.

Similar skills

โ˜… Top
95/100ยท๐Ÿ” Ad hocยทExpert

Audit what the MCP covers

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

Build a custom skill

Turns a precise business need into a brand-new tailored Claude skill, ready to use on the Spendesk MCP.

CFOControllerAP Manager

Interested in AI Agent services or Custom Integrations?