跳到主要内容

2 篇博文 含有标签「taxes」

查看所有标签

在 Beancount 中记录税务(实用方法)

· 阅读需 8 分钟
Mike Thrift
Mike Thrift
Marketing Manager

税务在个人理财的世界里常常像一种特殊、复杂的怪兽。但如果它们不是这样呢?如果你可以把它们当作账本中任何其他资金流动来处理呢?好消息:完全可以。把税务当作简单的价值流动来记账,你的 Beancount 账本将保持整洁、易于查询,且——最重要的是——易于理解。

下面是一套实用、直截了当的模式,你可以直接放进个人或小型企业的 Beancount 文件中。它是一个处理工资单、税款支付,甚至跨年度的退款的简易系统。我们将介绍你需要的关键账户,演示真实案例,并展示获取所需答案的确切查询语句。

2025-08-25-recording-taxes-in-beancount


核心原则

在深入代码之前,先约定几条简单规则。这些原则让逻辑保持清晰,防止以后出现头疼的问题。

  • 把“它是什么”与“现金何时流动”分开。 🗓️
    这是最重要的概念。税务费用属于你获得收入的那一年(例如 2024 年),即使你在 2025 年 4 月才向 IRS 结清。如果不把费用的发生时间与现金支付的时间分离,你的年度报告将会混乱且误导。

  • 保持账户层级单调、简洁。 📁
    根据税种(例如 IncomeTaxSocialSecurity)为账户命名,这样查询会非常简单。不要在账户名里塞入供应商名称或表格编号(如 “W‑2” 或 “1099”),这些细节请使用元数据和标签来记录。

  • 采用权责发生制进行年终调整。 ⚖️
    即使是个人账本,在年终使用一个简单的权责发生分录也是最干净的做法。它意味着在正确的年度确认费用或退款,即使资金要到下一年才实际流动。这一步虽小,却能让你以后免去大量思考。

  • 为未来的自己写代码。 🧠
    目标是清晰。只有在真的能让查询更容易时,才在账户名里加入税务年度等额外信息。除非有充分理由,否则不要每年都创建一套新账户(Expenses:Taxes:2024:FederalExpenses:Taxes:2025:Federal 等),扁平结构往往更易管理。


最小化账户骨架

下面是一组基本账户,帮助你快速起步。该结构以美国税制为例,但你可以轻松改为自己所在国家的税务系统。只需把这些 open 指令放进你的 Beancount 文件即可。

; --- 美国联邦所得税与工资税 ---
; 用于记录工资单中被预扣的税款
2024-01-01 open Expenses:Taxes:Federal:IncomeTax:Withheld USD
; 用于记录估算付款或税日直接支付的税款
2024-01-01 open Expenses:Taxes:Federal:IncomeTax:Payments USD
; 用于记录收到的税款退款
2024-01-01 open Expenses:Taxes:Federal:IncomeTax:Refunds USD

; 你的 FICA(社会保险)缴款
2024-01-01 open Expenses:Taxes:Federal:SocialSecurity USD
2024-01-01 open Expenses:Taxes:Federal:Medicare USD

; --- 其他常见税种 ---
; 用于记录购买时支付的销售/使用税
2024-01-01 open Expenses:Taxes:Sales USD

; --- 年终调整账户(可选但推荐) ---
; 用于暂存尚未支付的应缴税款
2024-01-01 open Liabilities:AccruedTaxes:Federal:Income USD
; 用于暂存尚未收到的退款应收款
2024-01-01 open Assets:Tax:Receivable USD

此设置将预扣税、直接付款和退款分离,便于清晰看到每笔钱的去向。LiabilitiesAssets 账户是我们保持年终报告准确的秘密武器。


示例 1:工资单

记录一笔典型的工资单,税款会自动预扣。关键是先记录税前收入,再将其拆分为税款和实际到账的现金。

