跳到主要内容

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 查询,在报税前核对总额。

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

S-Corp 税务申报截止日期(2025 年):Beancount 用户简明指南

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

为你的 S-corp 报税涉及几个关键的截止日期,你不能错过。密切关注这些日期可以避免昂贵的罚款,并保持你的财务记录整洁。以下是关于要申报什么、何时到期、逾期会发生什么以及如何在你的 Beancount 账本中保持整洁的会计师友好型简短版本。


重要日期(适用于日历年 S-Corp) 🗓️

2025-07-25-s-corp-tax-filing-deadlines-2025

对于大多数按标准日历年运营的 S-corp,年度纳税申报表 1120-S 表格 有两个主要日期需要记住。

  • 申报表到期日: 申报截止日期为 2025 年 3 月 17 日星期一。官方到期日始终是纳税年度结束后第三个月的第 15 天(3 月 15 日),但由于该日期在 2025 年是星期六,因此 IRS 的“下一个工作日”规则将截止日期推迟到星期一。
  • 如果你需要更多时间: 你可以通过在 3 月 17 日原始截止日期或之前提交 7004 表格 来获得 自动 6 个月的延期。这会将你的申报到期日移至 2025 年 9 月 15 日。请记住,这是 申报 的延期,而不是 缴纳 任何应缴税款的延期。

其他申报者的注意事项: 如果你使用会计年度,则你的申报表应在你的纳税年度结束后 第三个月的第 15 天 之前到期。如果你的 S-corp 已解散,则最终申报表通常应在解散日期后第三个月的第 15 天之前到期。


你必须发送给股东的内容

S-corp 的一项核心职责是报告每个股东在公司收入、扣除额和抵免额中的份额。

你必须在 你的 1120-S 表格到期日的同一天 向每个股东提供 K-1 附表。无论你是按原始截止日期还是延期截止日期提交,这都适用。K-1 提供了股东提交个人纳税申报表所需的信息。


你真正关心的罚款

IRS 对未按时申报的行为处以巨额罚款,因此准时申报是值得的。

  • 逾期提交 1120-S: 罚款为 每位股东每月(或部分月份)245 美元,最长可达 12 个月。如果你的 2024 年申报表(于 2025 年提交)逾期 60 天或以上,最低罚款将增加到应缴税款或 510 美元 中的较小者。
  • 逾期/不正确的 K-1: 未能按时提供正确的 K-1 将被处以 每份附表 330 美元 的罚款。如果未能提供是由于故意无视,则罚款可能会加倍,或为应报告金额的 10%,取较大者。
  • 未缴税款: 即使你使用 7004 表格提交了延期申请,任何应缴税款 也会从原始的 3 月截止日期开始 累积利息。虽然大多数 S-corp 不欠联邦所得税,但在特殊情况下,一些 S-corp 可能面临公司层面的税收。

如果你受到处罚,不要立即支付。查看 IRS 的 行政处罚减免 选项,例如首次减免或表明你延迟申报有合理的原因。


公司层面的预估税(边缘情况)

虽然 S-corp 是穿透实体,但它们有时可能需要对内置收益或超额净被动收入等项目缴纳 实体级税。如果你的 S-corp 预计这些税款将超过 500 美元,则你必须进行 季度预估税款缴纳

对于 2025 日历年,这些分期付款的到期日为:

  • 2025 年 4 月 15 日
  • 2025 年 6 月 16 日(6 月 15 日是星期日)
  • 2025 年 9 月 15 日
  • 2025 年 12 月 15 日

付款应通过电子联邦税务支付系统 (EFTPS) 进行。


Beancount 设置:保持申报和付款清晰明了

使用你的账本来创建清晰的税务合规活动审计跟踪。

初始账户

Assets:Bank:Operating
Assets:PrepaidTax:Federal ; 用于延期/预估付款
Expenses:Tax:Federal:S-Corp ; 用于公司层面的应缴税款
Liabilities:Tax:Federal:Payable
Equity:Distributions
Income:Sales

标记申报和 K-1 交付

使用 note 交易为关键合规操作添加时间戳。

2025-03-10 note "已准备 2024 年 1120-S 表格;K-1 已准备好分发。"
2025-03-17 note "已电子申报 2024 年 1120-S 表格;已提供所有股东 K-1。"

记录延期

如果你申请延期但未付款(常见情况):

2025-03-17 note "已提交 7004 表格,将 2024 年 1120-S 延期至 2025-09-15。"

如果你在延期时支付了预估税款(S-corp 很少见):

2025-03-17 * "2024 年 1120-S 延期付款(预估)"
Assets:Bank:Operating -2000 USD
Assets:PrepaidTax:Federal 2000 USD

记录最终税款支付

如果你在申报时最终需要缴纳公司层面的税款:

2025-09-15 * "结算 2024 年 S-corp 应缴税款"
Assets:PrepaidTax:Federal -2000 USD
Expenses:Tax:Federal:S-Corp 2000 USD

有用的 bean-query 检查

使用简单的查询验证你的操作。

  • 确认你已记录 K-1 交付:

    SELECT date, narration WHERE narration ~ "K-1";
  • 查看今年所有联邦税收现金流动:

    SELECT SUM(position) WHERE account ~ "Tax:Federal|PrepaidTax:Federal" AND year = 2025;

快速核对清单 ✅

  • 2025 年 3 月 17 日 记入你的日历,以便提交 1120-S 表格,或在该日期之前提交 7004 表格 以获得延期。
  • 在你提交申报表(原始或延期)的同一天向所有股东 提供 K-1 附表
  • 如果适用,请安排任何公司层面税款的 季度预估付款
  • 认真对待截止日期以避免罚款,但如果出现不可避免的疏忽,请寻求 罚款减免

本指南提供一般信息,不能替代专业的税务建议。请咨询合格的注册会计师以解决你的具体财务状况。