累计折旧(适用于 Beancount):实用的纯文本指南
如果你在会计中跟踪固定资产——笔记本电 脑、相机、机器,甚至是办公家具——你的账簿需要反映它们价值的下降。这涉及两个关键概念:折旧(费用)和它的累计总额 累计折旧。本指南用通俗的语言解释这两者,并展示如何在 Beancount 中使用可直接复制粘贴的示例进行建模,还包括强大的自动化选项。
什么是累计折旧?
累计折旧 是自资产投入使用之日起已记录的折旧总额。可以把它看作一个累计计数。它不是一种新的费用——只是该资产迄今为止所有折旧费用的总和。
在财务报表中,你会看到累计折旧与资产的原始成本并列。这让阅读账簿的人能够同时看到 历史成本(你为其支付的金额)和 净账面价值(账面上当前的价值)。
一个关键细节是,累计折旧是 抵减资产(contra-asset)账户。听起来可能复杂,但概念很简单:
- 它是一个“资产”账户,位于科目表的
Assets
部分。 - 但它拥有 贷方 余额(在 Beancount 的资产账户中表现为负值),降低 相关固定资产的账面价值。
它在资产负债表上出现在哪里?
累计折旧通常直接位于其对应的固定资产下方。例如:
设备:电脑 | $3,000.00 |
减:累计折旧 | ($1,000.00) |
设备:电脑,净额 | $2,000.00 |
许多财务报表会简化为单行,如 “物业、厂房及设备,净额”。该数字代表所有资产的历史成本总和减去累计折旧总额,即最终的 净账面价值。
如何计算折旧?
折旧的计算方法有多种。你选择的方法决定了每期记录的费用金额,从而影响累计折旧的累计额。常见的两大类方法是:
- 直线法(SL): 最简单、最常用的记账方法。你在资产使用寿命的每个期间内计提相等的费用。例如,一台价值 83.33。
- 税法折旧(如美国的 MACRS): 为了税务目的,政府通常规定加速折旧表。美国的 修改后加速成本回收系统(MACRS) 允许在资产使用早期计提更大的折旧。Beancount 完全可以处理这些表——只需根据官方表(如 IRS Publication 946)计算金额并生成相应的分录。
公式(直线法)
期间折旧 =
累计折旧(截至日期 t) =
残值 是资产使用寿命结束时的估计残余价值。为简化起见,通常假设为零。
Beancount 实践:建模成本与累计折旧
为了在 Beancount 中正确跟踪固定资产并保留其原始 成本,你需要为每类资产使用一对资产账户,再加一个费用账户。
Assets:Equipment:Computers:Cost
(保存历史成本)Assets:Equipment:Computers:AccumDep
(抵减资产,随时间贷记)Expenses:Depreciation:Computers
(记录期间费用)
此结构符合标准会计实践,也是 Beancount 中管理固定资产折旧的推荐方式。
方案 A:手动直线法分录
这是最直接的方式。你可以完全控制每笔分录,便于理解其工作原理。
1. 打开所需账户
2025-01-01 open Assets:Bank:Checking
2025-01-01 open Assets:Equipment:Computers:Cost
2025-01-01 open Assets:Equipment:Computers:AccumDep
2025-01-01 open Expenses:Depreciation:Computers
2. 记录购买(按历史成本)
购买资产时,借记 Cost
账户。
2025-01-20 * "Purchase MacBook Pro"
Assets:Equipment:Computers:Cost 3000.00 USD
Assets:Bank:Checking -3000.00 USD
3. 记录月度折旧
每月记录一次折旧费用。对 3000 ÷ 36 = $83.33。
分录为借记费用账户、贷记抵减资产账户。
2025-02-28 * "Monthly depreciation - MacBook Pro (SL 36mo)"
Expenses:Depreciation:Computers 83.33 USD
Assets:Equipment:Computers:AccumDep -83.33 USD ; 贷记抵减资产
将此分录重复 36 个月。Assets:Equipment:Computers:AccumDep
的余额会随时间变得更负,从而降低资产的净账面价值。
快速检查: 你可以在 Fava 的资产负债表中查看净账面价值,或运行以下查询:
bean-query myledger.bean "SELECT account, SUM(position) WHERE account 'Assets:Equipment:Computers:(Cost|AccumDep)' GROUP BY account"
两个账户的余额之和即为净账面 价值。
方案 B:使用 Fava 的 amortize
插件自动化
如果你使用 Fava(Beancount 的流行网页界面),且折旧为固定金额,可通过插件实现自动化。
首先,在 Beancount 文件顶部启用插件:
plugin "fava.plugins.amortize_over"
然后,创建一条定义完整折旧计划的交易。
; 1. 正常记录首次购买
2025-01-20 * "Purchase MacBook Pro"
Assets:Equipment:Computers:Cost 3000.00 USD
Assets:Bank:Checking -3000.00 USD
; 2. 设置折旧计划
2025-01-20 * "Depreciation schedule - MacBook Pro"
amortize_months: 36
Expenses:Depreciation:Computers 3000.00 USD
Assets:Equipment:Computers:AccumDep -3000.00 USD
插件会读取此交易并自动生成 虚拟分录:每月 $83.33,持续 36 个月。虚拟分录不会写入 .bean
文件,但会出现在所有报表中。此方式适用于直线法,但不适用于 MACRS 等不等额的折旧表。
方案 C:使用第三方插件生成实际分录
如果你希望生成真实的、非虚拟的分录,同时保留自动化便利,可使用 beancount-periodic
插件(作者 Dallas Lu)。该插件可根据配置自动创建带日期的分录,兼具手动分录的可审计性与自动化的高效性。