skill
Month End Prep
Reconciles the accounting ledger (MYOB, NetSuite, QuickBooks, Xero, or Zoho Books) against PayPal, Shopify, Square, and Stripe settlements, flags transactions that need attention, suspicious duplicates, and missing receipts, then writes a plain-English P&L narrative and exports a close packet (xlsx + one-page PDF). This is the first link of the /close-month command; a request to close the month or the books routes there, and the command runs this skill before refreshing the forecast and distr...
About
# Month End Prep
## Quick start
Connect your bookkeeping ledger and at least one payment processor, then say "let's close the month." Claude walks you through each step of the checklist, pausing for your input at each gate before moving forward.
Any connected ledger runs the close. Each has a reference file for its reads and its "needs attention" signal: [reference/quickbooks-reconcile.md](reference/quickbooks-reconcile.md), [reference/xero-reconcile.md](reference/xero-reconcile.md), [reference/zoho-books-reconcile.md](reference/zoho-books-reconcile.md); NetSuite and MYOB are in [reference/v2_sources.md](reference/v2_sources.md). Ledgers are peers (`../../shared/connector-neutrality.md`): if two are connected, ask which holds the books being closed, read the other only for what it uniquely holds, and never sum a figure across both.
Every amount is in the business's currency (`../../shared/currency-and-locale.md`). The thresholds below (0.50, 0.01, 25) are in that currency.
If a connector is missing, Claude falls back to asking for a CSV export — it won't silently skip a step.
## Workflow
Work through these steps in order. Each step has a completion state; don't advance until the current step is settled.
### Step 1 — Agree on the target month
Ask the user which month to close. Default to the prior calendar month if they don't specify. Confirm before pulling any data.
### Step 2 — Pull the ledger's P&L and register
Fetch: - Profit & Loss report for the target month (revenue, COGS, gross margin, operating expenses, net income) - The register, as the ledger's reference file defines it. QuickBooks: the transaction list, every income and expense line. Xero: bills, invoices, and the bank-transaction queue, with that scope stated in the packet. Zoho Books: invoices, expenses, and purchase orders, with the P&L itself coming from an export because the connector has no report endpoint.
Flag immediately, using the ledger's own "needs attention" signal: - **QuickBooks** — uncategorized lines ("Uncategorized," blank, "Ask My Accountant") and its Needs Review flag - **Xero** — bank lines still unreconciled at month end - **Zoho Books** — the `uncategorized_transactions` count on each bank account
Present the count ("14 transactions need attention") and list them for the user to resolve in the ledger before proceeding. Don't advance with open items unless the user explicitly says "skip for now."
See [reference/quickbooks-reconcile.md](reference/quickbooks-reconcile.md), [reference/xero-reconcile.md](reference/xero-reconcile.md), and [reference/zoho-books-reconcile.md](reference/zoho-books-reconcile.md) for field mappings and API notes.
### Step 3 — Pull payment processor settlements
Fetch settlement reports from PayPal, Square, Stripe, or Shopify — whichever are connected — for the same calendar month.
**Check the bank feed first.** When a processor pays out through a bank feed, the payout is already a ledger line and the question is whether it has been matched. Find unreconciled bank lines naming a processor and list them per processor as the action items before doing any CSV match. This applies to any ledger that carries a bank feed with a reconciled state — the usual case in Xero, and QuickBooks bank-feed lines when the connector exposes them. MYOB holds no bank side, and Zoho Books exposes balances but no bank-transaction list, so a MYOB or Zoho Books close goes straight to the CSV match below.
**Compare net to net, or every line looks broken.** The ledger records the net bank deposit; the processor's report shows the gross sale. Match those directly and every row shows a discrepancy the exact size of the fee. Use the processor's **net payout** (gross minus fees) — see [reference/gotchas.md](reference/gotchas.md).
Match each settlement deposit against the ledger's bank deposit line: - **Match** — amount and date agree within 2 days → mark as reconciled - **Difference < 0.50** — rounding/fee; note but don't flag - **Difference ≥ 0.50** — flag with the delta amount - **Settlement exists, no ledger deposit** — flag as "missing in the ledger" - **Ledger deposit exists, no settlement** — flag as "deposit not in processor data"
See [reference/paypal-settlements.md](reference/paypal-settlements.md) for settlement report field mappings (PayPal, Square, Stripe) and [reference/v2_sources.md](reference/v2_sources.md) for Shopify.
### Step 4 — Detect suspicious duplicates
Scan the register for likely duplicate charges or deposits. Flag a transaction as a suspicious duplicate when **all three** match: - Same amount (within 0.01) - Same vendor or customer name - Posted within 5 calendar days of each other
Scan what the ledger actually holds. In QuickBooks that is the transaction list, with split rows grouped by transaction id first. In Xero a bill keyed twice makes two unpaid documents and no bank line, so scan bills and invoices (same contact, same total, within 5 days, both unpaid or one paid in
Install
Run this command
git clone https://github.com/anthropics/knowledge-work-plugins && cp -r knowledge-work-plugins/small-business/skills/month-end-prep ~/.claude/skills/Works with
Manual steps
Clone the repository and copy the `small-business/skills/month-end-prep` folder into your Claude skills directory. Compatible with Claude Code, Cursor, Codex, and any Agent Skills-compatible agent.
Related assets
More curated picks in Productivity & Office.
npm install @modelcontextprotocol/server-time
git clone https://github.com/anthropics/knowledge-work-plugins && cp -r knowledge-work-plugins/operations/skills/change-request ~/.claude/skills/
git clone https://github.com/anthropics/knowledge-work-plugins && cp -r knowledge-work-plugins/product-management/skills/product-brainstorming ~/.claude/skills/
git clone https://github.com/anthropics/knowledge-work-plugins && cp -r knowledge-work-plugins/operations/skills/compliance-tracking ~/.claude/skills/
git clone https://github.com/anthropics/knowledge-work-plugins && cp -r knowledge-work-plugins/operations/skills/process-optimization ~/.claude/skills/
git clone https://github.com/anthropics/knowledge-work-plugins && cp -r knowledge-work-plugins/enterprise-search/skills/search-strategy ~/.claude/skills/
Audit before you install
Run any source through our checks - AI visibility, security, performance, and stack detection.
Automated Web Security Scan
security
PageSpeed Analyzer
performance
AI Content Quality Test
arabic content
AI Agent / MCP Server Tester
ai testing
Site Stack Detector
migration
AI SEO / AEO / GEO Audit
ai visibility
llms.txt Generator
ai visibility
Readability Score
arabic content
Schema / JSON-LD Builder
ai visibility
AI Cost Calculator
ai testing
Headline Analyzer
arabic content