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…
Install / Use
npx skills add anthropics/knowledge-work-plugins --skill month-end-prepInstalls into whichever agent you are using.
SKILL.md
Installable skill definition
Quality Score
Category
Finance & AccountingSupported Platforms
Our assessment of month-end-prep
month-end-prep scores 95/100 on our quality scale, 6th of 29 Finance & Accounting skills we index (top 21%).
Its SKILL.md is 18 KB long, well organised into 18 sections with 1 code example: a thorough specification that gives an agent plenty to work with.
With 25,526 GitHub stars, it is one of the more widely adopted skills in the catalogue.
Maintenance, license and trust
- The repository was last updated yesterday, so month-end-prep is actively maintained.
- It is released under the Apache-2.0 license, a permissive license that allows use, modification and commercial use with attribution.
- Its trust signals score 100/100, with no cautions. These come from repository metadata, not a code audit — read the skill file before letting an agent act on it.
Safety scan
No issues foundOur scan of the whole file found no instruction hijacking, hidden characters, credential access, data exfiltration or destructive commands.
Automated pattern scan on 2026-09-26. It catches known dangerous patterns, not every risk — read a skill before letting an agent act on it.
month-end-prep compared with similar skills
All 4 of these similar skills score higher than month-end-prep; compare them before choosing.
| Skill | Score | Stars | Updated | Format |
|---|---|---|---|---|
| month-end-prep (this skill)by anthropics | 95 | 25.5k | 1d ago | SKILL.md |
| algorithmic-artby anthropics | 100 | 177.9k | 3d ago | SKILL.md |
| pptxby anthropics | 100 | 177.9k | 3d ago | SKILL.md |
| designby nextlevelbuilder | 100 | 130.2k | 4d ago | SKILL.md |
| ui-ux-pro-maxby nextlevelbuilder | 100 | 130.2k | 4d ago | SKILL.md |
Frequently asked questions
- How do I install month-end-prep?
- Run
npx skills add anthropics/knowledge-work-plugins --skill month-end-prep. The install tabs above show the steps for each supported agent. - Which AI agents does month-end-prep work with?
- It is written for Universal, as a SKILL.md file. Other agents that read the same format can often use it too.
- Is month-end-prep safe to use?
- Our scan of the whole file found no instruction hijacking, hidden characters, credential access, data exfiltration or destructive commands. It is Apache-2.0-licensed and scores 100/100 on trust signals. Skills are instructions an agent will follow, so read the file before installing it and do not approve commands you do not understand.
- Is month-end-prep still maintained?
- The repository was last updated yesterday, so month-end-prep is actively maintained.
Skill content
View source on GitHubname: month-end-prep description: > 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 distributing the packet. Use this skill directly only when the owner wants the reconciliation alone, with no forecast refresh and no distribution: "just reconcile, no packet," "what's missing from the books," "flag the duplicates and missing receipts," or "write the P&L narrative for this month." allowed-tools: Read, WebFetch
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/xero-reconcile.md,
reference/zoho-books-reconcile.md; NetSuite and MYOB
are in 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_transactionscount 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/xero-reconcile.md, and 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.
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 for settlement report field mappings (PayPal, Square, Stripe) and 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 inside the window) rather than bank lines — the mapping is in reference/xero-reconcile.md. Zoho Books is the same shape: scan invoices and expenses as documents (reference/zoho-books-reconcile.md).
Present flagged pairs to the user. They decide whether each is legitimate (e.g., a recurring weekly subscription) or a real duplicate to void.
The 5-day window is a filter, not a guarantee. It catches the same charge keyed twice without drowning the owner in recurring weekly bills, but a real double payment three weeks apart slips through. Say what was scanned ("repeats within 5 days"), and widen the window for a vendor they're suspicious about rather than calling it clean.
See reference/gotchas.md for common false-positive patterns and how to distinguish them.
Step 5 — Receipts check
Check the ledger first: an attachment on the transaction counts as a receipt on file
(AttachmentCount in QuickBooks; has_attachments in Xero, returned only with
include_line_items=true; has_attachment on Zoho Books invoices and expenses). Then,
if the Desktop connector is available, scan the
receipts folder (ask the user for the path; default ~/Documents/Receipts) for the
target month.
For each expense transaction above 25 with no attached document:
- Check for a matching receipt file (match by amount ± 0.50 and date within 3 days)
- Matched → note as "receipt on file"
- Not matched → flag as "missing receipt"
List missing receipts. The user can supply the file or mark as "receipt not required" (e.g., a recurring auto-pay with no receipt).
If Desktop connector is not available, ask the user to confirm which expenses they have receipts for — don't silently skip this step.
Step 5a — Payroll cross-check
Runs only when a payroll connector is connected (Gusto or QuickBooks Payroll — peers, whichever is connected). Otherwise skip it and say the packet carries no payroll column.
Pull what was actually paid in the month, totals only:
- Gusto —
list_payrollswithinclude=totals, keeping the payrolls whosecheck_datefalls in the target month. From eachtotals:gross_pay,employer_taxes,employee_taxes,net_pay. Thenlist_contractor_paymentsfor the same date range withgroup_by_date=true, takingtotal.wagesandtotal.reimbursements. Contractor totals cover US contractors only — say so in the packet footnote. - QuickBooks Payroll —
qbo_payroll_get_company_last_payroll_runfor the most recent run; earlier runs in the month come from the payroll summary export. (Confirm before the first close.)
Cross-check against the ledger: net pay plus employer taxes plus contractor wages should appear as the month's payroll expense lines. A difference above 0.50 is a reconciliation item — usually a run posted to the wrong month, or a payroll journal not yet posted.
Totals only, never people. The packet carries the month's totals and the count of
runs. No employee name, rate, or per-person amount leaves the connector — that is
payroll data, and payroll-prep is where it belongs. See
reference/v2_sources.md for the field mapping.
Step 6 — Owner sign-off gate
Present a summary before going further:
Needs attention (uncategorized or unreconciled): X of X resolved
Settlement discrepancies: X flagged, X resolved
Suspicious duplicates: X flagged, X cleared
Missing receipts: X outstanding
Payroll cross-check: matched / X difference / no payroll connector
Ask: "Ready to write the P&L summary and export the close packet?"
Do not proceed to Steps 7–8 without explicit confirmation.
Step 7 — Write the P&L narrative
Write a plain-English summary of the month — the kind an owner would share with their spouse or accountant, not a CFO memo. Aim for 150–250 words.
Structure:
- Headline — one sentence: "March came in at AUD 12,400 net, up 6% from February." Currency code, never a bare symbol.
- Revenue — what drove the number; name products, services, or customers if the data shows concentration.
- Gross margin — whether it held, rose, or compressed, and the main reason why.
- Key expenses — any line that moved more than 10% MoM or is outside the normal range; one sentence each.
- Bottom line — net income vs. prior month; ask if they have a target to compare.
- Watch list — 1–3 things to monitor next month.
Avoid jargon; define anything that isn't plain English ("MoM" = month over month).
See reference/examples/pl-narrative.md for a worked example.
Step 8 — Export the close packet
Produce two files:
close-packet-[YYYY-MM].xlsx — three sheets, four when a payroll connector is connected:
P&L— the ledger's P&L data, formattedReconciliation— matched and flagged transactions side by sideAction Items— any outstanding flags (uncategorized, missing receipts, etc.)Payroll— the Step 5a totals beside the ledger's payroll expense, with the delta
close-packet-[YYYY-MM]-summary.pdf — one page:
- Month and business name at the top
- Key figures (revenue, gross margin %, net income)
- The P&L narrative from Step 7
- Count of open action items, if any
Save both to the Desktop (or a path the user specifies). Confirm the file locations.
See reference/close-packet-format.md for column specs and PDF layout details.
Also deliver the close as a page, per the owner's stored output preference —
never default to a markdown file. Check the ## Business context block's
Output preference (shared style guide rule, ../../shared/artifact-style.md):
- Visual artifact (the default): render the close as an HTML page in the house style — additive to the chat summary and the files, never a replacement. Revenue, gross margin percent, and net income are stat tiles with their month-over-mon
Truncated for display — read the full file on GitHub.
Related Skills
algorithmic-art
177.9kCreating algorithmic art using p5.js with seeded randomness and interactive parameter exploration. Use this when users request creating art using code, generative art, algorithmic art, flow fields, or particle systems.
pptx
177.9kUse this skill any time a .pptx or .potx file is involved in any way — as input, output, or both. This includes: creating slide decks, pitch decks, or presentations; reading, parsing, or extracting text from any .pptx or .potx file (even if the extracted content will be used elsewhere, like in an em…
design
130.2kComprehensive design skill: brand identity, design tokens, UI styling, logo generation (55 styles, Gemini, Atlas Cloud, or MuAPI AI), corporate identity program (50 deliverables, CIP mockups), HTML presentations (Chart.js), banner design (22 styles, social/ads/web/print), icon design (15 styles, SVG…
ui-ux-pro-max
130.2kUI/UX design intelligence for web, mobile, and desktop. This skill should be used when designing, building, reviewing, or fixing interfaces, including pages, components, design systems, accessibility, interaction, responsive layout, typography, color, charts, and stack-specific UI implementation.
Languages
Trust signals
From repository metadata: license, adoption, age and documentation. Not a code audit — see the Safety scan above for what the skill file itself contains.
