Track the monthly spend trend

Tracks the company's monthly spending evolution sorted chronologically. Particularly useful for budget performance reviews and trend detection.

CFOFinance Analyst๐Ÿ“† MonthlyBeginnerRead-only

Ask it like this

Show the trend of our spend over the last 12 months.

When to use it

When you want to see spend month by month and spot an unusual month.

What it produces

Monthly chronological spending series with amounts and month-over-month changes.

How it works

  1. 1Totals each month's spend over a year
  2. 2Puts the months back in chronological order
  3. 3Works out the average and the month-on-month change
  4. 4Flags the last month when it is incomplete
  5. 5Spots months well above or below the average

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 detail87/100 ยท 1 tools
Spend analysisReportsspendesk_analyze_spend

# Instructions โ€” Monthly spend trend

## โš ๏ธ Default sort = descending amount (not chronological)

Without `sortBy`, months are returned from highest to lowest:
```
2026-01 (10.7%) โ†’ 2025-12 (10.3%) โ†’ 2025-10 (9.4%) โ†’ ...
```

For a **chronological trend chart**, always specify:
```json
"sortBy": "name",
"sortOrder": "asc"
```
โ†’ Months are then returned in order `2025-07 โ†’ 2025-08 โ†’ ... โ†’ 2026-06`.

## โš ๏ธ Use limit=12 for a full year

By default `limit=10` โ†’ for a groupBy=month over 12 months, the 2 least significant months fall into "Others". Always pass `limit=12`. The period cannot exceed 366 days per call: for 2 years, make two one-year calls (each with `limit=12`) and combine the results only once both have completed.

## โš ๏ธ Partial last month

If the period includes the current month, the last month will show a lower amount (partial data).
Always state: *"Data for [current month] is partial."*

## Step 1 โ€” Monthly call

```json
{
  "companyId": "...",
  "fromDate": "YYYY-MM-DD",
  "toDate": "YYYY-MM-DD",
  "groupBy": ["month"],
  "sortBy": "name",
  "sortOrder": "asc",
  "limit": 12
}
```

## Step 2 โ€” Interpreting the fields

Each row:
- `key`: `"YYYY-MM"` โ€” month in ISO format (e.g. `"2025-07"`)
- `amount`: total spend for the month (integer coefficient, divide by 10^precision)
- `count`: number of payables in the month
- `share`: relative weight of the month within the breakdown, in % (computed on payable line amounts; it does not divide `summary.totalAmount`)

## Step 3 โ€” Calculating trend metrics

```
monthly_average = summary.totalAmount / number_of_months
max_month = max(data[].amount)
min_month = min(data[].amount)
month_over_month_change = (month_n.amount - month_n-1.amount) / month_n-1.amount ร— 100
```

## Step 4 โ€” Detecting anomalies

Alert on:
- Month with very low `count` but high `amount` โ†’ a few large invoices
- Month with change > ยฑ30% vs the previous month โ†’ spike or dip to explain
- Incomplete current month โ†’ mention explicitly

## Live example (real data, Jul 2025 โ†’ Jun 2026, sorted by amount โ€” not by date)

| Rank | Month | Amount (EUR) | Count | Share |
|------|------|--------------|-------|-------|
| 1 | 2026-01 | 1,769,755 | 605 | 10.7% |
| 2 | 2025-12 | 1,697,623 | 666 | 10.3% |
| 3 | 2025-10 | 1,554,335 | 774 | 9.4% |
| 4 | 2026-02 | 1,531,954 | 742 | 9.3% |
| 5 | 2026-03 | 1,464,520 | 688 | 8.9% |
| 6 | 2025-08 | 1,457,602 | 339 | 8.8% |
| 7 | 2026-04 | 1,368,217 | 801 | 8.3% |
| 8 | 2025-11 | 1,290,375 | 652 | 7.8% |
| 9 | 2025-07 | 1,200,645 | 387 | 7.3% |
| 10 | 2025-09 | 1,149,472 | 444 | 7.0% |
| 11 | 2026-05 | 1,129,378 | 492 | 6.8% |
| 12 | 2026-06 | 910,700 | 609 | 5.5% |

โ†’ No "Others" row โœ… (limit=12 = 12 months)
โ†’ Total: EUR 16,524,574.27 over 12 months
โ†’ Monthly average: **~EUR 1,377,048/month**
โ†’ June 2026 is the lowest (partial data โ€” month in progress at the time of the test)

With `sortBy=name, sortOrder=asc`: the same data would be returned in the order jul-25, aug-25, ..., jun-26.

## Example prompt

- "Show the trend of our spend over the last 12 months" โ†’ groupBy=month, sortBy=name, sortOrder=asc, limit=12
- "Which month did we spend the most?" โ†’ groupBy=month, sortBy=amount (default), limit=1
- "Month-by-month evolution since January 2026" โ†’ fromDate=2026-01-01, toDate=today, groupBy=month, sortBy=name

How to install this skill

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

Similar skills

โ˜… Top
95/100ยท๐Ÿ” Ad hocยทExpert

Audit what the MCP covers

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

Interested in AI Agent services or Custom Integrations?