Prepare the monthly management report
Assembles the CFO's monthly summary in four blocks: cash position, committed spend, cash out, overdue invoices.
CFO๐ MonthlyIntermediateRead-only
Ask it like this
Prepare my management report for September.
When to use it
Every month, before the management review or committee, for a one-page summary of the month just ended.
What it produces
One page: available cash, the month's spend with comparison, net cash out by type, overdues by bucket, and three points to watch with figures.
How it works
- 1Reads the cash available on the wallet
- 2Totals the month's committed spend, by cost center
- 3Measures the cash that actually went out over the period
- 4Sums up overdue supplier invoices, by age
- 5Puts it all on one page, with three points to watch
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 detail85/100 ยท 4 tools
ReportsSpend analysisget_wallet_summaryspendesk_analyze_spendspendesk_analyze_settlementsspendesk_get_due_invoices
# Monthly management report
## Principle
Four blocks, four tools, **four different bases**. The value of the report lies in not mixing them: every figure is shown with its basis.
| Block | Tool | Basis |
|-------|------|-------|
| Available cash | `get_wallet_summary` | Wallet balance right now (short cache) |
| Committed spend | `spendesk_analyze_spend` | Payables, on document date, including VAT |
| Cash actually out | `spendesk_analyze_settlements` | Settlements, on clearing date |
| Overdue invoices | `spendesk_get_due_invoices` | Unpaid invoices, as of today |
Before any call, state the exact dates used (e.g. "from 2026-09-01 to 2026-09-30").
## Block 1 โ Cash position
```json
{ "tool": "get_wallet_summary", "params": {} }
```
Three figures never to confuse: `totalAmount` (wallet balance), `totalAllocatedAmount` (already committed to cards and scheduled transfers), `totalAvailableAmount` (what is left to spend). For "can we cover X", use `totalAvailableAmount`, and always name the figure you quote.
## Block 2 โ Committed spend for the month
```json
{
"tool": "spendesk_analyze_spend",
"params": {
"fromDate": "2026-09-01", "toDate": "2026-09-30",
"groupBy": ["costCenter"], "compareWithPreviousPeriod": true, "limit": 10
}
}
```
โ ๏ธ Trap verified live: the "previous period" is the window **of equal length just before**, not the previous calendar month. For September (30 days), the comparison covered **2 to 31 August**, and 1 August was left out. Read `summary.previousPeriod.period` and show it as returned. For a true calendar month against calendar month comparison, make a second call on the previous month.
Other points:
- `amountChange` is `null` when the previous period is zero: write "no basis for comparison", not "+0%".
- `summary.totalOutstandingAmount` gives what is still owed on that spend.
- Repeat the call with `groupBy: ["supplier"]` for the top suppliers.
- Credit notes are included and netted off; exclude `creditNote` in `filters.payableTypes` for gross spend.
## Block 3 โ Cash actually out
```json
{
"tool": "spendesk_analyze_settlements",
"params": { "fromDate": "2026-09-01", "toDate": "2026-09-30", "groupBy": ["type"] }
}
```
The total is **net and signed**: payments, reimbursements and advances are positive; refunds received and chargebacks are negative. Group by `type` to separate directions.
This figure does not reconcile with block 2: a September invoice can be paid in October. Show the two side by side, without subtracting one from the other.
## Block 4 โ Overdue invoices
```json
{ "tool": "spendesk_get_due_invoices", "params": { "includeLineItems": false } }
```
Returns the 1-30, 31-60, 61-90 and 90+ day buckets, with `summary.totalOverdueAmount` and `oldestInvoiceDaysOverdue`. It only covers unpaid supplier invoices (not expense claims or cards).
- Do not pass a past date as `asOfDate` for "the month-end aging": it is not a historical aging.
- If `scheduledTransfersAmount.scheduledInvoicesAmount` in block 1 is 0, no invoice has been deducted from the available amount: compare the overdue total against it in full.
## Recommended output format
```
Management report โ <month> (<exact dates>)
1. Cash Available: X EUR (balance Y, committed Z)
2. Spend Committed: X EUR โ vs <exact previous period>: ยฑN%
Top cost centers / top suppliers
3. Cash out Net: X EUR (payments A, refunds B)
4. Overdue X EUR across N invoices, oldest at D days
Points to watch: 3 lines at most, each with a figure.
```
## Limits to state in the report
- No budget: the MCP does not read budgets. For a variance against budget, the user supplies the figures.
- One company at a time: on a multi-entity connection, repeat the four blocks per entity and never add different currencies together.
- Recent card spend can be missing from block 2 until it becomes a payable.
## Observed result (demo account, September 2026)
Available EUR 97,300.29 (balance EUR 98,900.00, committed EUR 1,599.71). Committed spend EUR 25,834.90 across 2 payables, a single cost center, no basis for comparison (previous period at zero). Net cash out EUR 10,613.50 in 2 payments. Overdue EUR 19,095.67 across 11 invoices, all more than 90 days late.
## Example user prompts
- "Prepare my management report for September"
- "Give me the month's summary: cash, spend, cash out and supplier overdues"
- "Same report for the German entity"
How to install this skill
/
- 1Download the file
s73-reporting-mensuel-direction.mdusing the button above. - 2Place the file in the
.claude/directory of your project (or~/.claude/for a global install).cp s73-reporting-mensuel-direction.md .claude/s73-reporting-mensuel-direction.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_wallet_summary, spendesk_analyze_spend, spendesk_analyze_settlements, spendesk_get_due_invoices.Similar skills
โ
Top