Skill detail

close-month

Closes the books by reconciling the ledger against payment processors, writes the P&L narrative, refreshes the cash forecast, and publishes the close packet.

Why we recommend it: Month-end close chain: reconcile ledger, forecast, and publish close packet, matching close and report facets.

MatchDirectRecommended for Accounting
Sourceanthropics/​knowledge-work-pluginsExternal source
Reported installs1,638Popularity signal only

Inspect before use

Read the source instructions and check the requirements before you install this skill.

Saved source preview

SKILL.md

The saved excerpt is a snapshot from when this skill was listed. The external source remains the complete and most current version.

---
name: close-month
description: Closes the books and turns them into a decision as a three-link chain — month-end-prep reconciles the ledger against every connected payment processor and writes the P&L narrative, cash-flow-snapshot then refreshes the 30/60/90-day forecast off the newly closed numbers rather than raw ones, and report-builder publishes and distributes the close packet. Requires a ledger (MYOB, NetSuite, QuickBooks, Xero, or Zoho Books) and uses Gusto, PayPal, Ramp, Shopify, Square, and Stripe when connected, falling back to statement or CSV uploads. Trigger on "close the month," "month-end," "close the books," "reconcile," "send the close packet to my accountant," or when the owner asks why revenue or margin moved last month. An owner who wants only the reconciliation and its flags, with no forecast refresh and no packet distribution, routes to month-end-prep directly.
allowed-tools: Read, WebFetch
---

Run the month-end chain. Close, then forecast off the closed books, then publish. The ordering is the product.

Parse arguments:
- `--month` (default: previous calendar month) — `YYYY-MM`
- `--save-to` (default `files`) — `files` (Drive / OneDrive), `desktop`, or `both`

**A ledger is required** — MYOB, NetSuite, QuickBooks, Xero, or Zoho Books, whichever is connected; they are peers (`../../shared/connector-neutrality.md`). If none is reachable, stop and say so. Reconciliation without a ledger is not a close. Offer the CSV path from `month-end-prep` rather than producing a partial packet. If two ledgers are connected, ask which holds the books being closed and name it in the packet.

## Step 1 — Close and reconcile (month-end-prep)

Run `month-end-prep` for the target month, start to finish.

- **In:** the target month.
- **Out:** the reconciliation table, the flagged items (uncategorized, suspicious duplicates, missing receipts), the P&L narrative, and the close packet XLSX plus one-page PDF.
- **Gate:** `month-end-prep`'s own Step 6 sign-off holds. The owner triages every flagged item — or explicitly skips it — before anything downstream runs.

**This step owns the numbers.** Nothing later in the chain recategorizes a transaction or restates revenue.

### The hard gate before Step 2

Do not start the forecast until the owner has signed off on the close. Say plainly what is waiting:

> "Books are closed for April — USD 3,200 in variances resolved, two receipts still missing. Ready to refresh your cash forecast off these closed numbers?"

If flagged items are still open, name them and ask whether to forecast anyway. A forecast built on eleven uncategorized transactions is a forecast built on a guess, and the owner deserves to know which they are getting.

## Step 2 — Forecast off the closed books (cash-flow-snapshot)

Run `cash-flow-snapshot` using the reconciled month as its historical base.

- **In:** the closed-month figures from Step 1 — actual AR collection timing, actual fixed costs as coded, actual settlement lag.
- **Out:** the 30/60/90-day forecast with confidence bands and named risks.
- **Gate:** none. The forecast is read-only.

**Say why this ordering matters, in the output.** A forecast run on raw books inherits every miscoded expense and every unmatched settlement. Running it after the close means the payment-timing history is real and the fixed-cost floor is right. One line is enough:

> "This forecast is built on April's closed books, so the collection timing and cost floor reflect reconciled numbers — not the raw register."

If the close surfaced something that moves the forecast — a duplicate vendor charge removed, a settlement finally matched — call out the delta against last month's forecast.

## Step 3 — Publish and distribute (report-builder)

Run `report-builder` to package and deliver the close.

- **In:** the P&L narrative and packet from Step 1, the forecast from Step 2.
- **Out:** the merged close packet — chat summary first, then the workbook. Save the definition so next month's c
Read the full source on GitHub (opens external page)
Context

Related work