Purchase requests aging report

Analyzes pending purchase requests by age, identifies approval bottlenecks, and measures average processing turnaround times.

↓ Download skill (.md)
80/100·📅 Weekly·BeginnerProcurementAP Manager
Budget & POsComplianceget_requestsget_cost_centersget_users

🎯 Skill purpose

Analyzes pending purchase requests by age, identifies approval bottlenecks, and measures average processing turnaround times.

📊 What it produces

Request aging report by age bucket, oldest pending requests, blocked cost centers, and average approval delay.

Benefit

Before

Long-pending requests are only noticed when the requester follows up, creating frustration and operational delays.

After

Complete visibility on blocked requests with proactive escalation, reducing processing times and improving the requester experience.



# Purchase requests aging

## Purpose
Analyze purchase requests pending approval or processing. Identify "stale" requests, measure average approval times by level, and locate bottlenecks in the workflow.

## Instructions

### Step 1 — Retrieve pending requests
```
Call get_requests with:
  - status: pending (or submitted, awaiting_approval — depending on available statuses)
  - Pagination to retrieve all open requests

For each request: id, requestedById, amount, currency, createdAt,
updatedAt, status, costCenterId, description.

Calculate the age: today - createdAt (in days).
```

### Step 2 — Sort by age (aging buckets)
```
Sort pending requests by age:
  🔴 Critical: > 30 days with no progress
  🟠 Urgent: 15-30 days
  🟡 To monitor: 7-14 days
  🟢 Recent: < 7 days (normal)

For each bucket: number of requests, total amount.
```

### Step 3 — Analysis by cost center
```
For pending requests:
  Group by costCenterId
  Calculate: nb pending requests + total amount + average age per CC

Call get_cost_centers to resolve the names.

Identify: which cost center has the most stuck requests?
```

### Step 4 — Analyze processing times (recently processed requests)
```
Call get_requests with:
  - status: approved or rejected (processed requests)
  - updatedAt: last 30 days

For each processed request:
  processing_time = updatedAt - createdAt (days)

Calculate:
  Overall average approval time
  Median time
  % processed in < 48h | < 7d | < 14d | > 14d

Compare: do recently stuck requests have a rising processing time vs history?
```

### Step 5 — Identify bottlenecks
```
For requests > 30 days:
  Call get_users for the requestedById and see if a pattern emerges:
    - Are they all from the same team?
    - Are they in the same cost center?
    - Is there a common approver who might be absent?

High-amount requests stuck: > 5,000€ for > 15 days → operational risk
```

### Step 6 — Aging report
```
Present:
1. Overview:
   Total pending requests: X (X€)
   Average approval time (last 30 days processed): X days

2. Aging buckets:
   🔴 > 30d: X requests (X€)
   🟠 15-30d: X requests (X€)
   🟡 7-14d: X requests (X€)
   🟢 < 7d: X requests (X€)

3. Top 5 oldest requests:
   Requester | Amount | Age (days) | Cost center | Description

4. Cost centers with the most stuck requests:
   Team | Nb pending | Total amount | Average age

5. Recommended actions:
   - Requests > 30d: urgent escalation to manager
   - Requests > 5,000€ for > 15d: priority processing
   - Identify if an approver is on leave / absent
```

## Points of attention
- Acceptable approval times vary by amount (< 500€: 24h, > 5,000€: 5d)
- Some requests may be intentionally held (budget freeze, strategic decision)
- Do not interpret an isolated aging case in isolation — look at overall patterns

## Example prompts
- "Which purchase requests have been awaiting approval for too long?"
- "What is our average approval time for purchase requests?"
- "Are there urgent stuck requests I need to prioritize?"

How to install this skill

/
  1. 1
    Download the file s62-procurement-requests-aging.md using the button above.
  2. 2
    Place the file in the .claude/ directory of your project (or ~/.claude/ for a global install).
    cp s62-procurement-requests-aging.md .claude/s62-procurement-requests-aging.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 get_requests, get_cost_centers, get_users.

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·📅 Weekly·Beginner

Card requests via get_requests

Explains how to use get_requests for card requests and why expense reimbursements don't appear there. Avoids a frequent source of confusion between two distinct workflows.

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