Beancount 中的应计费用:实用指南(附复制粘贴账本示例)
应计费用在月末结账堆积时听起来抽象。它们是正确权责发生制会计的基石,确保你的财务报告反映经济实质,而不仅仅是现金何时流动。下面是一个清晰、以 Beancount 为先的完整演练,说明它们是什么、为何重要,以及如何在纯文本账本中记账、冲销和报告。
TL;DR ⚡
- 应计费用 是指本期已发生但尚未付款的成本。它们在现金支出前被记录为负债。
- 在 Beancount 中,这很简单:借记
Expenses:科目,贷记Liabilities:Accrued:科目。稍后付款时清除负债。- 报告时,可以通过在
bean-query中使用CLOSE ON和CLEAR,在特定日期查看应付金额,以获得干净的资产负债表快照。
什么是应计费用?
应计费用是企业已经发生但尚未付款的成本。服务已收到或费用已产生时即记录,即使发票尚未到达或付款尚未到期。这一做法遵循权责发生制会计的 配比原则,即费用应与其帮助产生的收入在同一期间确认。
常见例子包括:
- 员工工资 在本月末已产生,但在下月支付。
- 公用事业费用(电、水) 你在十二月使用,但要到一月才收到账单。
- 贷款利息 本月已累计,但尚未从账户中扣除。
在费用发生时记录这些成本,你可以更真实地反映公司该期间的财务表现。
Beancount 对此的思考(30 秒概览)
Beancount 是一个纯文本、双式记账系统。所有内容都是带日期的指令或交易,保存在文本文件中。系统基于五大核心账户类型:资产、负债、权益、收入、费用。
条目始终按日期排序。关键细节是 balance 断言在同一天的交易处理之前进行检查。这在放置检查和冲销条目时尤为重要。
最后,bean-query 语言提供了强大的类 SQL 报表功 能。使用 OPEN ON、CLOSE ON、CLEAR 等操作符,你可以为财务报表创建精确的 “截至” 视图。
建议的科目表
整洁的层级科目表是你的最佳伙伴。对于应计费用,结构非常直接。你需要:
- 费用科目:例如
Expenses:Utilities、Expenses:Payroll:Wages - 对应的负债科目:例如
Liabilities:Accrued:Utilities、Liabilities:Accrued:Payroll - 现金科目:例如
Assets:Bank:Checking
Beancount 强制使用这五大顶层账户类型。保持科目名称有序,可让查询和报表在后期更加轻松。
核心模式(无需插件、无需魔法)
这是在 Beancount 中处理应计的最直接方式。包括两步:月末计提费用,付款时清除负债。
步骤 1:在月末计提费用
在期间的最后一天,记录费用并创建负债。
2025-02-28 * "Accrue February electricity" #accrual
Expenses:Utilities 120.00 USD
Liabilities:Accrued:Utilities
步骤 2:付款时冲销计提
当账单到来并付款时,不再触及费用科目,而是借记负债科目将其冲销。
2025-03-05 * "Pay Feb electricity - City Power"
Liabilities:Accrued:Utilities 120.00 USD
Assets:Bank:Checking
这是小团队最简洁的做法。它正确地将费用计入二月,并确保三月不会重复计入。请注意,在 Beancount 中,留空金额会让系统自动平衡交易。
替代方案:在次月第一天做冲销
如果你更喜欢经典的 “自动冲销” 会计风格,可以在下月第一天发布计提条目的相反方向。随后,像往常一样将实际供应商账单记入费用科目。