---
name: s62-procurement-requests-aging
description: Analyse du vieillissement des demandes d'achat — identifier les demandes en attente depuis trop longtemps et les goulots d'approbation
tags: [demandes-achat, aging, approbation, procurement, workflow, bottleneck]
when_to_use: Pour identifier les demandes d'achat bloquées dans le circuit d'approbation, mesurer les délais de traitement, et détecter les goulots d'étranglement
personas: [procurement, ap-manager]
use_cases: [budget-pos, conformite]
frequency: weekly
complexity: beginner
score: 80
tools_used: [get_requests, get_cost_centers, get_users]
---

# Vieillissement des demandes d'achat (Purchase Requests Aging)

## But
Analyser les demandes d'achat (purchase requests) en attente d'approbation ou de traitement. Identifier les demandes "en souffrance", mesurer les délais moyens d'approbation par niveau, et localiser les goulots d'étranglement dans le workflow.

## Instructions

### Étape 1 — Récupérer les demandes en attente
```
Appelle get_requests avec :
  - status : pending (ou submitted, awaiting_approval — selon les statuts disponibles)
  - Pagination pour récupérer toutes les demandes ouvertes

Pour chaque demande : id, requestedById, amount, currency, createdAt, 
updatedAt, status, costCenterId, description.

Calculer l'âge : aujourd'hui - createdAt (en jours).
```

### Étape 2 — Classer par ancienneté (aging buckets)
```
Classer les demandes en attente par ancienneté :
  🔴 Critique : > 30 jours sans avancement
  🟠 Urgent : 15-30 jours
  🟡 À surveiller : 7-14 jours
  🟢 Récent : < 7 jours (normal)

Pour chaque bucket : nombre de demandes, montant total.
```

### Étape 3 — Analyse par centre de coût
```
Pour les demandes en attente :
  Grouper par costCenterId
  Calculer : nb demandes en attente + montant total + âge moyen par CC

Appelle get_cost_centers pour résoudre les noms.

Identifier : quel centre de coût a le plus de demandes bloquées ?
```

### Étape 4 — Analyser les délais de traitement (demandes récemment traitées)
```
Appelle get_requests avec :
  - status : approved ou rejected (demandes traitées)
  - updatedAt : 30 derniers jours

Pour chaque demande traitée : 
  délai_traitement = updatedAt - createdAt (jours)

Calculer :
  Délai moyen d'approbation global
  Délai médian
  % traité en < 48h | < 7j | < 14j | > 14j

Comparer : les demandes récemment bloquées ont-elles un délai en hausse vs historique ?
```

### Étape 5 — Identifier les goulots d'étranglement
```
Pour les demandes > 30 jours :
  Appelle get_users pour les requestedById et voir si un pattern émerge :
    - Sont-elles toutes d'une même équipe ?
    - Sont-elles dans un même centre de coût ?
    - Y a-t-il un approbateur commun potentiellement absent ?

Demandes à montant élevé bloquées : > 5 000€ depuis > 15 jours → risque opérationnel
```

### Étape 6 — Rapport aging
```
Présenter :
1. Vue d'ensemble :
   Total demandes en attente : X (X€)
   Délai moyen d'approbation (30 derniers jours traités) : X jours
   
2. Aging buckets :
   🔴 > 30j : X demandes (X€)
   🟠 15-30j : X demandes (X€)
   🟡 7-14j : X demandes (X€)
   🟢 < 7j : X demandes (X€)

3. Top 5 demandes les plus anciennes :
   Demandeur | Montant | Âge (jours) | Centre de coût | Description

4. Centres de coût avec le plus de demandes bloquées :
   Équipe | Nb en attente | Montant total | Âge moyen

5. Actions recommandées :
   - Demandes > 30j : escalade urgente vers manager
   - Demandes > 5 000€ depuis > 15j : traitement prioritaire
   - Identifier si un approbateur est en congé / absent
```

## Points d'attention
- Les délais d'approbation acceptables varient selon le montant (< 500€ : 24h, > 5 000€ : 5j)
- Certaines demandes peuvent être bloquées volontairement (budget freeze, décision stratégique)
- Ne pas interpréter un vieillissement isolé — regarder les patterns globaux

## Exemples de prompts
- "Quelles demandes d'achat attendent une approbation depuis trop longtemps ?"
- "Quel est le délai moyen d'approbation de nos purchase requests ?"
- "Y a-t-il des demandes urgentes bloquées que je dois traiter en priorité ?"
