Prepare the period-end cut-off

Lists expenses dated in the period and not yet exported to accounting, as the basis for accrual entries.

Controller๐Ÿ“† MonthlyExpertRead-only

Ask it like this

Which September expenses have not gone to accounting yet?

When to use it

At close, to establish the basis for accrued expenses.

What it produces

Count and gross and net amounts of expenses not exported, by status, with late entries flagged.

How it works

  1. 1Measures the period's expenses not yet exported
  2. 2Lists those expenses with their amount net of tax
  3. 3Flags those entered after the period end
  4. 4Reads, on request, each one's expense account
  5. 5Presents the basis for accrual entries

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 detail58/100 ยท 3 tools
ERP exportReconciliationspendesk_analyze_spendget_payablesget_payable_by_id

# Period-end cut-off

## Purpose

List the expenses dated in the period being closed that have not yet gone to accounting: this is the basis for accrual entries (accrued expenses on the Spendesk side).

**This skill does not produce a FEC.** The French statutory accounting file is generated from your accounting software. For the purchase and bank journals as Spendesk exports them, with their accounts, use the accounting export skill (a preview that changes nothing).

## Step 1 โ€” Measure what is not exported

State the period's exact dates.

```json
{
  "tool": "spendesk_analyze_spend",
  "params": { "fromDate": "2026-09-01", "toDate": "2026-09-30", "groupBy": ["bookkeepingStatus", "payableType"] }
}
```

The `toPrepare` and `toExport` rows are the period's expenses not yet in accounting. The period applies to the **document date** (`payableDate`): that is the date that matters for a cut-off.

## Step 2 โ€” List those expenses

```json
{
  "tool": "get_payables",
  "params": { "filters": { "operator": "and", "subfilters": [
    { "field": "payableDate", "operator": "between", "value": { "from": "2026-09-01T00:00:00.000Z", "to": "2026-09-30T23:59:59.999Z" } },
    { "field": "bookkeepingStatus", "operator": "=", "value": ["toPrepare", "toExport"] }
  ] } }
}
```

- The field is `bookkeepingStatus`; the document date is filtered with `payableDate`. There is no `bookingStatus`, `invoiceDate` or `glCode` field.
- Each expense carries its lines in `itemLines`, with `netAmount`, `vatAmount` and `grossAmount`: the accrual is measured **net of tax**.
- To total, use `functionalAmount`; per-line amounts are in the expense's own currency.
- Page with `cursor` while `hasNextPage` is `true`.

## Step 3 โ€” Late arrivals

Expenses dated in the period but entered after it ended are the easiest to miss. On the step 2 list, flag those whose `firstCreatedAt` is after the period end.

## Step 4 โ€” Accounts and counterparties (on request)

Accounts are not in the list. For a given expense:

```json
{ "tool": "get_payable_by_id", "params": { "id": "<expense id>" } }
```

Read `lineItems[].expenseAccount`, `counterparty.name` and `counterparty.accountPayable`. A `null` account means the expense is not coded yet: the accrual will have to be coded by hand. One call per expense: keep it for significant lines.

## Report

```
Cut-off <period> (<exact dates>)

Period expenses not exported: N โ€” X EUR gross, Y EUR net
  of which to prepare: N โ€” โ€ฆ | of which ready to export: N โ€” โ€ฆ
  of which entered after the period end: N

| Date | Supplier or employee | Type | Net | VAT | Status | Expense account |
```

Always have accrual entries validated by the accountant before posting.

## Limits to state

- The skill sees what is in Spendesk. An invoice not yet received, or still in the invoice inbox, is not an expense and does not appear: see the invoice and inbox skills for pending invoices.
- The accounting date (`accountingDate`) is only set when the editable accounting date feature is enabled; do not use it as a period filter.
- A card expense only becomes an accounting expense once it appears on the statement: card purchases from the last days of the month can be missing.

## Observed result (demo account, 5 October 2026)

For September 2026: 2 expenses not exported, both to prepare, for EUR 25,834.90 gross, i.e. EUR 21,710.00 net. Both had been entered during the month.

## Example prompts
- "Which September expenses have not gone to accounting yet?"
- "Prepare the accrued expenses basis for the September close"
- "Are there invoices dated September that were entered after month-end?"

How to install this skill

/
  1. 1
    Download the file s49-fec-regularisation.md using the button above.
  2. 2
    Place the file in the .claude/ directory of your project (or ~/.claude/ for a global install).
    cp s49-fec-regularisation.md .claude/s49-fec-regularisation.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_payables, get_payable_by_id.

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?