Expense categories and cost center mapping
Lists expense categories and their mapping to cost centers configured in Spendesk. Useful for understanding the company's analytical structure.
87/100ยท๐ Ad hocยทIntermediateControllerFinance Analyst
SettingsSpend analysisget_expense_categoriesget_cost_centers
๐ฏ Skill purpose
Lists expense categories and their mapping to cost centers configured in Spendesk. Useful for understanding the company's analytical structure.
๐ What it produces
Expense category reference with associated cost center and mapping rules.
โก Benefit
Before
Opaque analytical structure โ required asking the Spendesk administrator.
After
Readable category โ cost center mapping in one call, without admin access.
# Expense categories and cost center mapping
## Structure of a category
```json
{
"id": "r96xprmx87jiso",
"name": "ABM",
"costCenters": [
{
"id": "e411c663-1e1f-4b1e-b674-d954272afbc4",
"name": "Marketing"
}
]
}
```
Fields: `id`, `name`, `costCenters` (array of `{id, name}` objects).
## Call
```json
{
"tool": "get_expense_categories",
"params": {
"companyId": "<companyId>"
}
}
```
Returns all categories in a single response (no pagination). On this account: 62 categories.
## Category โ cost centers mapping (1-to-many)
A category can be linked to several cost centers. Examples:
- "Agency" โ 7 CCs (including Marketing + 6 "X- old" CCs)
- "Workspace - Rental costs" โ 2 CCs ("X- old Workspace" + "People")
- "ABM" โ 1 CC (Marketing only)
## Categories with no mapping (costCenters = [])
**15 categories have no associated cost center** โ `costCenters: []` (empty array). These are generally cross-functional categories or ones not allocated to a specific department:
| Category | Typical usage |
|-----------|--------------|
| Externalised salaries | Externalized payroll |
| Financial result | Financial results |
| Monthly Learning Allowance | Individual training budget |
| Personal Expense | Personal expense claims |
| Salaries | Salaries |
| Server and COGS tools | Cloud infrastructure |
| Services - Consulting & advisory | Consulting |
| Services - Contractors or Freelancer | Freelancers |
| Tools and subscriptions | SaaS subscriptions |
| Travel & Expense (T&E) - Business | Business expense claims |
| Travel & Expense (T&E) - Candidates | Candidate expenses |
| Travel & Expense (T&E) - Relocation | Relocation |
| Travel & Expense (T&E) - Remote employee | Remote employee expenses |
| T&E - Spendesk Onboarding Connect | Onboarding |
| T&E - Team Building & Team Lunch | Team events |
**Correct interpretation:** `costCenters: []` = no mapping configured, not an "error" nor an "invalid category".
## Outdated mappings (X-old CCs)
Some categories point exclusively to "X-old" CCs decommissioned by convention (but still `isArchived: false` in the API). Examples:
- "Content" โ only "X- old Content" (decommissioned CC)
- "Banking charges" โ mix of an active CC ("Banking Operations") + 5 "X-old"
- "Agency" โ Marketing (active) + 6 "X- old" CCs
These mappings were not updated during the team restructuring.
## Correspondence with the API reality
On this account, the CCs referenced in `costCenters` include CCs with `isArchived: false` (active and X-old) โ never CCs with `isArchived: true`. Categories do not point to the 10 truly archived CCs.
## No filter or pagination
`get_expense_categories` always returns the complete list. No filter available (by name, by CC, by status). Filtering must be done client-side.
## Common usage pattern
1. Retrieve all categories with `get_expense_categories`
2. Identify active categories: exclude those whose `costCenters` are all "X-old" CCs
3. For spend by category: `get_payables(filters.expenseCategoryIds=[id1, id2])`
## Distinction from get_cost_centers
| Tool | Returns | Usage |
|------|----------|-------|
| `get_expense_categories` | Employee-facing labels + linked CCs | Reference data for expense classification |
| `get_cost_centers` | Departments/entities + owners | Organizational reference data |
A category ("Travel & Expense - Business") can be used by all CCs โ the mapping in `get_expense_categories` specifies for which CCs this category is configured in the Spendesk UI.
## Example user prompts
- "List all available expense categories"
- "Which expense categories are associated with the Marketing cost center?"
- "Are there any categories without a configured cost center?"
- "Give me the full category / cost center reference data for our ERP integration"
How to install this skill
/
- 1Download the file
s36-categories-depenses.mdusing the button above. - 2Place the file in the
.claude/directory of your project (or~/.claude/for a global install).cp s36-categories-depenses.md .claude/s36-categories-depenses.md - 3Use 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 get_expense_categories, get_cost_centers.Similar skills
โ
Top