---
name: s45-supplier-concentration-risk
description: Analyse de la concentration risque fournisseurs — Pareto 80/20, dépendances critiques, single-source par catégorie
tags: [fournisseurs, risque, concentration, pareto, cfo, procurement]
when_to_use: Quand le CFO ou le Procurement Manager veut identifier les fournisseurs critiques, mesurer la dépendance et préparer une stratégie de diversification
personas: [cfo, procurement]
use_cases: [gestion-fournisseurs, analyse-depenses]
frequency: monthly
complexity: intermediate
score: 80
tools_used: [spendesk_analyze_spend, get_suppliers]
---

# Analyse de concentration risque fournisseurs

## But
Identifier les fournisseurs qui concentrent l'essentiel des dépenses (loi de Pareto), détecter les dépendances mono-source par catégorie, et quantifier le risque de concentration pour le CFO et le Procurement.

## Instructions

### Étape 1 — Dépenses totales par fournisseur sur 12 mois
```
Appelle spendesk_analyze_spend avec :
  - groupBy: supplier
  - période : 12 derniers mois
  - Récupère : supplierId, supplierName, totalAmount, currency
Trier par totalAmount décroissant.
```

### Étape 2 — Analyse Pareto (80/20)
```
Calculer le total des dépenses (somme de tous les fournisseurs).
Calculer le % cumulé en parcourant les fournisseurs triés du plus grand au plus petit.
Identifier :
  - Le nombre de fournisseurs représentant 80% des dépenses (concentration top)
  - Le % des fournisseurs représentant 80% des dépenses
  - Les fournisseurs représentant chacun > 10% des dépenses totales (risque critique)
```

### Étape 3 — Identification des dépendances mono-source par catégorie

⚠️ **Bug vérifié** : `category` n'existe pas comme dimension de `spendesk_analyze_spend` (erreur serveur `"grouper is not a function"`). Les catégories de dépense employé-facing sont portées par le champ analytique "Analytic codes" — utiliser la dimension `analyticalCode` :

```
Appelle spendesk_analyze_spend avec groupBy: analyticalCode pour obtenir les catégories.
Pour chaque catégorie > 5% des dépenses totales :
  Appelle spendesk_analyze_spend groupBy: [analyticalCode, supplier], filters.analyticalCodes=[<id catégorie>]
  Identifier si un seul fournisseur = > 90% de la catégorie (single-source), via le breakdown[] de la ligne
```

### Étape 4 — Enrichissement fournisseurs critiques

⚠️ **Risque de dépassement de taille de réponse** : `get_suppliers` embarque un champ `accountPayable.supplierIds` qui, pour les fournisseurs partageant un compte AP consolidé, peut contenir des centaines d'IDs redondants par enregistrement — un simple `pageSize=3` peut déjà dépasser la limite de taille de réponse. Ne jamais paginer largement ici.

```
Pour les fournisseurs représentant > 5% des dépenses (généralement une poignée) :
  Appelle get_suppliers avec ids=[<id1>, <id2>, ...] (ciblé, pas de pagination large) pour récupérer : pays, statut, IBAN country
Identifier les fournisseurs critiques dans des pays à risque géopolitique ou
sans IBAN validé.
```

### Étape 5 — Rapport de risque
```
Présenter :
1. Score de concentration global : N fournisseurs = 80% des dépenses
2. Fournisseurs critiques (> 10% des dépenses chacun) avec montant + %
3. Catégories en mono-source (1 seul fournisseur dominant)
4. Recommandations : fournisseurs à diversifier en priorité
```

## Points d'attention
- Le Pareto 80/20 s'applique aux dépenses trackées dans Spendesk — les dépenses hors-Spendesk ne sont pas incluses
- Un fournisseur "critique" ne signifie pas toujours un risque si c'est un partenaire stratégique validé
- Comparer avec la période N-1 pour voir si la concentration augmente

## Exemples de prompts
- "Quels sont nos fournisseurs les plus critiques en termes de dépendance ?"
- "Combien de fournisseurs représentent 80% de nos achats ?"
- "Y a-t-il des catégories où on n'a qu'un seul fournisseur ?"
- "Montre-moi notre risque de concentration fournisseurs pour le board"
