Spend per employee by department

Calculates average spend per employee by cost center and identifies teams whose per-capita spend is significantly above average.

โ†“ Download skill (.md)
78/100ยท๐Ÿ“† MonthlyยทIntermediateFinance AnalystCFO
Spend analysisReportsspendesk_analyze_spendget_cost_centersget_users

๐ŸŽฏ Skill purpose

Calculates average spend per employee by cost center and identifies teams whose per-capita spend is significantly above average.

๐Ÿ“Š What it produces

Per-capita spend table by cost center with ratio vs average, main category breakdown, and 3-month trend.

โšก Benefit

Before

Spend comparison between teams is done on totals, without normalizing for team size.

After

Fair per-capita spend comparison, enabling identification of genuinely overspending teams.



# Spend per employee โ€” per capita analysis

## Purpose
Calculate and analyze average spend per employee by cost center. Identify teams whose spend per head is significantly above or below the internal average, and track how this KPI evolves over time.

## Instructions

### Step 1 โ€” Retrieve active users by cost center
```
Call get_users (with pagination).
For each active user: note id, costCenterId, role, status.
Count the number of active users per costCenterId โ†’ headcount.

Note: get_users returns Spendesk users (not necessarily the entire company).
Headcount is therefore the number of Spendesk users per team.
```

### Step 2 โ€” Retrieve spend by cost center
```
Call spendesk_analyze_spend with:
  - groupBy: costCenter
  - Period: current month (or M-1 for complete data)
  - Include all expense categories

For each cost center: id, name, totalAmount, currency.
```

### Step 3 โ€” Calculate spend per capita
```
For each cost center with headcount > 0:
  spendPerEmployee = totalAmount / headcount

Global average = totalSpend / totalHeadcount

For each center:
  Ratio vs average = spendPerEmployee / global_average

Categories:
  ๐Ÿ”ด > 2x the average: very high spend per capita
  ๐ŸŸก 1.5xโ€“2x: above average
  ๐ŸŸข 0.5xโ€“1.5x: normal range
  ๐Ÿ’ก < 0.5x: underutilization (team not very active on Spendesk?)
```

### Step 4 โ€” Breakdown by category (top 5 centers)

โš ๏ธ **Verified bug**: `expenseCategory` does not exist as a `spendesk_analyze_spend` dimension โ€” calling it this way returns a server error (`"grouper is not a function"`). Valid dimensions are: `costCenter, supplier, employee, month, week, currency, analyticalCode, payableType, bookkeepingStatus, paymentStatus, vatRate`. In this Spendesk instance, employee-facing "expense categories" are carried by the custom analytical field "Analytic codes" โ€” use the `analyticalCode` dimension instead:

```
For the 5 cost centers with the highest spend per capita:
  Call spendesk_analyze_spend with groupBy: [costCenter, analyticalCode], filters.costCenterIds=[<center id>]
  analyticalCode values already come back named in the row's breakdown[] โ€” no need for get_analytical_field_values unless you need to double-check a raw ID
  Identify the top 3 categories explaining the spend level
```

### Step 5 โ€” Evolution over 3 months
```
Calculate spend per capita for the last 3 months for the 5 largest centers:
  Compare: trend rising / stable / declining?
```

### Step 6 โ€” Per capita report
```
Present:
1. Global KPI: Xโ‚ฌ per employee / month (Spendesk)
2. Table by cost center:
   Team | Headcount | Total spend | Spend/employee | vs Average
3. Top 3 teams with high spend per capita (with category breakdown)
4. Fast-growing teams (3 months)
5. Recommendations: which teams deserve a spend review?
```

## Points of attention
- Spendesk headcount โ‰  total HR headcount โ€” some employees don't have a Spendesk account
- Teams with specific missions (field sales, events) naturally have higher levels
- Interpret in business context before drawing conclusions

## Example prompts
- "Which team has the highest spend per person?"
- "Calculate average spend per employee by department"
- "How has our per capita spend evolved over the last 3 months?"

How to install this skill

/
  1. 1
    Download the file s56-spend-per-employee.md using the button above.
  2. 2
    Place the file in the .claude/ directory of your project (or ~/.claude/ for a global install).
    cp s56-spend-per-employee.md .claude/s56-spend-per-employee.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_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
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