2025-07-15 * "Employer Inc." "Salary for first half of July"
Income:Work:Salary -6,000.00 USD
Expenses:Taxes:Federal:IncomeTax:Withheld 1,200.00 USD
Expenses:Taxes:Federal:SocialSecurity 372.00 USD
Expenses:Taxes:Federal:Medicare 87.00 USD
Assets:Cash:Checking 4,341.00 USD

这笔交易完整说明了:

  • 你获得了 6,000 美元的税前收入。
  • 其中 1,200 美元被预扣为联邦所得税。
  • 372 美元用于社会保险,87 美元用于医疗保险。
  • 剩余的 4,341 美元即为实得工资。

小技巧: 可以在交易中附加工资单元数据(如 pay_period_end: "2025-07-15"),便于审计追踪。


示例 2:报税(跨年度问题)

常见的坑:2025 年 4 月,你在报 2024 年的税,发现除预扣外仍需额外支付 3,000 美元。

如何记录?你希望这笔费用计入 2024 年,而现金支付发生在 2025 年。下面提供两种优秀的处理方式。

方案 A:手动两步权责发生制

纯 Beancount 方法,无需插件。清晰的两步流程。

步骤 1:在税务年度末确认费用。
在 2024 年最后一天创建一条“冲销”分录。此时并未实际付款,只是把费用记入临时负债账户。

2024-12-31 * "Federal income tax true-up for 2024"
Expenses:Taxes:Federal:IncomeTax:Payments 3,000.00 USD
Liabilities:AccruedTaxes:Federal:Income -3,000.00 USD

现在你的 2024 年损益表已经正确显示这笔 3,000 美元的费用。

步骤 2:在实际付款时记录现金流。
2025 年 4 月向 IRS 实际付款时,冲销负债。

2025-04-15 * "IRS" "Payment for 2024 tax return"
Liabilities:AccruedTaxes:Federal:Income 3,000.00 USD
Assets:Cash:Checking -3,000.00 USD

这样 2024 年报告准确,2025 年现金流也正确。完全相同的模式可用于退款——只需把负债账户换成 Assets:Tax:Receivable 即可。

方案 B:使用插件自动化

如果你倾向于在单笔交易中完成,可使用社区插件 beancount_reds_plugins.effective_date。它允许为单行项目指定不同的“生效日期”。

在主 Beancount 文件中启用插件:

plugin "beancount_reds_plugins.effective_date"

然后写一条交易,插件会在后台自动拆分,使报告保持准确。

; 单条记录;插件负责其余
2025-04-15 * "IRS" "Payment for 2024 tax return"
Assets:Cash:Checking -3,000.00 USD
Expenses:Taxes:Federal:IncomeTax:Payments 3,000.00 USD
effective_date: 2024-12-31

这里现金部分记在 2025‑04‑15,费用部分则追溯到 2024‑12‑31。效果与方案 A 相同,只是工作流不同。


销售税怎么办?

对大多数个人账本而言,销售税很简单。如果不需要抵扣,只需在购买时把它拆分为单独的费用即可。

2025-07-19 * "Local Grocery Store"
Expenses:Groceries 12.32 USD
Expenses:Taxes:Sales 1.28 USD
Assets:Cash:Checking -13.60 USD

这样你可以轻松追踪全年在销售税上的支出。如果你经营的业务涉及增值税(VAT),则需要使用更正式的应付/应收账户体系,但原理相同。


实际会用到的查询

此结构的全部意义在于让获取答案变得轻而易举。下面列出几条 BQL 查询示例,帮助你快速看到税务全貌。

1. 2024 年我的联邦所得税总额是多少?

SELECT cost(sum(position))
WHERE account "Expenses:Taxes:Federal:IncomeTax"
AND date >= 2024-01-01 AND date < 2025-01-01;

2. 该总额在预扣、付款和退款之间如何分布?

SELECT account, cost(sum(position))
WHERE account "Expenses:Taxes:Federal:IncomeTax"
AND date >= 2024-01-01 AND date < 2025-01-01
GROUP BY account
ORDER BY account;

