See where the money goes by category
Breaks spend down by category (software, travel, marketing…) with the monthly trend and the uncategorised share.
Finance Analyst📆 MonthlyIntermediateRead-only
Ask it like this
Where does the money go by expense category over the last 12 months?
When to use it
Every month or quarter, to see how spend splits by nature and spot what is accelerating.
What it produces
Total, categorised and uncategorised share, then a table per category with amount, share, number of expenses, highest month and trend.
How it works
- 1Gets your expense categories
- 2Breaks spend down by category, month by month
- 3Checks that the category total matches the real total
- 4Isolates the share of spend with no category
- 5Spots categories that are accelerating or one-off
What protects you
- This skill only reads: it changes nothing in Spendesk
- It acts with your permissions and your role, never beyond
- The assistant cannot approve or pay
▸Technical detail88/100 · 2 tools
Spend analysisReportsget_expense_categoriesspendesk_analyze_spend
# Spend by expense category
## Why this skill exists
`spendesk_analyze_spend` has **no "category" dimension** in `groupBy`. Expense categories come out under `analyticalCode`, mixed with the values of custom analytical fields (region, project…). Unsorted, the table is wrong. This skill isolates the categories.
## Step 1 — Get the categories
```json
{ "tool": "get_expense_categories", "params": {} }
```
Returns `id`, `name`, `isArchived`. Keep the list of `id`s: it filters step 2.
- Archived categories are included: keep them for history, and flag them.
- These are employee-facing labels, **not accounting accounts**: do not present them as GL codes (use `get_chart_of_accounts` for that).
- `costCenters: []` means the category applies to every cost center, not to none.
## Step 2 — Analyse and keep only the category rows
```json
{
"tool": "spendesk_analyze_spend",
"params": {
"fromDate": "YYYY-MM-DD",
"toDate": "YYYY-MM-DD",
"groupBy": ["analyticalCode", "month"],
"limit": 50
}
}
```
In the response, **keep only the rows whose `id` is one of the category IDs** from step 1. The other rows are values of other analytical fields: ignore them.
- `analyticalCode` first in `groupBy`, `limit` at 50 so that no category falls into "Others".
- State the exact dates used. Maximum period: 366 days.
- Do not reuse `share`: it is computed across all rows, other fields included. Recompute each share on `summary.totalAmount`.
## Step 3 — Consistency check
Add up the category rows and compare with `summary.totalAmount`:
- **Equal**: all spend has a category. Verified live over 12 months: IT & Technical fees EUR 87,235.36 + Announcements & Ads EUR 25,984.90 + Travel & Expense EUR 500.00 = EUR 113,720.26, exactly the total.
- **Lower**: the gap is spend **with no category**. Show it on an "Uncategorised" row.
- **Higher**: this should not happen, since each row carries only its own category's amounts. Check that no non-category row was kept; if the gap remains, say so rather than forcing the total.
## Step 4 — Read the trend
The `month` level under each category gives the monthly series. To spot what is accelerating:
- compare the latest month with the average of the earlier months of the same category;
- flag a category concentrated in a single month (on the demo account, 94% of "IT & Technical fees" fell in July): that is a one-off, not a trend.
`compareWithPreviousPeriod` compares with the window of equal length just before, not with the previous calendar month or quarter: read `summary.previousPeriod.period` and show it as returned.
## Recommended output format
```
Spend by category — from <date> to <date>
Total: X EUR — categorised: Y EUR — uncategorised: Z EUR
| Category | Amount | Share of total | No. of expenses | Highest month | Trend |
```
Amounts in functional currency, including VAT, on the document date. Credit notes are included and netted off. The MCP does not read budgets: for a variance against budget by category, the user supplies the figures.
## Example user prompts
- "Where does the money go by expense category over the last 12 months?"
- "Which expense categories grew the most this quarter?"
- "What share of our spend has no category?"
How to install this skill
/
- 1Download the file
s74-depenses-par-categorie.mdusing the button above. - 2Place the file in the
.claude/directory of your project (or~/.claude/for a global install).cp s74-depenses-par-categorie.md .claude/s74-depenses-par-categorie.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, spendesk_analyze_spend.Similar skills
★ Top