关于 month-end-prep
month-end-prep 引导企业主完成月度账务结账,将账本活动与支付结算对账,并检查重复交易和缺失收据。它会生成供审核的结账材料包,包含财务摘要和待处理事项。
主要功能
- 01带审批关卡的月末清单
- 02账本损益表与交易检查
- 03支付结算对账
- 04重复交易与缺失收据检查
- 05可选工资总额交叉核对
- 06导出 Excel 和 PDF 结账材料包
适用场景
- 01完成一个会计月的结账
- 02查找未匹配的支付处理商款项
- 03检查重复交易与缺失收据
- 04为会计师准备结账材料包
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ anthropics/ knowledge-work-plugins --skill month-end-prep安装后在 Claude Code 中输入/month-end-prep确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
reference/close-packet-format.mdgotchas.mdpaypal-settlements.mdquickbooks-reconcile.mdv2_sources.mdxero-reconcile.mdzoho-books-reconcile.mdreference/examples/pl-narrative.md详细介绍
月末结账准备
快速开始
连接你的记账账本和至少一个支付处理商,然后说"开始月末结账"。Claude 会逐步带你完成检查清单,并在每个关卡暂停,等待你的输入后再继续。
任何已连接的账本都可以执行结账。每个账本都有一份参考文件,说明其读取方式和"需要关注"的信号:reference/quickbooks-reconcile.md、reference/xero-reconcile.md、reference/zoho-books-reconcile.md;NetSuite 和 MYOB 见 reference/v2_sources.md。各账本地位对等(../../shared/connector-neutrality.md):如果连接了两个账本,先询问哪一个保存着待结账的账目;另一个只读取其独有的数据;且绝不跨两个账本对同一金额求和。
所有金额均以企业的货币计价(../../shared/currency-and-locale.md)。下文的阈值(0.50、0.01、25)同样以该货币计。
如果缺少某个连接器,Claude 会改为请求提供 CSV 导出文件,不会悄悄跳过任何步骤。
工作流程
按顺序完成以下步骤。每个步骤都有完成状态,在当前步骤处理完毕前不要进入下一步。
第 1 步 — 确定目标月份
询问用户要结账的月份。若用户未指定,默认为上一个自然月。在拉取任何数据之前先请用户确认。
第 2 步 — 拉取账本的损益表和明细账
获取以下内容:
- 目标月份的损益表(收入、营业成本、毛利率、营业费用、净利润)
- 明细账,具体内容由账本的参考文件定义。QuickBooks:交易列表,即每一条收入和支出记录。Xero:账单、发票以及银行交易队列,并在数据包中注明该范围。Zoho Books:发票、费用和采购订单;由于连接器没有报表接口,损益表需从导出文件获取。
使用各账本自身的"需要关注"信号,立即标记:
- QuickBooks:未分类的记录("Uncategorized"、空白、"Ask My Accountant"),以及其 Needs Review 标记
- Xero:月末仍未核对的银行记录
- Zoho Books:每个银行账户上的
uncategorized_transactions数量
向用户展示数量("14 笔交易需要关注"),并列出这些交易,供用户先在账本中处理。除非用户明确表示"暂时跳过",否则不要在存在未处理事项时继续。
字段映射和 API 说明见 reference/quickbooks-reconcile.md、reference/xero-reconcile.md 和 reference/zoho-books-reconcile.md。
第 3 步 — 拉取支付处理商结算数据
获取同一自然月内已连接的 PayPal、Square、Stripe 或 Shopify 的结算报告(已连接哪些就拉取哪些)。
先检查银行流水。 当支付处理商通过银行流水打款时,这笔打款已经是账本中的一条记录,关键问题是它是否已完成核对。在做任何 CSV 匹配之前,先找出标明某支付处理商的未核对银行流水,并按处理商逐一列为待办事项。这适用于任何带有已核对状态银行流水的账本,即 Xero 的常见情况,以及 QuickBooks 连接器提供时的银行流水记录。MYOB 没有银行端数据,Zoho Books 只提供余额而不提供银行交易列表,因此 MYOB 或 Zoho Books 结账时直接进入下面的 CSV 匹配。
按净额对净额比较,否则每一行都会显示异常。 账本记录的是银行实际到账的净额,而支付处理商报告显示的是销售毛额。如果直接比较,每一行都会显示与手续费金额完全相同的差异。请使用支付处理商的净结算额(毛额减手续费),参见 reference/gotchas.md。
将每笔结算到账金额与账本中的银行到账记录逐一比对:
- 匹配 — 金额一致且日期相差在 2 天以内 → 标记为已核对
- 差额 < 0.50 — 舍入或手续费差异;记录备注但不标记
- 差额 ≥ 0.50 — 标记并注明差额金额
- 有结算记录但账本中无到账记录 — 标记为"账本中缺失"
- 账本中有到账记录但无结算记录 — 标记为"支付处理商数据中无此到账"
有关 PayPal、Square、Stripe 的结算报告字段映射,参见 reference/paypal-settlements.md;Shopify 相关内容参见 reference/v2_sources.md。
第 4 步 — 检测疑似重复记录
扫描账簿,查找可能重复的收费或到账记录。只有当三个条件同时满足时,才将交易标记为疑似重复:
- 金额相同(误差在 0.01 以内)
- 供应商或客户名称相同
- 入账日期相差在 5 个自然日以内
扫描账本中实际存储的数据。在 QuickBooks 中,即交易列表,需先按交易 ID 合并拆分行。在 Xero 中,同一张账单录入两次会产生两张未付单据且没有银行流水,因此应扫描账单和发票(同一联系人、同一总额、5 天以内,且两张均未付或其中一张在时间窗口内已付),而不是扫描银行流水。映射方法见 reference/xero-reconcile.md。Zoho Books 的做法相同:将发票和费用作为单据进行扫描(reference/zoho-books-reconcile.md)。
将标记出的配对呈现给用户。由用户判断每一组是否合理(例如每周固定的订阅扣款),还是需要作废的真实重复记录。
5 天窗口只是筛选条件,并不保证结果完整。 它能够在不让所有者被定期每周账单淹没的前提下,捕获同一笔款项被录入两次的情况,但相隔三周的真实重复付款会被漏掉。需要说明扫描范围("5 天内重复"),并且对于用户有怀疑的供应商,应扩大时间窗口,而不是直接判定其无异常。
常见误报模式及其区分方法,参见 reference/gotchas.md。
第 5 步 — 收据检查
先检查账本:交易上附带的附件即视为已存档收据(QuickBooks 中为 AttachmentCount;Xero 中为 has_attachments,仅在 include_line_items=true 时返回;Zoho Books 的发票和费用中为 has_attachment)。然后,如果 Desktop 连接器可用,则扫描目标月份的收据文件夹(询问用户路径;默认为 ~/Documents/Receipts)。
对于每笔金额超过 25 且没有附件文档的支出交易:
- 检查是否有匹配的收据文件(金额在 ± 0.50 范围内,且日期相差在 3 天以内)
- 已匹配 → 记录为“已有收据”
- 未匹配 → 标记为“缺少收据”
列出缺少的收据。用户可以提供文件,或将其标记为“无需收据”(例如没有收据的定期自动扣款)。
如果 Desktop 连接器不可用,请询问用户确认哪些支出有收据——不要悄悄跳过此步骤。
第 5a 步 — 薪资交叉核对
仅在已连接薪资连接器(Gusto 或 QuickBooks Payroll,两者同级,连接哪个用哪个)时运行。否则跳过此步骤,并说明该汇总表不包含薪资列。
仅提取当月实际发放的金额总计:
- Gusto — 使用
list_payrolls并设置include=totals,保留check_date落在目标月份内的薪资单。从每个totals中提取:gross_pay、employer_taxes、employee_taxes、net_pay。然后对相同日期范围调用list_contractor_payments并设置group_by_date=true,提取total.wages和total.reimbursements。承包商总额仅涵盖美国承包商——需在汇总表脚注中说明。 - QuickBooks Payroll — 使用
qbo_payroll_get_company_last_payroll_run获取最近一次薪资发放;月内更早的薪资发放记录来自薪资汇总导出。(首次结账前请确认。)
与账本交叉核对:实发工资加雇主税费再加承包商工资,应等于当月的薪资费用行。差额超过 0.50 即为对账事项——通常是薪资发放被记入错误月份,或薪资日记账尚未过账。
仅汇总数据,不含个人信息。 汇总表仅包含当月总额和发放次数。员工姓名、薪酬标准或个人金额均不得从连接器输出——这些属于薪资数据,应由 payroll-prep 处理。字段映射见 reference/v2_sources.md。
第 6 步 — 所有者签署确认关卡
在继续之前提交摘要:
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
询问:“是否准备好撰写损益表摘要并导出结账汇总包?”
未获得明确确认前,请勿进行第 7–8 步。
第 7 步 — 撰写损益叙述
用通俗语言总结当月情况——即所有者可能与配偶或会计师分享的那种内容,而非 CFO 备忘录。篇幅约 150–250 字。
结构:
- 标题 — 一句话,例如:“3 月净收入为 AUD 12,400,较 2 月增长 6%。”使用货币代码,不要单独使用货币符号。
- 收入 — 说明驱动该数字的因素;如果数据显示集中于某些产品、服务或客户,请列出其名称。
- 毛利率 — 说明是保持、上升还是下降,并给出主要原因。
- 主要费用 — 列出环比变动超过 10% 或超出正常范围的任何项目;每项一句话。
- 最终结果 — 净收入与上月对比;询问是否有目标可供比较。
- 关注清单 — 下月需要监控的 1–3 件事。
避免行话;对非通俗表述的术语加以解释(例如“MoM”= 环比)。
完整示例见 reference/examples/pl-narrative.md。
第 8 步:导出结账包
生成两个文件:
close-packet-[YYYY-MM].xlsx:包含三个工作表;连接了工资连接器时为四个:
P&L:账本的损益数据,已格式化Reconciliation:并排展示已匹配和已标记的交易Action Items:所有未完成的标记项(未分类、缺少收据等)Payroll:第 5a 步的工资合计,与账本中的工资费用并列,并附差额
close-packet-[YYYY-MM]-summary.pdf:一页:
- 顶部显示月份和企业名称
- 关键数据(收入、毛利率百分比、净利润)
- 第 7 步的损益说明
- 未完成行动项的数量(如有)
将两个文件保存到桌面(或用户指定的路径)。确认文件位置。
有关列规格和 PDF 版式的详细信息,请参阅 reference/close-packet-format.md。
另外,请根据所有者保存的输出偏好交付结账页面,切勿默认生成 Markdown 文件。请检查 ## Business context 块中的 Output preference(共享样式指南规则,../../shared/artifact-style.md):
- 可视化成果物(默认): 以符合整体风格的 HTML 页面呈现结账内容,作为聊天摘要和文件的补充,而非替代。收入、毛利率百分比和净利润以数据卡片展示,并将环比变化作为上下文行;对账结果为表格,金额使用等宽数字;每个标记项带有状态标签:已核对为良好,缺少收据和未分类项为警告,未解决的结算差额和重复项为严重;损益说明和未完成事项清单各放入一个面板。
- docx / md / notion / canva 偏好: 以对应形式交付相同内容:DOCX 或 Markdown 文件;通过连接器创建 Notion 页面(使用指定的目标名称,绝不覆盖已有页面);或通过 Canva 连接器创建 Canva 文档(每次运行新建设计,并以日期命名;表格转为列表)。如果未连接 Notion 或 Canva,则回退为可视化成果物,并说明原因。xlsx 结账包和 PDF 保持原有格式。
- Best for 技能: 使用可视化成果物。结账需要在屏幕上审阅后,才会将结账包发送给会计师。
第 9 步:结账之后
用一行说明已结账的内容和仍未完成的内容。然后提供最相关的一个后续步骤,另外最多附带两个相近的选项:
- “现金流预测”会基于刚结账的数据运行
cash-flow-snapshot。 - “生成报告”会运行
report-builder,发布并分发结账包。 - “税务”会在季度或年末临近时运行
/tax-prep;仅当业务上下文显示国家为美国时才提供,因为该链路的税务计算基于美国联邦税制。
最多提供三个选项。切勿重复所有者在本次会话中已拒绝的选项。
审批关卡
- 切勿对已申报的月份进行对账。 拉取数据前,请确认账簿仍处于开放状态。
- 切勿直接作废或修改账本交易。 仅提示标记项;由所有者在账本中进行更改。
- 在生成输出之前,务必在第 6 步暂停。 未解决的标记项必须经确认或明确跳过。
- 切勿在结账包中提供个人薪资、社会安全号码或银行账号,仅限日记账合计数(
../../shared/personal-data.md)。
优雅降级
| 缺失的连接器 | 替代方案 |
|---|---|
| QuickBooks | 要求提供两份单独的导出文件:损益表(Profit & Loss)报告,以及按科目划分的交易明细(Transaction Detail by Account)报告。单个文件无法同时包含两者;如果只要求"一份 QB 导出文件",最终只会得到其中一份,还需要再来回一次 |
| Xero | 要求提供两份导出文件:损益表(Profit and Loss)报告,以及选中所有科目的科目交易(Account Transactions)报告;另加银行对账界面中的未核对行数,因为任何导出文件都不包含该数据 |
| NetSuite 或 MYOB | 要求将该月的损益表和交易明细作为两份导出文件提供;MYOB 不保存银行余额,因此银行端数据需要来自银行对账单 |
| Zoho Books | 即使已连接,也要求提供损益表导出文件(没有报告接口)和银行对账单(没有银行交易数据流);账簿明细和未分类数量来自连接器。未连接时:补充提供科目交易导出文件 |
| 支付处理商 | 要求从处理商网站下载结算 CSV 文件。该文件必须包含手续费列,而不仅仅是总金额,否则无法完成第 3 步中的净额对净额匹配 |
| 支付处理商已连接,但该期间返回的放款为零 | 应视为数据缺口,而非真实的零值。说明连接器未返回该月任何数据,要求提供同一份结算 CSV 文件(包括手续费列),并在报告中注明该缺口,而不是对一个空集合进行对账 |
| 工资连接器(Gusto、QuickBooks Payroll) | 跳过第 5a 步。数据包中没有工资表,摘要中注明"无工资连接器";账本中的工资费用项仍会出现在损益表中,但未经核对 |
| 桌面端(收据) | 请用户逐一确认每笔标记费用的收据状态 |
更多数据源
请阅读 reference/v2_sources.md 了解映射关系:
- Shopify:结算对账作为一等环节。订单、放款和手续费的入账方式各不相同,是常见的无法解释差异来源
- NetSuite:作为账本主档,在该细分市场的大型客户中较为常见;报告和 SuiteQL 提供损益表与账簿明细
- Xero:作为账本主档,有其独特的账簿结构(账单、发票、银行队列),以及其独特的关注信号(未核对的银行行);映射见
reference/xero-reconcile.md - MYOB:损益表和应收/应付余额;不保存银行余额,因此结账中的银行端数据需要来自银行对账单
- Zoho Books:作为账本主档,拥有单据账簿(发票、费用、采购订单),以未分类数量作为关注信号的银行余额,且没有报告或银行数据流接口,因此损益表和放款匹配需依赖导出文件;映射见
reference/zoho-books-reconcile.md - Ramp、Expensify:卡片和费用明细,用于弥合实际支出与已入账金额之间的差距
- Gusto、QuickBooks Payroll:已实际发放的工资数据,包括按月汇总的总工资、雇主税费、实发工资以及承包商付款;第 5a 步据此将账本中的工资费用与实际付款进行核对,而非与计划金额对比。仅提供汇总数据,不会将任何个人数据录入数据包
结账流程相同,数据包相同,但对接的数据源更多。
QuickBooks 汇总字段存在误导。 在引用 QuickBooks 汇总对象中的任何总额之前,请先阅读 ../../shared/quickbooks-report-traps.md:应付账龄汇总会将供应商贷项计入各账龄区间,可能显示负数的逾期金额;损益表汇总可能将费用显示为零,而明细行中实际有数据。应对各行进行求和,或改用明细接口。
参考文件
- reference/quickbooks-reconcile.md — QB 字段映射、API 分页、常见数据问题
- reference/xero-reconcile.md — Xero 账簿定义、未核销行信号、单据级重复项扫描、附件
- reference/zoho-books-reconcile.md — Zoho Books 账簿定义、未分类计数信号、需要导出的内容
- reference/paypal-settlements.md — PayPal、Square 和 Stripe 的结算报告结构
- reference/close-packet-format.md — xlsx 列规范、PDF 版式、文件命名约定
- reference/gotchas.md — 重复项误报、拆分交易、部分月份的边界情况
- reference/examples/pl-narrative.md — 损益表说明示例
使用未列出的工具
本 Skill 中提到的连接器是经过测试的路径,而非唯一选择。如果所有者希望此流程使用尚未连接或未列出的工具,可以提议使用 build-connector。它会先检查连接器目录,若没有对应连接器,则通过 Zapier 进行连接,绝不会直接基于原始 API 手动构建。连接建立后,该工具将与其他可选连接器一样加入本 Skill,并受相同的审批关卡约束。