3. 我是否还有未结清的税务负债或应收款?(检查工作是否完整!)

SELECT account, units(sum(position))
WHERE account "Liabilities:AccruedTaxes" OR account "Assets:Tax"
GROUP BY account
ORDER BY account;

如果该查询返回非零余额,说明还有未结清的权责发生项。


快速 FAQ

  • 真的需要每年单独的 Expenses:Taxes:2024 之类的账户吗?
    大多数情况下不需要。权责发生制(或插件)能够保持账户结构平坦、易读。只有在特定查询需求下才考虑创建年度账户。

  • Beancount 能直接帮我算税吗?
    不能直接算税,但可以准备好数据。高级用户会把 BQL 结果导入税务计算软件,以便在年度中估算税负。

  • 这算是税务建议吗?
    不是。 这只是组织账务数据的记账模式。会计原理是可靠的,但具体税务问题请咨询专业税务顾问。


立即上手的检查清单

准备好了吗?

  1. 把账户骨架加入你的 Beancount 文件(并根据所在国家自行调整名称)。
  2. 记录工资单时先记税前收入,再拆分税款与实际到账。
  3. 年终时使用负债/资产账户进行冲销(或使用 effective_date 插件)。
  4. 把退款记为应收,收到现金后冲销。
  5. 运行上面的 BQL 查询,在报税前核对总额。

保持单调、保持一致,你的报税季节终将不再是谜题,而是财务故事的自然章节。

为小型企业税务预留多少资金

· 阅读需 6 分钟
Mengjia Kong
Mengjia Kong
IRS Enrolled Agent

经营小型企业已经需要不断地处理现金流、供应商和客户——税务上的意外不应该成为另一个需要操心的问题。好消息是:通过一个简单的框架和一些 Beancount 技巧,你可以将“我希望税单不要太高”转化为可预测的每月转账。

1. 了解你的实际支出

2025-07-20-为小型企业税务预留多少资金

在你预留资金之前,你需要知道这些资金的用途。对于大多数美国小型企业(尤其是独资企业和合伙企业),总税务负担是几项不同义务的组合。

  • 联邦所得税: 这是一种累进税,这意味着税率随着你的收入增加而增加。 2025 年,单身收入超过 626,350 美元和已婚共同申报 (MFJ) 收入超过 751,600 美元的税率高达 37%。
  • 自雇 (SE) 税: 这是 W-2 雇员缴纳的 FICA 税(社会保障和医疗保险)的企业家版本。 净收入的第一部分的税率为 15.3%。 12.4% 的社会保障部分在你的利润达到年度工资基数后停止,预计 2025 年该基数为 176,100 美元。 剩余的 2.9% 的医疗保险部分将继续适用于所有利润。
  • 州和地方所得税: 这因地区而异,从怀俄明州和德克萨斯州等州的 0% 到加利福尼亚州最高等级的 13% 以上不等。
  • 季度少缴罚款: 美国国税局希望全年都能收到税款,而不是一次性收到。 为避免罚款,你通常必须预付至少当年税务负担的 90% 或前一年税单的 100%(如果你的调整后总收入 (AGI) 超过 150,000 美元,则此门槛将提高到 110%)。

快速启发式方法: 大多数居住在平均税率州的美国个体经营者,在缴纳联邦、自雇和州税后,最终需要缴纳 净利润的 25% - 30%

2. 每月可更新的三步估算

你不需要复杂的软件来处理这个问题。一个简单的、可重复的过程就足够了。

  1. 预测年度利润: 查看你的年初至今的业绩,并对全年做出合理的预测。 基本公式对你很有帮助:预计收入 - 预计可扣除费用 = 预计利润
  2. 应用有效税率: 从一个合理的百分比开始。 如果你有去年的纳税申报表,你可以从中计算出你的有效税率。 如果你是新手,30% 的启发式方法是一个安全的起点。
  3. 除以 12(或 52): 将你的年度预估总税额除以你想要使用的支付周期数。 我们建议按月支付。 每月将该金额转入专用的税务储备银行账户。 如果你的现金流波动较大,每周转账可能更容易管理。

3. 在 Beancount 中实施

纯文本会计使此过程透明且可审计。以下是如何在 Beancount 中管理你的税务储蓄的方法。

首先,创建一个例行交易,将你的每月储蓄从你的主要支票账户转移到一个单独的、专用的税务储蓄账户。

; 预留 7 月份的税款
2025-07-31 * "税务储备转账"
Assets:Bank:Checking -3000 USD
Assets:Bank:TaxReserve 3000 USD
Equity:Opening-Balances

当你向政府进行季度预估付款时,你需要记录实际的负债。 付款直接来自你的储备账户。

; 在你提交季度付款时记录负债
2025-09-15 * "第三季度预估税款支付"
Assets:Bank:TaxReserve -9000 USD
Liabilities:Taxes:Federal 6000 USD
Liabilities:Taxes:State 3000 USD

这个简单的系统为你带来了三个强大的优势:

  • 即时可见性: 你的 Assets:Bank:TaxReserve 余额始终显示已“预留”的金额。 你一眼就能看出这笔现金不能用于其他业务支出。
  • 准确的利润: 由于储备金被视为资产账户之间的转移,因此你的损益表不会失真。 你只需在实际申报和缴纳税款时记录税务 负债
  • 审计跟踪: 支付给美国国税局或你所在州财政部的每笔款项都与从你的储备账户中明确标记的资金流动相关联,从而创建了清晰的纸质跟踪记录。

4. 微调你的百分比

最初的 25% - 30% 的估算是一个很好的开始,但你应该根据你的具体业务模式进行调整。

  • 高利润率的顾问/代理机构: 如果你的收入远高于社会保障工资基数(176,100 美元),你的有效税率将会攀升。 30% - 35% 的税率可能更准确。
  • 具有大量扣除额的产品企业: 如果你有大量的销货成本 (COGS)、库存或其他扣除额,你的净利润率会较低。 20% - 25% 的税率可能就足够了。 使用 1040-ES 表格的季度工作表进行确认。
  • S-Corp 所有者: 你的情况有所不同。 你支付给自己的“合理工资”需要缴纳标准的工资预扣税(FICA 和所得税)。 你的分配(超出工资的利润支付)仍然需要季度预估付款,但通常边际税率较低,因为它们不需要缴纳自雇税。
  • 多州卖家: 如果你在多个州拥有“关联”(重要的业务存在),你可能需要在每个州缴纳所得税。 这可能会增加你的负债。 为了清晰起见,在 Beancount 中创建单独的负债账户,例如 Liabilities:Taxes:State:CALiabilities:Taxes:State:NY

5. 自动化、审查、重复

一个系统只有在你使用它时才有效。 让它变得毫不费力。

  • 自动化: 将你的主要运营账户链接到一个名为“TaxReserve”之类的高收益储蓄账户。 安排在你每月结账后立即自动转账。
  • 审查: 每季度重新预测你的年度利润。 如果第二季度的销售额超出预期,请立即增加你的每月储备金额。 不要等到一月份才发现你储蓄不足。
  • 重复: 将关键文件整理在你的 Beancount 目录中。 保存去年的最终纳税申报表 (document: "2024/Taxes/Form1040.pdf") 可让你在与你的注册会计师讨论数字或规划下一年时一键获取上下文信息。

结语

只有当预留流程随机进行时,税单才会让人感觉随机。 通过将基于百分比的储备金直接纳入你的复式记账流程,你就可以用代数代替焦虑——而 Beancount 使数学(和审计跟踪)变得微不足道。 每季度审查你的税率,保持 Assets:Bank:TaxReserve 的资金充足,4 月 15 日将恢复为正常的营业日。


免责声明:本文仅用于教育目的,不构成税务建议。 始终与你所在司法管辖区和实体类型的合格专业人士确认数字。