跳到主要内容

21 篇博文 含有标签「accounting」

查看所有标签

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

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

Beancount 中的应计费用:实用指南(附复制粘贴账本示例)

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

应计费用在月末结账堆积时听起来抽象。它们是正确权责发生制会计的基石,确保你的财务报告反映经济实质,而不仅仅是现金何时流动。下面是一个清晰、以 Beancount 为先的完整演练,说明它们是什么、为何重要,以及如何在纯文本账本中记账、冲销和报告。

TL;DR ⚡

  • 应计费用 是指本期已发生但尚未付款的成本。它们在现金支出前被记录为负债。
  • 在 Beancount 中,这很简单:借记 Expenses: 科目,贷记 Liabilities:Accrued: 科目。稍后付款时清除负债。
  • 报告时,可以通过在 bean-query 中使用 CLOSE ONCLEAR,在特定日期查看应付金额,以获得干净的资产负债表快照。

2025-08-24-accrued-expenses-in-beancount-a-practical-guide

什么是应计费用?

应计费用是企业已经发生但尚未付款的成本。服务已收到或费用已产生时即记录,即使发票尚未到达或付款尚未到期。这一做法遵循权责发生制会计的 配比原则,即费用应与其帮助产生的收入在同一期间确认。

常见例子包括:

  • 员工工资 在本月末已产生,但在下月支付。
  • 公用事业费用(电、水) 你在十二月使用,但要到一月才收到账单。
  • 贷款利息 本月已累计,但尚未从账户中扣除。

在费用发生时记录这些成本,你可以更真实地反映公司该期间的财务表现。

Beancount 对此的思考(30 秒概览)

Beancount 是一个纯文本、双式记账系统。所有内容都是带日期的指令或交易,保存在文本文件中。系统基于五大核心账户类型:资产负债权益收入费用

条目始终按日期排序。关键细节是 balance 断言在同一天的交易处理之前进行检查。这在放置检查和冲销条目时尤为重要。

最后,bean-query 语言提供了强大的类 SQL 报表功能。使用 OPEN ONCLOSE ONCLEAR 等操作符,你可以为财务报表创建精确的 “截至” 视图。

建议的科目表

整洁的层级科目表是你的最佳伙伴。对于应计费用,结构非常直接。你需要:

  • 费用科目:例如 Expenses:UtilitiesExpenses:Payroll:Wages
  • 对应的负债科目:例如 Liabilities:Accrued:UtilitiesLiabilities: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 中,留空金额会让系统自动平衡交易。

替代方案:在次月第一天做冲销

如果你更喜欢经典的 “自动冲销” 会计风格,可以在下月第一天发布计提条目的相反方向。随后,像往常一样将实际供应商账单记入费用科目。

步骤 1:月末计提(同上)

2025-02-28 * "Accrue February electricity" #accrual
Expenses:Utilities 120.00 USD
Liabilities:Accrued:Utilities

步骤 2:次月第一天冲销

2025-03-01 * "Reverse Feb electricity accrual" #reversal
Liabilities:Accrued:Utilities 120.00 USD
Expenses:Utilities

步骤 3:正常记账付款

2025-03-05 * "City Power - February bill"
Expenses:Utilities 120.00 USD
Assets:Bank:Checking

检查提示:记住 balance 断言在同一天的交易之前评估。如果想检查 Liabilities:Accrued:Utilities 的余额,请在 2025-02-28 放置断言以确认计提,或在 2025-03-01 之后 放置断言以确认为零。若在 2025-03-01 的冲销之前放置断言,会导致错误失败。

六大常见应计(复制粘贴模板) 📋

以下是一些常用业务应计的即用示例。

1. 未开票租金

2025-01-31 * "Accrue January rent" #accrual
Expenses:Rent 3000.00 USD
Liabilities:Accrued:Rent

2. 已赚未付工资

2025-03-31 * "Accrue March wages" #accrual
Expenses:Payroll:Wages 8500.00 USD
Liabilities:Accrued:Payroll

3. 已赚的带薪休假(PTO)

2025-03-31 * "Accrue PTO earned in March" #accrual
Expenses:Payroll:PTO 900.00 USD
Liabilities:Accrued:Payroll

4. 贷款利息累计

2025-02-29 * "Accrue monthly loan interest" #accrual
Expenses:Interest 210.00 USD
Liabilities:Accrued:Interest

5. 专业费用(审计/法律)

2025-12-31 * "Accrue year-end audit fees" #accrual
Expenses:Professional:Audit 4200.00 USD
Liabilities:Accrued:Professional

6. 已使用但未计费的公用事业

2025-04-30 * "Accrue April utilities" #accrual
Expenses:Utilities 95.00 USD
Liabilities:Accrued:Utilities

报告:“截至某日期我欠多少钱?”

bean-query 是获取答案的工具。下面演示如何获得应计费用的资产负债表快照。

获取期末所有应计负债余额

此查询返回截至 2025‑03‑31 每个应计负债科目的余额。

bean-query main.beancount '
SELECT account, UNITS(SUM(position)) AS balance
FROM OPEN ON 2025-01-01 CLOSE ON 2025-04-01 CLEAR
WHERE account "^Liabilities:Accrued"
GROUP BY 1
ORDER BY 1;
'
  • OPEN ON 设置期初余额。
  • CLOSE ON 在该日期之前截断交易(不含该日),因此使用 2025-04-01 可获取截至 2025-03-31 的数据。
  • CLEAR 将收入和费用归零,提供干净的资产负债表视图(资产、负债、权益)。

查看所有应计分录的登记簿

如果想查看应计科目的原始交易历史:

bean-query main.beancount '
SELECT date, payee, narration, position
WHERE account "^Liabilities:Accrued"
ORDER BY date;
'

获取所有应计的总额

快速汇总你所欠的总额:

bean-query main.beancount '
SELECT UNITS(SUM(position)) AS total_accruals
FROM OPEN ON 2025-01-01 CLOSE ON 2025-04-01 CLEAR
WHERE account "^Liabilities:Accrued";
'

Beancount 特有的控制点与 “坑”

  • 余额断言时机:如前所述,断言在当天开始时检查。2025-03-01 balance …2025-03-01 的任何交易之前运行,请相应安排。
  • 命名与层级:像 Liabilities:Accrued:* 这样的整洁树结构不仅美观,还能简化查询,使报表一目了然。
  • Pad 使用需谨慎pad 指令可修正期初余额,但不要用它来 “修补” 经常性的应计。显式条目提供清晰的审计轨迹。
  • 截至报告:资产负债表快照请始终使用 OPEN … CLOSE … CLEAR,避免收入和费用科目污染负债合计。

预付费用 vs. 应计费用(快速对比)

两者容易混淆,实为镜像关系:

  • 应计费用:服务已消费 现在,现金 以后 支付,形成 负债
  • 预付费用:现金 现在 支付,服务 以后 消费,形成 资产

在 Beancount 中会计逻辑相同,只是科目不同(Assets:Prepaid:* 对应 Liabilities:Accrued:*)。

开箱即用模板(文件开头)

以下是本文示例所需的 open 指令。将它们添加到账本文件的顶部一次即可。

; --- Accounts (open once) ---
2025-01-01 open Assets:Bank:Checking
2025-01-01 open Expenses:Utilities
2025-01-01 open Expenses:Payroll:Wages
2025-01-01 open Expenses:Interest
2025-01-01 open Expenses:Professional:Audit
2025-01-01 open Liabilities:Accrued:Utilities
2025-01-01 open Liabilities:Accrued:Payroll
2025-01-01 open Liabilities:Accrued:Interest
2025-01-01 open Liabilities:Accrued:Professional

最后说明

如果你采用 现金制,根本不会做应计——费用在付款时才记录。若采用 权责发生制,上述模式对于将成本匹配到实际消费期间至关重要。

本文示例仅作一般教育参考。特定行业(如奖金、工资税、资本化门槛)请务必咨询注册会计师。

累计折旧(适用于 Beancount):实用的纯文本指南

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

如果你在会计中跟踪固定资产——笔记本电脑、相机、机器,甚至是办公家具——你的账簿需要反映它们价值的下降。这涉及两个关键概念:折旧(费用)和它的累计总额 累计折旧。本指南用通俗的语言解释这两者,并展示如何在 Beancount 中使用可直接复制粘贴的示例进行建模,还包括强大的自动化选项。


2025-08-23-accumulated-depreciation

什么是累计折旧?

累计折旧 是自资产投入使用之日起已记录的折旧总额。可以把它看作一个累计计数。它不是一种新的费用——只是该资产迄今为止所有折旧费用的总和。

在财务报表中,你会看到累计折旧与资产的原始成本并列。这让阅读账簿的人能够同时看到 历史成本(你为其支付的金额)和 净账面价值(账面上当前的价值)。

一个关键细节是,累计折旧是 抵减资产(contra-asset)账户。听起来可能复杂,但概念很简单:

  • 它是一个“资产”账户,位于科目表的 Assets 部分。
  • 但它拥有 贷方 余额(在 Beancount 的资产账户中表现为负值),降低 相关固定资产的账面价值。

它在资产负债表上出现在哪里?

累计折旧通常直接位于其对应的固定资产下方。例如:

设备:电脑$3,000.00
减:累计折旧($1,000.00)
设备:电脑,净额$2,000.00

许多财务报表会简化为单行,如 “物业、厂房及设备,净额”。该数字代表所有资产的历史成本总和减去累计折旧总额,即最终的 净账面价值


如何计算折旧?

折旧的计算方法有多种。你选择的方法决定了每期记录的费用金额,从而影响累计折旧的累计额。常见的两大类方法是:

  • 直线法(SL): 最简单、最常用的记账方法。你在资产使用寿命的每个期间内计提相等的费用。例如,一台价值 3,000、使用寿命为36个月(3年)的笔记本电脑,每月折旧3,000、使用寿命为 36 个月(3 年)的笔记本电脑,每月折旧 83.33。
  • 税法折旧(如美国的 MACRS): 为了税务目的,政府通常规定加速折旧表。美国的 修改后加速成本回收系统(MACRS) 允许在资产使用早期计提更大的折旧。Beancount 完全可以处理这些表——只需根据官方表(如 IRS Publication 946)计算金额并生成相应的分录。

公式(直线法)

期间折旧 = 成本残值使用年限\frac{\text{成本} - \text{残值}}{\text{使用年限}}

累计折旧(截至日期 t) = (截至 t 的期间折旧)\sum (\text{截至 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. 记录月度折旧

每月记录一次折旧费用。对 3,000资产,36个月的月折旧为3,000 资产,36 个月的月折旧为 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)。该插件可根据配置自动创建带日期的分录,兼具手动分录的可审计性与自动化的高效性。


查看结果:成本、累计折旧与净账面价值

无论采用哪种方法,资产负债表都会显示 CostAccumDep 两个账户。两者之和即为 净账面价值。这种“原始成本减累计折旧”的展示方式正是会计师和财务分析师所期望的,能够完整透明地呈现资产的使用年限与当前价值。


资产处置(出售、报废或退役)

资产使用寿命结束时,你可能会出售、报废或退役。要将其从账簿中移除,需要:

  1. 清除历史成本。
  2. 清除累计折旧。
  3. 记录收到的现金。
  4. 记录产生的盈亏(现金收入与净账面价值之差)。

示例:资产出售获利

假设在 2027‑06‑15 出售该 MacBook Pro。

  • 原始成本:$3,000
  • 出售时累计折旧:-$2,500
  • 净账面价值3,0003,000 - 2,500 = $500
  • 出售收入:$800
  • 出售盈余800800 - 500 = $300

Beancount 记账如下:

2027-06-15 * "Sell MacBook Pro"
Assets:Bank:Checking 800.00 USD ; 收到现金
Assets:Equipment:Computers:AccumDep 2500.00 USD ; 借记抵减资产以冲销
Assets:Equipment:Computers:Cost -3000.00 USD ; 贷记原始成本
Income:Gains:AssetDisposals -300.00 USD ; 贷记盈余

如果仅收到 400(亏损400(亏损 100),则将差额记入 Expenses:Losses:AssetDisposals(借方)。


FAQ(快速问答)

  • 累计折旧是资产还是负债?
    两者都不是。它是 抵减资产,位于资产区但为贷方余额,起到降低资产价值的作用。

  • 购买后还能直接记入 Cost 账户吗?
    通常不建议。抵减资产的目的是保留历史成本,所有价值下降应记入 ...:AccumDep

  • 能在 Beancount 中使用 MACRS(税法)折旧表吗?
    可以。先依据 IRS Publication 946 计算每期金额,然后用手动分录或周期插件记录。Fava 的 amortize 插件不适用于不等额的 MACRS 表。

  • Section 179 加速费用怎么办?
    Section 179 允许在投入使用的当年全额费用化。对应的 Beancount 记账就是在购买时直接借记费用账户,而不是固定资产账户。


常见错误及避免方法

  • 直接在 Cost 账户上计提折旧。

    • 解决方案: 始终贷记 ...:AccumDep,保留历史成本。
  • 资产处置时忘记冲销累计折旧。

    • 解决方案: 处置分录必须包含 借记 ...:AccumDep,以清除该资产的累计折旧。
  • 混淆税法折旧与记账折旧。

    • 解决方案: 明确区分税务表(用于报税)和记账表(用于财务报表),分别使用对应的分录。
  • 误用 Fava amortize 插件导致虚拟分录未被审计。

    • 解决方案: 若需审计痕迹,请改用生成真实分录的插件或手动分录。

方案 A 示例代码

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

2025-01-20 * "Purchase MacBook Pro"
Assets:Equipment:Computers:Cost 3000.00 USD
Assets:Bank:Checking -3000.00 USD

2025-02-28 * "Monthly depreciation - MacBook Pro (SL 36mo)"
Expenses:Depreciation:Computers 83.33 USD
Assets:Equipment:Computers:AccumDep -83.33 USD

方案 B 示例代码

plugin "fava.plugins.amortize_over"

2025-01-20 * "Purchase MacBook Pro"
Assets:Equipment:Computers:Cost 3000.00 USD
Assets:Bank:Checking -3000.00 USD

2025-01-20 * "Depreciation schedule - MacBook Pro"
amortize_months: 36
Expenses:Depreciation:Computers 3000.00 USD
Assets:Equipment:Computers:AccumDep -3000.00 USD

方案 C 示例代码

(此处请根据 beancount-periodic 插件的配置自行编写相应的自动化分录。)


资产处置示例代码

2027-06-15 * "Sell MacBook Pro"
Assets:Bank:Checking 800.00 USD
Assets:Equipment:Computers:AccumDep 2500.00 USD
Assets:Equipment:Computers:Cost -3000.00 USD
Income:Gains:AssetDisposals -300.00 USD

参考文献与资源

  • Beancount 官方文档
  • Fava 插件列表
  • IRS Publication 946(美国税法折旧表)
  • Section 179 与 MACRS 相关税务指南

通过本指南,你可以在 Beancount 中实现对固定资产的精确折旧管理,并利用自动化工具提升记账效率。祝你财务管理顺利!

Amazon 卖家费用(2025):它们是什么——以及如何在 Beancount 中记账

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

在 Amazon 上销售是一种触达数百万客户的强大方式,但平台的费用结构常常像迷宫一样让人困惑。如果你是重视干净、可审计、双重记账的运营者,准确追踪这些成本是不可谈判的。本指南将拆解 Amazon 2025 年美国站点的费用,并展示如何使用纯文本会计工具 Beancount 进行记录。

TL;DR ⚡

2025-08-21-amazon-seller-fees-2025

  • 你会遇到一系列常见的 Amazon 费用:销售计划推荐费结算费(媒体类)、FBA 履约与存储入库安置费低库存费退货处理费退款管理费,以及针对超大目录的 高容量上市费
  • 保持一个单独的 Assets:Amazon:Clearing 账户。将销售和费用记在该账户;当 Amazon 打款时,将净额转入银行账户。这样对账轻而易举。
  • 将每个 SKU 视为独立商品(例如 SKU:WATER-BOTTLE),Beancount 能自动按批次计算你的销售成本(COGS)。
  • 通过导入结算或日期范围报告,并将 Amazon 的 “transaction types” 直接映射到 Beancount 的费用账户,即可快速对账。

Amazon 费用地图(美国站点)

以下是 2025 年最常见费用的拆解。

销售计划费

这是访问 Marketplace 的基础订阅费用。

  • 个人计划:无月费。每售出一件商品收取 $0.99
  • 专业计划:每月固定 $39.99,免除每件商品的收费。这是所有严肃卖家默认的选择。其余所有费用仍在此基础上累加。

推荐费

这是 Amazon 对每笔成交收取的佣金。

它是商品总售价(含运费和礼品包装)的百分比,费率完全取决于产品类别。大多数类别在 8–15% 区间,但有些采用分层费率(例如前 $500 收 15%,其余部分收 8%)。某些类别还有最低推荐费,常见为 $0.30。请务必查看当前费率表以确认具体类别。

结算费(媒体类)

如果你销售图书、音乐、视频或 DVD 等媒体商品,Amazon 会额外收取每件 $1.80 的固定结算费。

FBA 履约费

这是使用 Amazon 物流(FBA)时每件商品的拣选、包装和发货费用。费用随商品尺寸和重量而异,Amazon 会定期更新费率表。2025 年,非高峰期费率已于 1 月 15 日恢复至 2024 年的非高峰水平。请始终参考最新的 FBA 费率表,以获取对应尺寸层级的准确费用。

每月存储费 & 老化库存附加费(FBA)

Amazon 会对你在其履行中心占用的空间收取费用。

  • 每月存储费:按立方英尺计费。
  • 老化库存附加费:对在履行中心停留时间过长的库存收取额外月费,叠加在常规存储费之上。

入库安置服务费(FBA)

这是与将库存发送至 Amazon 相关的每件费用,旨在覆盖 Amazon 将商品分配至其物流网络的成本。某些项目(如 “New Selection”)可在设定限额内暂时免除此费用。

低库存费(FBA)

该费用适用于标准尺寸商品,当库存水平相对于客户需求持续偏低时触发。Amazon 使用 “historical days of supply” 指标衡量。如果热门商品的库存天数跌破阈值(通常为 28 天),则收取此费用。

退货处理费(FBA)

针对退货率高于行业平均的品类(如服装、鞋类),Amazon 可对每笔客户退货收取处理费。部分 “New Selection” 商品在一定上限内可免除此费用。

退款管理费

当你为订单向客户退款时,Amazon 会退回已支付的推荐费,但会保留一定比例作为处理费。该费用为 $5.00 或推荐费的 20%(取较低者)。

高容量上市费(超大目录)

此费用仅针对拥有庞大目录的卖家。如果活跃 SKU 超过 150 万,Amazon 将对超出阈值的每个合格 SKU 收取每月 $0.001 的费用。

注意: 费率和政策可能因国家、地区和品类而异。请务必在记账前查阅当地 Seller Central 帮助页面。


这些费用在报表中的呈现方式 🧾

所有数据均可在 Seller Central 获取。对会计最有价值的两类报告为:

  1. 日期范围报告Payments → Date Range Reports):提供特定期间的收入、费用、税金和净转账汇总,适合高层账本导入与对账。
  2. 结算文件(如 Flat File V2):逐笔列出每笔交易,显示费用类型、订单 ID、金额和日期。此细粒度数据用于精确映射。

Beancount‑First 记录 Amazon 活动的方式

下面展示如何将 Amazon 的复杂费用转化为简洁的 Beancount 条目。

1. 建立最小化科目表

首先,定义所需账户。此简易结构涵盖全部内容。

; --- ASSETS ---
Assets:Amazon:Clearing ; 你的 Amazon “钱包”
Assets:Bank:Checking ; 收款到账的银行账户
Assets:Inventory:SKU:<code> ; 每个 SKU 一个子账户

; --- INCOME & COGS ---
Income:Sales:Amazon
Expenses:COGS:Inventory

; --- EXPENSES ---
Expenses:Marketplace:Amazon:Referral
Expenses:Marketplace:Amazon:FBAFulfillment
Expenses:Marketplace:Amazon:Storage:Monthly
Expenses:Marketplace:Amazon:Storage:Aged
Expenses:Marketplace:Amazon:InboundPlacement
Expenses:Marketplace:Amazon:LowInventoryLevel
Expenses:Marketplace:Amazon:ReturnsProcessing
Expenses:Marketplace:Amazon:Other ; 其他杂费

Beancount 能追踪库存批次和成本基础,这是一大优势。你将在 Assets:Inventory:SKU:... 中 “买入” 库存并标记成本 {...}。销售时,Beancount 会自动计算销售成本。

2. 记录每笔销售及其费用

下面记录一次 $30 的 FBA 销售,SKU 为 SKU:WATER-BOTTLE。推荐费 $4.50,FBA 履约费 $4.24,低库存费 $0.15。该商品原始采购成本为 $5.00

2025-02-10 * "Amazon Order 113-2233445-6677889" "WATER-BOTTLE"
Assets:Amazon:Clearing 21.11 USD
Income:Sales:Amazon -30.00 USD
Expenses:Marketplace:Amazon:Referral 4.50 USD
Expenses:Marketplace:Amazon:FBAFulfillment 4.24 USD
Expenses:Marketplace:Amazon:LowInventoryLevel 0.15 USD
Assets:Inventory:SKU:WATER-BOTTLE -1 SKU:WATER-BOTTLE {5.00 USD}
Expenses:COGS:Inventory 5.00 USD

平衡原因: $30 销售记入 Income。费用($4.50 + $4.24 + $0.15)和 COGS($5.00)记入费用账户。净现金 $21.11 借记至 Assets:Amazon:Clearing。库存资产被冲减(减少一件),对应成本计入费用。

3. 记录打款

Amazon 向你付款时,只需将钱从 Amazon “钱包”转入真实银行账户。

2025-02-15 * "Amazon Payments" "Settlement disbursement"
Assets:Bank:Checking 2,500.00 USD
Assets:Amazon:Clearing -2,500.00 USD

每次打款后,Assets:Amazon:Clearing 的余额应趋近于零。使用日期范围报告的总额检查是否有差异。

4. 处理存储、老化库存和入库安置费用

这些费用通常在结算报告中单独列出,直接记为清算账户的借方。

2025-03-15 * "Amazon FBA Storage Fees" "Monthly + aged inventory"
Expenses:Marketplace:Amazon:Storage:Monthly 125.40 USD
Expenses:Marketplace:Amazon:Storage:Aged 35.20 USD
Assets:Amazon:Clearing -160.60 USD

2025-03-20 * "FBA Inbound Placement Service" "Shipment split optimization"
Expenses:Marketplace:Amazon:InboundPlacement 62.00 USD
Assets:Amazon:Clearing -62.00 USD

5. 退款与退货

客户退货时,需要冲销销售和 COGS,并计入不可退回的费用。假设该 $30 销售的退款行政费为 $0.30

2025-03-02 * "Refund 113-2233445-6677889" "Refunded WATER-BOTTLE"
Assets:Amazon:Clearing -29.70 USD ; 实际扣除
Income:Sales:Amazon 30.00 USD ; 冲销收入
Expenses:Marketplace:Amazon:Other 0.30 USD ; 退款管理费
Assets:Inventory:SKU:WATER-BOTTLE 1 SKU:WATER-BOTTLE {5.00 USD}
Expenses:COGS:Inventory -5.00 USD ; 冲销成本

这里,Income 借记冲销收入,Expenses:COGS 贷记冲销成本。库存单位重新计入资产。Assets:Amazon:Clearing 的净影响即为退款给客户的金额。


快速导入与对账

关键在于映射。导出 Date Range ReportFlat File V2 结算文件后,创建一个简单的映射表,将 Amazon 的 transaction-type 列映射到你的费用账户:

  • OrderIncome:Sales:Amazon
  • CommissionExpenses:Marketplace:Amazon:Referral
  • FBA-fulfillment-feeExpenses:Marketplace:Amazon:FBAFulfillment
  • StorageFeeExpenses:Marketplace:Amazon:Storage:Monthly
  • AgedInventorySurchargeExpenses:Marketplace:Amazon:Storage:Aged
  • InboundPlacementFeeExpenses:Marketplace:Amazon:InboundPlacement
  • LowInventoryLevelFeeExpenses:Marketplace:Amazon:LowInventoryLevel

想实现自动化?Beancount 的导入生态(如 beancount-import)非常强大。只需一次性定义规则,结算文件即可自动导入账本。


实用防护措施(省钱又省力) 💰

  • 规避低库存费:监控历史供给天数。保持足够缓冲库存满足需求,但避免过度积压导致老化库存附加费。
  • 利用新选品福利:新产品上线时,加入 “New Selection” 项目,可暂时免除退货处理费和入库安置费。
  • 定价前检查推荐费率:微小的价格变动可能让你跨越费率阈值,显著影响净利润。务必确认品类的推荐费率和最低费用。
  • 每月对账:每月拉取一次 Date Range Report。此习惯帮助你提前发现 Amazon 费用变动,保持账本可信。

可直接使用的 Beancount 模板

为帮助你快速上手,我已准备好一个入门账本文件,包含:

  • 合理的 Amazon 科目表。
  • 将库存配置为商品,以实现自动批次成本计算。
  • 销售、费用、存储、退款和打款的示例条目。

➡️ 下载模板
(在编辑器中打开文件,替换示例 SKU 与金额,即可开始导入结算行。)


参考与进一步阅读


最后小贴士

如果你进行跨境销售,请为不同站点创建专属子账户(例如 Expenses:Marketplace:Amazon:Referral:US...:Referral:CA)。同时,保持一个统一的 Assets:Amazon:Clearing 用于所有站点的收付款。记账时,确保使用当地的币种或统一转换为主币种,以便后续分析。

祝你在 Amazon 上销售顺利,账本保持干净、透明!

什么是应付账款?Beancount友好指南:以纯文本跟踪供应商账单

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

应付账款(AP)是指企业因已收到但尚未付款的商品或服务而欠供应商的款项。在会计体系中,AP 被归类为资产负债表上的流动负债——通常在一年内(常见为 30 到 60 天)到期。

该概念是权责发生制会计的核心,你在收到发票的瞬间就记录费用及相应负债,而不是等到实际付款时才记录。本指南将展示如何使用纯文本会计工具 Beancount,干净且高效地管理整个 AP 工作流。

2025-08-20-what-is-accounts-payable


快速概览

在深入细节之前,先了解关键要点:

  • 应付账款(AP) 代表你对供应商的短期债务。它位于资产负债表的 Liabilities(负债)栏目下。
  • 权责发生制 vs. 现金制:只有在采用 权责发生制 时才会出现 AP。Beancount 完全支持权责发生制工作流,其网页界面 Fava 会正确显示你的负债。
  • AP vs. AR:简单来说:应付账款是你 的,而应收账款(AR)是别人 你的。

AP 在 Beancount(以及 Fava)中的位置

要开始跟踪 AP,首先需要在账本中声明一个对应的账户。常用约定为:

Liabilities:AccountsPayable

你可以为主要供应商创建子账户,例如 Liabilities:AccountsPayable:ForestPaintSupply

在 Fava 中,此账户会出现在资产负债表的 Liabilities 下。点击即可展开,查看所有未结和已结项目,清晰了解你的负债情况。你也可以在 Fava 的 公开示例账本 中看到 Liabilities:AccountsPayable 账户的实际展示。


Beancount 构建块

一个完整的 AP 工作流依赖以下核心功能:

  1. 账户:主要使用 Liabilities:AccountsPayableAssets:Bank:Checking(现金账户)以及各种费用账户(如 Expenses:Supplies)。
  2. 元数据:可以为任意交易附加键值对。AP 常用的元数据包括 invoice:due:terms:document:。Fava 还能识别 document: 键,并在配置了文档文件夹后自动生成可点击的链接。
  3. 标签 & 链接:使用 #tags(如 #ap)便于过滤,使用 ^links(如 ^INV-10455)将账单与后续付款关联,形成清晰、可审计的链路。
  4. 查询(BQL):Beancount 类 SQL 查询语言(BQL)让你可以直接在命令行使用 bean-query,或在 Fava 的 “Query” 页面生成强大的报表,例如按到期日排序的未结应付账款列表。

核心 AP 工作流

管理 AP 包括两到三步:记录账单、付款,有时还需处理部分付款或折扣。

1) 记录供应商账单(创建负债)

当发票到达时,先记费用并生成应付账款。

; 可选:在主 Beancount 文件中设置文档文件夹
option "documents" "documents"

2025-08-05 * "Forest Paint Supply" "Paint order INV-10455" ^INV-10455 #ap
invoice: "INV-10455"
due: "2025-09-04"
terms: "2/10, n/30"
document: "invoices/2025-08-05-forest-paint-INV-10455.pdf"
Expenses:Supplies:Paint 500.00 USD
Liabilities:AccountsPayable -500.00 USD

此条目完成两件关键事:

  1. 立即在 8 月份确认 500 美元费用。
  2. 同时产生 500 美元负债,表明你欠 Forest Paint Supply。

^INV-10455 链接是唯一标识符,稍后在付款时使用相同链接,可将账单与付款逻辑关联。

2) 付款(冲销负债)

付款时创建交易,将资金从银行账户转出并冲销负债。

a) 标准付款(无折扣)

2025-09-01 * "Forest Paint Supply" "Payment INV-10455" ^INV-10455
Liabilities:AccountsPayable 500.00 USD
Assets:Bank:Checking -500.00 USD

此条目将 AP 减少 500 美元,同时支出 500 美元的银行余额,负债已清。

b) 提前付款折扣(如 “2/10, n/30”)

若在 10 天内付款,可享 2% 折扣。对 500 美元发票而言,折扣为 10 美元。以下两种记法均可,任选其一并保持一致即可。

; 方式 1:将折扣记为其他收入(冲减费用的效果)
2025-08-12 * "Forest Paint Supply" "Early payment discount INV-10455" ^INV-10455
Liabilities:AccountsPayable 500.00 USD
Assets:Bank:Checking -490.00 USD
Income:Discounts:Payables -10.00 USD

; 方式 2:直接冲减原费用
2025-08-12 * "Forest Paint Supply" "Early payment discount INV-10455" ^INV-10455
Liabilities:AccountsPayable 500.00 USD
Assets:Bank:Checking -490.00 USD
Expenses:Supplies:Paint -10.00 USD

两种方式均冲销 500 美元负债,银行账户实际支出 490 美元,并记录 10 美元的优惠。

3) 部分付款处理

Beancount 的链接功能让部分付款的追踪简洁明了。

; 发票 1,200 美元
2025-08-10 * "Acme Parts" "INV-9001" ^INV-9001
invoice: "INV-9001"
due: "2025-09-09"
Expenses:Parts 1200.00 USD
Liabilities:AccountsPayable -1200.00 USD

; 第一次付款 400 美元
2025-08-20 * "Acme Parts" "Payment INV-9001 (1/3)" ^INV-9001
Liabilities:AccountsPayable 400.00 USD
Assets:Bank:Checking -400.00 USD

; 最终付款 800 美元
2025-09-05 * "Acme Parts" "Payment INV-9001 (final)" ^INV-9001
Liabilities:AccountsPayable 800.00 USD
Assets:Bank:Checking -800.00 USD

通过在三条交易上使用相同的 ^INV-9001 链接,你可以轻松过滤出该账单的完整历史。


实用查询(BQL)

可在 Fava 的 “Query” 选项卡或命令行 bean-query 中运行。

小贴士any_meta() 函数非常适合把 invoice:document: 等元数据字段拉进查询结果。

按供应商统计未结 AP(余额视图)

SELECT payee, COST(SUM(position)) AS amount
WHERE account "^Liabilities:AccountsPayable"
GROUP BY payee
ORDER BY payee;

按发票 + 到期日列出未结 AP

SELECT payee,
any_meta('invoice') AS invoice,
any_meta('due') AS due,
COST(SUM(position)) AS amount
WHERE account "^Liabilities:AccountsPayable"
GROUP BY payee, invoice, due
ORDER BY due, payee;

列出带 PDF 附件的账单

SELECT date, payee, any_meta('invoice') AS invoice, any_meta('document') AS file
WHERE account "^Liabilities:AccountsPayable"
ORDER BY date DESC;

在 Fava 中查看 AP

  • 资产负债表:进入 Balance SheetLiabilitiesAccountsPayable,即可看到总余额并进一步钻取交易明细。
  • 日记账:使用过滤 account:Liabilities:AccountsPayable 或特定链接 ^INV-xxxx,查看单笔账单的完整生命周期。
  • 文档侧栏:若使用 document: 元数据并配置 option "documents",侧栏会列出所有已关联的文档。

AP 老化、周转率与现金流感知

  • 老化表:将未结发票按逾期天数分组(如 1–30 天、31–60 天、60+ 天)。在 Beancount 中,可运行上面的 “按发票 + 到期日列出未结 AP” 查询,导出 CSV 后在电子表格或小型 Python 脚本中分桶统计。
  • AP 周转率:衡量付款速度的快速健康指标,公式为 供应商采购总额 ÷ 平均应付账款。相关指标 应付账款天数(DPO) 大约为 365 ÷ 周转率
  • 无法按时付款:AP 属于短期债务。如供应商同意更长期的分期付款,应将该债务从 AP 调整为 Notes Payable(票据负债)。
2025-10-01 * "Helix Industries" "Convert overdue AP to 12-month note" ^INV-1110
Liabilities:AccountsPayable 2000.00 USD
Liabilities:NotesPayable -2000.00 USD

纯文本账本中的 AP 最佳实践

  • 无纸化:将发票 PDF 存入 documents 文件夹,并使用 document: 元数据关联。
  • 一致使用链接:在账单和所有关联付款上使用唯一的发票号 ^link,保持逻辑连贯。
  • 保持元数据整洁:统一使用 invoice:due:terms:,提升搜索、查询和财务审查效率。
  • 全程权责发生制:若想获得有价值的 AP 报表,请坚持使用权责发生制。Beancount 与 Fava 能完美支持。

复制粘贴示例:供应商账单 + 付款

; ---- Bill ----
2025-08-05 * "Forest Paint Supply" "Paint order INV-10455" ^INV-10455 #ap
invoice: "INV-10455"
due: "2025-09-04"
document: "invoices/2025-08-05-forest-paint-INV-10455.pdf"
Expenses:Supplies:Paint 500.00 USD
Liabilities:AccountsPayable -500.00 USD

; ---- Payment (no discount) ----
2025-09-01 * "Forest Paint Supply" "Payment INV-10455" ^INV-10455
Liabilities:AccountsPayable 500.00 USD
Assets:Bank:Checking -500.00 USD

本指南仅供学习使用,不构成税务、法律或财务建议。

参考与进一步阅读

会计外包:如何交付你的财务任务(针对 Beancount 用户)

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

如果你的账本以纯文本形式保存,你已经在乎清晰、可控和可复现性。外包会计工作并不一定会牺牲这些。相反,若执行得当,它会把你的 Beancount 设置转变为由专业人士运行的可靠、可文档化的工作流——同时你仍然完全拥有数据、仓库以及规则的所有权。

这是一份面向 Beancount 用户的实用指南,内容涵盖哪些工作可以外包、哪些工作应自行保留、如何结构化交付物以及如何评估供应商。目标是将机械性的工作委派出去,却永不放弃控制权。

2025-08-19-会计外包-如何交付你的财务任务


适用人群

如果你符合以下任意一种情况,本指南适合你:

  • 独立创始人、独立开发者和顾问,使用 Beancount 并希望把会计的机械性工作交给他人,以便专注于产品研发或客户服务。
  • 具备财务知识的工程师,需要严格的控制、版本化历史和完整的可审计性,但不想在周末自己导入银行对账单并进行核对。
  • 从一体化供应商迁移的组织,现在更重视数据托管和可复现性。近期诸如 Bench 等会计平台的突发关闭再次提醒我们:退出计划和开放格式不是可选项。(TechCrunchKSV Advisory Report)

Beancount 简介

对于新手来说,Beancount 生态系统由以下核心组件构成,使其在此类工作流中表现强大:

  • Beancount:本质上是一种以纯文本编写的复式记账语言。你编写可读的账本文件,将其提交到 Git 仓库,并使用编译器进行校验和生成财务报表。(GitHub)
  • Fava:Beancount 的优雅网页界面。Fava 读取账本文件,提供交互式资产负债表、损益表、趋势图、过滤器以及类 SQL 查询语言,以便检查数据。(Fava Demo)
  • beangulp:用于自动化数据导入的现代框架。由 Beancount 最初的 importer 演进而来,beangulp 提供编写稳健导入器的工具,能够解析 CSV、OFX、QFX 甚至 PDF 对账单,将原始银行数据转化为结构化的 Beancount 条目。(GitHub)

成功的外包关系应当保留并强化这些优势:版本控制、可读的历史、严格的校验以及工具的可组合性。


外包内容 vs. 自行保留

有效委派的关键在于明确的职责划分。下面阐述战术执行与战略所有权的分界线。

适合外包的任务

这些任务通常重复、基于规则且耗时——非常适合专业人士处理。

  • 对账单收集与导入:下载月度对账单、统一不同文件格式(CSV、OFX、PDF),并运行 beangulp 导入器。包括在金融机构更改对账单格式时维护导入规则。
  • 分类辅助:构建启发式和声明式规则对交易进行分类。可选使用 smart_importer 根据历史数据预测分录,但最终审查始终由人工完成。
  • 核对与完整性检查:使用 balance 断言匹配对账单,调查差异,确保账本无误。
  • 附件与文档整理:获取发票和收据,将其与交易关联并添加元数据,随后在整洁、可复现的目录树中归档源文件。
  • 月末结账与报表:准备标准报表(损益表、资产负债表、现金流量表),并提供 Fava 视图或导出文件供管理层更新使用。
  • 应收/应付及工资准备:准备付款账单、生成发票、催收款项,并为工资文件做预处理,待你最终审阅批准。
  • 税务包准备:年终时生成干净的试算表、支持性明细以及所有 CPA 或税务顾问所需的文件。

自行保留(你拥有意图与风险)

这些职责属于战略层面,定义了业务的财务骨架,必须由你掌控。

  • 科目表设计:账户的结构和命名约定反映了你对业务的认知,这是你的财务地图。
  • 核心会计政策:实体结构、收入确认、资本化政策等决策具有长期的财务和法律影响。
  • 最终批准:所有现金流动(付款、工资发放、重要分录)必须由你最终确认。
  • 战略财务:预测、预算以及定义业务“良好”状态的标准是所有者的根本职责。

Beancount 原生外包工作流

下面展示基于 Git 的结构化协作在实践中的样子。

1) 仓库布局(示例)

仓库是唯一的事实来源。良好的组织结构让流程透明且易于维护。

/ledger
main.beancount # 主账本文件,包含其他文件
accounts/ # 科目表定义
includes/ # 月度或年度交易文件
prices/ # 商品/股票的价格指令
metadata/ # 自定义元数据声明
plugins/ # 自定义 Beancount 插件
documents/ # 银行对账单、收据、发票
/importers # beangulp 导入器 + 规则
config.yaml
bank_x.py
card_y.py
/scripts
import.sh # 导入器编排脚本
close_month.py # 月末校验与报表脚本
/reports
monthly/
year_end/
/ops
runbook.md # 系统运行手册
checklist.md # 程序性检查清单(如月末)
controls.md # 财务控制文档

2) 周循环

常规工作应遵循可预测的节奏,最终交付一个清晰的审阅件。

  1. 导入:供应商拉取对账单并运行 beangulp 导入器,将新交易暂存。
  2. 分类:应用分类规则并使用 smart_importer 建议(如适用),随后进行 人工审查 以纠正歧义。
  3. 核对:添加 balance 断言匹配对账单总额并调查差异。pad 指令应极少使用且必须提供明确解释。
  4. 文档:将相关文档(收据、发票)附加到交易上。
  5. 提交 & 提议:使用描述性提交信息将更改提交,并打开 Pull Request 供你审阅,你可以看到账本中具体的 diff

3) 月末结账(最小可行)

结账是确保准确性并生成可靠报表的关键检查点。

  • 为外币或基于市场的证券更新 price 指令。
  • 检查未结项目:应收、应付、计提、预付费用和贷款。
  • 确认所有 balance 断言通过,且无其他检查失败。
  • 使用标签标记提交(如 2025-08-close),并导出标准报表。
  • 发布 Fava 快照或提供安全的期间 URL。

4) 年终包

全年工作的最终成果是一个整洁、可审计的税务包,供税务顾问使用。内容包括最终试算表、关键科目(如固定资产或存货)的支持明细,以及可直接从 Git 仓库重新生成所有产物的脚本。


安全与访问(不可妥协)

专业工作流必须把安全和数据所有权放在首位。

  • 数据托管优先:你拥有私有 Git 仓库。供应商应从 fork 工作并提交 Pull Request,绝不能只保留唯一的账本副本。
  • 银行访问:尽可能提供只读权限。如需使用聚合服务,请创建隔离凭证并制定明确的撤销流程。
  • 机密与加密:使用 GPG 或 age 对敏感文档进行静态加密。所有服务强制多因素认证,遵循最小权限原则。
  • Fava 访问:你应自行托管 Fava 或本地运行 (fava ledger.beancount),并通过安全隧道或 VPN 共享审阅会话。避免直接暴露至公网。
  • 退出计划:坚持“拔线”手册,包含脚本、配置和文档的托管或托管保证。正如近期事件所示,供应商可能一夜消失,你的财务记录绝不能被锁定。

“好”交付物的样子(每月)

每月结束时,你应收到两类成果:技术制品和业务摘要。

1. 干净的 Pull Request,包含:

  • 本期所有已导入并审查的交易。
  • 任何新建或修改的导入规则的 diff
  • 总结关键假设或手动调整的提交信息。
  • 所有 balance 断言 100% 通过,并附带每个账户已核对的日志。
  • Beancount 文件中指向所有附件的链接,以及缺失文档的报告。
  • 为投资或外币更新的 price 指令。

2. 管理报告包,包含:

  • 标准报表:损益表、资产负债表、现金流量表。
  • 关键指标,如现金流动性、预算与实际差异亮点。
  • 指向预过滤 Fava 视图的直接链接,便于深入交互式分析。

供应商类型(何时适用)

不同供应商适配不同阶段和复杂度。

  • 熟悉 Beancount 的记账员:适合处理核心工作流——持续导入、分类、核对以及月末报告包准备。
  • 精品会计事务所:如果你需要额外的应收/应付、工资协调、多实体合并或税务支持,可考虑此类供应商。
  • 兼职财务总监 / CFO:当你需要战略层面的监督时,他们可帮助设计会计政策、构建财务预测、准备董事会报告并设计内部控制。

合作模式通常为月度固定费用加上根据交付物计费。


评估供应商的技巧

  1. 技术匹配度:确认其熟悉 Beancount、Fava、beangulp 以及相关导入器的实现细节。
  2. 审计痕迹:要求提供完整的变更历史、提交信息和审阅记录。
  3. 安全合规:检查其对机密信息的加密、凭证管理和多因素认证的实践。
  4. 响应速度:在出现差错或紧急需求时,供应商的响应时效至关重要。
  5. 退出机制:确保在合同结束或突发情况下,你能够快速接管全部数据和工作流。

外包流程示例

以下示例展示了从需求定义到交付的完整路径。

  1. 需求定义

    • 列出需要外包的具体任务(如“每月对账单导入”)。
    • 明确交付频率(周/双周/月)。
    • 确定交付格式(Pull Request、附件路径、报表导出位置)。
  2. 供应商筛选

    • 根据关键词搜索或社区推荐,获取候选名单。
    • 要求提供过去使用 Beancount 的案例或代码示例。
    • 进行技术面试,确认其对 balancepadsmart_importer 等概念的理解。
  3. 合同与安全

    • 在合同中写明数据所有权、机密信息加密、只读银行访问以及退出计划。
    • 确认供应商使用的加密工具与你现有的安全体系兼容。
  4. 试点阶段

    • 先外包单月或单科目,评估交付质量、审阅效率和沟通成本。
    • 根据试点结果决定是否扩大外包范围。
  5. 正式上线

    • 将供应商的 fork 合并到主仓库,设定自动化 CI 检查(如 bean-check)。
    • 在每次提交后通过 CI 确认 bean-checkbean-format 等工具通过。
    • 通过 Pull Request 审阅完成后合并,确保所有 balance 断言通过。

常见问题解答

Q1:外包后我还能使用 Fava 吗?
A1:可以。外包仅涉及后端数据处理,你仍然可以随时在本地或自托管的服务器上运行 Fava 查看最新账本。

Q2:如果供应商的仓库出现冲突,我该怎么办?
A2:在 Pull Request 中会显示冲突文件。你可以手动解决冲突后合并,或要求供应商在其 fork 中先完成冲突解决。

Q3:外包会不会导致记账规则不一致?
A3:通过 beangulp 的统一配置文件和声明式科目规则可以确保规则的一致性。所有规则的更改都必须通过 Pull Request 记录。

Q4:如何确保外包后的账本仍然可审计?
A4:保持完整的 Git 提交历史、balance 断言以及所有附件的链接。审计时只需检查对应的提交和附件即可。


开始外包的第一步

  1. 审视当前工作流:列出你每天/每周执行的会计任务。
  2. 划分任务:将可外包的任务标记为 “外包”,其余保持 “自行”。
  3. 准备仓库:确保所有账本、配置和导入规则已提交到私有 Git 仓库,并设置好访问权限。
  4. 寻找供应商:在 Beancount 社区、GitHub 或专业会计平台发布需求,注明你需要熟悉 Beancount 的记账员。
  5. 签订安全协议:在合同中明确数据所有权、加密要求和退出计划。
  6. 启动试点:先外包单月的导入和核对工作,评估交付质量后再逐步扩大范围。

通过上述步骤,你可以在不牺牲透明度、可控性和可复现性的前提下,释放工程资源,专注于业务增长。祝你外包顺利!

S 型公司 vs. C 型公司:Beancount.io 用户的优缺点

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

选择正确的企业实体是创始人做出的最关键的决策之一。它会影响你的税收、融资能力和管理工作量。两种最常见的公司企业结构是 C 型公司和 S 型公司。它们之间有什么区别,哪一种适合你?

简而言之

2025-08-11-s-corp-vs-c-corp-advantages-and-disadvantages

C 型公司在公司层面征税,股东在收到股息时再次征税——这种制度被称为双重征税。S 型公司是“传递”实体,这意味着利润仅在所有者的个人纳税申报表上征税一次,但它们有严格的所有权限制。如果你计划大量再投资并筹集风险投资,C 型公司通常是更清晰、更具扩展性的选择。如果你是一家盈利、业主经营的企业,并且希望在支付自己合理薪水的同时分配现金,那么 S 型公司 可以显着降低你的税单。

无论哪种方式,Beancount.io 都旨在通过纯文本、可审计的条目和可导出财务报表来保持你的账簿清晰,使税务时间变得轻而易举。


快速比较

主题C 型公司S 型公司
如何创建向州政府提交 公司章程(这是默认状态)。首先注册成立公司,然后提交 IRS 表格 2553 以选择 S 型公司身份。
税收双重征税:利润在公司层面征税,然后股东对股息征税。传递:收入在所有者的个人申报表上征税(无公司所得税)。
所有权规则对股东的数量或类型没有限制;允许多种股票类别。≤100 名股东,必须是 仅限美国人,并且只允许 一种经济类别 的股票。
投资者看法受风险投资欢迎,尤其是 特拉华州 C 型公司,这是行业标准。由于传递税收和股票类别限制,对风险投资的吸引力较小。
最适合专注于再投资和筹集外部资金的高增长初创企业。希望通过工资和分配的组合从企业中提取现金的业主经营者。
核心 IRS 表格1120、1120-W、941、1099-DIV(如果支付股息)。1120-S、1120-W(如果适用)、941,向每个所有者签发 附表 K-1

注意: 联邦公司所得税是统一的 21%。但是,C 型公司和 S 型公司的州规则差异很大。始终验证你注册成立和经营所在州的税务处理方式。


什么是 C 型公司?

C 型公司 是美国的标准、默认公司结构。当你向州政府提交公司章程时,除非你另行选择,否则你创建的是 C 型公司。这种结构为其所有者(股东)提供 有限责任保护,需要正式治理(董事会、高级职员、章程),并创建一个投资者和银行认可和理解的法律实体。

C 型公司的征税方式

C 型公司具有独特的税务身份。他们提交自己的公司纳税申报表,即 IRS 表格 1120,并按公司层面的净收入缴纳税款。如果公司随后以 股息 的形式将其税后利润分配给股东,则这些股东必须在其个人纳税申报表上报告该股息收入并再次对其缴纳税款。这就是 C 型公司所熟知的“双重征税”。

为什么选择 C 型公司?

  • 融资和股权: 这是初创企业最大的吸引力。C 型公司可以发行多种股票类别(例如,普通股和优先股),这对于风险投资交易至关重要。构建期权池、SAFE 和可转换票据很简单。
  • 再投资: 如果你计划将所有利润重新投入到业务增长中,你可以通过不支付股息来避免第二层税收。利润按公司税率征税一次,并保留在公司内。
  • 信号: 无论好坏,注册成立为特拉华州 C 型公司都向投资者表明你打算建立一家风险投资规模的公司。

C 型公司的缺点

  • 双重征税: 主要缺点。如果你计划定期分配利润,你将为同一美元支付两次税。
  • 管理负担: C 型公司有更多的合规要求,包括召开董事会会议、维护公司会议记录以及处理更复杂的州和联邦文件。
  • 有限的扣除额: 个人或传递实体可享受的某些税收抵免和扣除额在公司层面不可用。

什么是 S 型公司?

S 型公司 不是一种不同类型的法律实体,而是一种向 IRS 作出的特殊 税务选择。国内公司(或选择作为公司纳税的 LLC)可以提交申请成为 S 型公司,这使其能够在联邦税收方面被视为 传递实体

资格快照

要获得和维持 S 型公司身份,公司必须满足严格的标准:

  • 股东 不超过 100 名
  • 所有股东必须是 美国个人、某些信托或遗产。公司、合伙企业或非居民外国人不能成为股东。
  • 经济上 只有一类股票。(允许投票权的差异,但所有股票必须具有相同的利润和资产权利)。
  • 不是不合格的公司,例如银行或保险公司。
  • 你必须按时提交 表格 2553。对于现有企业,这通常是在纳税年度第三个月的第 15 天(对于日历年企业,则为 3 月 15 日)。

为什么选择 S 型公司?

  • 单层税收: 利润和损失“传递”给企业,直接计入所有者的个人纳税申报表,通过 附表 K-1 报告。公司本身不缴纳联邦所得税。
  • 自雇税节省: 这是一个关键优势。业主-雇员必须支付自己“合理的薪水”,这需缴纳 FICA 税(社会保障和医疗保险)。但是,任何额外利润都可以作为 分配 支付,这无需缴纳自雇税。

S 型公司的缺点

  • 严格的规则: 所有权限制非常严格。意外违反其中一项(例如,将股票出售给不合格的股东)可能导致 S 型公司身份“意外终止”,这可能会产生混乱的税务后果。
  • “合理薪酬”审查: IRS 密切关注支付给业主-雇员的薪水是否合理。为了最大限度地提高免税分配而支付自己人为的低薪水是审计的一个主要危险信号。
  • 州的差异性: 并非所有州都承认 S 型公司选举。有些州对 S 型公司征税,就像它们是 C 型公司一样,或者它们可能会征收单独的实体级税,部分抵消了联邦税收优惠。

你应该选择哪一个?

这个决定归结于你对所有权、资金和现金流的目标。

如果你预计会这样做,请考虑 C 型公司

  • 寻求风险资本家的机构投资。
  • 为创始人和投资者创建不同的股票类别(例如,优先股)。
  • 使用复杂的股权工具,如 SAFE 或可转换票据。
  • 现在或将来拥有非美国所有者。
  • 在从企业中提取大量现金之前,将利润再投资数年。

如果你符合以下情况,请考虑 S 型公司

  • 100% 由符合标准的美国个人所有。
  • 已经盈利,并希望有效地将现金分配给所有者。
  • 可以自信地管理工资单并向业主经营者支付可辩护的市场价格薪水。
  • 不需要为不同类型的业主设置复杂的股权类别。

如果你不确定,许多企业最初都是作为 特拉华州 C 型公司 来保持最大的灵活性。如果你的盈利能力和所有权结构使其有利,你可以稍后评估进行 S 型公司选举。


Beancount.io:你的账簿有何不同(附示例)

无论你选择 C 型公司还是 S 型公司,Beancount.io 的纯文本分类账都使税收和股权的资金流动清晰且可审计。以下是一些示例,说明了你的日记账分录中的主要区别。

1)C 型公司:应计和支付公司所得税

C 型公司负责自己的所得税。你将累积此负债,然后支付。

2025-03-31 * "第一季度应计联邦公司所得税"
Expenses:Taxes:Income 12500.00 USD
Liabilities:Taxes:Federal -12500.00 USD

2025-04-15 * "支付 2025 年第一季度联邦预估税"
Liabilities:Taxes:Federal 12500.00 USD
Assets:Bank:Checking -12500.00 USD

2)C 型公司:支付股息 vs. 保留收益

当 C 型公司分配利润时,它是股息。这是股权的减少,而不是费用。

2025-06-30 * "董事会宣布并支付现金股息"
Equity:Dividends 50000.00 USD
Assets:Bank:Checking -50000.00 USD

如果你保留收益,则只需不发布此交易。利润保留在你的 Equity:RetainedEarnings 账户中。

3)S 型公司:合理薪水和工资税

S 型公司所有者必须获得薪水。这是一项标准的工资支出,包括雇主方税款。

2025-01-31 * "所有者工资单(工资总额和雇主税)"
Expenses:Payroll:Wages 8000.00 USD ; 工资总额
Expenses:Payroll:EmployerFICA 612.00 USD ; 雇主部分税款
Liabilities:Payroll:Federal -2000.00 USD ; 预扣税 + FICA
Liabilities:Payroll:State -400.00 USD ; 州预扣税
Assets:Bank:Checking -6212.00 USD ; 支付给所有者的净工资

2025-02-15 * "将工资税汇给代理机构"
Liabilities:Payroll:Federal 2000.00 USD
Liabilities:Payroll:State 400.00 USD
Assets:Bank:Checking -2400.00 USD

4)S 型公司:所有者分配

这是 S 型公司中 超出 薪水的利润支付方式。请注意,它 不是 费用。它是直接从股权中提取的,类似于股息,但对所有者的税务影响不同。

2025-03-15 * "所有者分配(利润传递)"
Equity:Distributions:OwnerA 20000.00 USD
Assets:Bank:Checking -20000.00 USD

所有者会收到一份附表 K-1,详细说明其在公司利润中的份额,并在其个人申报表上处理税款。

科目表提示

  • 税收:
    • C 型公司: 你将需要 Expenses:Taxes:IncomeLiabilities:Taxes:Federal
    • S 型公司: 此所得税账户通常在联邦层面未使用,但 工资税 账户(Expenses:Payroll:TaxesLiabilities:Payroll:*)是必不可少的。
  • 股权:
    • C 型公司: 标准设置包括 Equity:CommonStockEquity:AdditionalPaidInCapitalEquity:RetainedEarningsEquity:Dividends
    • S 型公司: 你的图表看起来类似,但通常使用 Equity:Distributions 而不是股息。有些跟踪 Equity:AAA(累计调整账户)来管理分配基础。
  • 工资单:
    • 如果两种结构都有雇员(包括业主-雇员),则都需要强大的 Expenses:Payroll:*Liabilities:Payroll:* 账户。

需要的 IRS 表格(常见案例)

  • C 型公司: 表格 1120(年度所得税申报表)、表格 1120-W(预估税)、表格 941(季度工资单)、表格 940(年度失业/FUTA)、表格 1099-DIV(对于每个收到股息的股东)、W-2/W-3。
  • S 型公司: 表格 1120-S(年度所得税申报表)、附表 K-1(对于每个股东)、表格 941/940、W-2/W-3。
  • 州: 请记住,单独的州所得税、特许经营税和工资税申报表可能适用于两者。

常见问题解答快速解答

  • LLC 可以是 S 型公司吗? 是的。LLC 可以提交表格 8832 以选择作为公司纳税,然后提交表格 2553 以选择 S 型公司身份(假设它符合所有资格规则)。

  • S 型公司在税收方面“总是更便宜”吗? 不一定。收益完全取决于你的利润水平、所有者的合理薪水、州税法和个人所有者的税级。

  • S 型公司可以拥有优先股吗? 不,在经济意义上不行。S 型公司只能拥有 一类股票。你可以拥有不同的 投票 权(例如,有投票权和无投票权的普通股),但所有股票必须具有相同的分配权和清算资产权。

  • 我以后可以从一种类型切换到另一种类型吗? 可以,但这可能很复杂。从 C 型公司转换为 S 型公司很常见,但你必须注意时间安排和潜在的内在收益 (BIG) 税收规则。从 S 型公司转换为 C 型公司也是可能的,并且通常在风险投资融资轮之前是必需的。


Beancount.io 如何提供帮助

无论你选择哪种实体,Beancount.io 都能提供你所需的清晰度和控制力。

  • 纯文本、版本控制的账簿,可从单一所有者 S 型公司扩展到风险投资支持的 C 型公司。
  • 清晰的工资单和股权工作流程,可以轻松区分分配和股息、跟踪股票期权费用以及管理留存收益。
  • 为你的注册会计师提供清晰的导出,包括试算表、损益表和资产负债表,以及每个数字的完全可审计的跟踪记录。
  • 用于银行馈送和文档捕获的强大自动化,而不会牺牲人工可读分类账的透明度。

想要抢先一步吗?索取我们的 C 型公司和 S 型公司 Beancount 科目表样本和示例日记账包。


*免责声明: 本指南仅供参考,不构成法律或税务建议。税法和实体法规因州而异,并且可能会发生变化。在选择或更改你的企业实体类型之前,你应咨询合格的注册会计师或律师。*

Beancount.io 与传统会计软件:哪一款最适合你?

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

几十年来,商业会计领域一直由 QuickBooks、Xero 和 FreshBooks 等一系列常见的封闭式、基于 GUI 的系统主导。它们设定了标准,提供易于使用的可视化工作流程,以满足非技术用户的需求。但对于开发人员、高级用户以及任何重视绝对透明度和控制力的人来说,一种截然不同的方法已经出现:Beancount.io。

本文将 Beancount.io 与传统会计软件进行了直接比较。我们将详细分析它们在理念、灵活性、成本和长期可维护性方面的核心差异,以帮助你确定哪个系统真正符合你的需求。

2025-08-08-beancount-io-vs-traditional-accounting-software

1. 理念和工作流程

这两种方法最根本的区别在于其核心理念。

Beancount.io Beancount.io 建立在纯文本会计的理念之上。其核心是,每一笔财务交易都是一个简单文本文件中的条目。这种“会计即代码”的模型优先考虑人类可读、版本可控的记录。你的财务数据以一种永恒的、开放的格式存在,你完全拥有它——它永远不会被供应商锁定。此工作流程专为熟悉代码编辑器、Git 等版本控制系统和命令行工具的用户而设计。

传统软件 传统的会计平台是基于 GUI 和表单驱动的。你可以使用向导、下拉菜单和可视化表单输入数据。这种方法优先考虑即时性和可访问性,使非技术用户可以轻松上手,而无需陡峭的学习曲线。但是,你的数据存储在专有格式或云数据库中,如果你决定迁移到其他服务,通常需要复杂的导出和导入程序。

结论: 如果你优先考虑完全控制、数据所有权、透明度和自动化,那么 Beancount.io 无疑是赢家。如果你需要一个“点击即用”的界面和最小的学习曲线,那么传统软件会感觉更自然。

2. 灵活性与定制化

软件如何适应你的特定需求?

Beancount.io 100% 可编写脚本是 Beancount.io 的超级能力。它与 Python 无缝集成,允许你连接到任何 API,自动从银行馈送中获取数据,根据复杂规则以编程方式标记交易,并生成根据你的确切规范定制的报告。你的扩展和定制能力几乎是无限的,不受任何供应商强加的限制。

传统软件 这些平台提供与 PayPal、Stripe 和各种工资单服务等常用工具的精选集成。虽然方便,但你是在供应商的围墙花园内操作。定制仅限于平台允许的内容,高级报告或自动化通常需要升级到更高级别的计划或购买第三方附加组件。你可以使用他们的 API,但你将始终受其生态系统规则和速率限制的约束。

结论: Beancount.io 为开发人员和技术用户提供了无与伦比的灵活性。传统工具更适合与流行商业应用程序的标准即插即用工作流程。

3. 协作与透明度

你与他人合作和审核记录的方式大相径庭。

Beancount.io Beancount.io 上的协作是通过 Git 管理的。这使得对财务分类账的每次更改都完全透明且可审核。你可以看到谁在何时、为何以及如何进行了更改——就像代码审查工作流程一样。这非常适合已经采用 GitHub 或 GitLab 等工具的分布式团队。此外,没有隐藏的计算;报告中的每个数字都可以追溯到分类帐文件中确切的项目条目,从而确保完全可审核性。

传统软件 协作是通过内置的用户角色和权限来处理的。你可以邀请你的会计师、簿记员或业务合作伙伴通过 Web 界面直接访问账簿。这对于遵循传统财务监督模式的企业非常有效。缺点是某些内部操作,例如税务计算或自动余额调整,可能是难以独立验证逻辑的不透明“黑匣子”。

结论: Beancount.io 非常适合重视粒度可审核性和代码风格协作的团队。传统系统对于实时共享 GUI 访问的会计师来说更友好。

4. 成本和所有权

财务模型和数据所有权的概念截然不同。

Beancount.io 核心 Beancount 软件是开源且免费的。你只需为 Beancount.io 的增值服务付费,其中包括托管、智能自动化和高级功能。没有按席位许可费用,因此你可以扩展团队而不会产生额外费用。最重要的是,零供应商锁定。你的数据是你可以随时随地移动、编辑或存储的文本文件集合。

传统软件 这些服务采用订阅模式,通常按月或按年计费。定价通常根据功能分层,你可能会面临根据组织规模而定的每用户或每公司费用。这会产生依赖性;如果你停止付款,则可能会失去对数据和软件功能的访问权限。这种供应商锁定是一项重大的长期风险。

结论: 从长远来看,Beancount.io 的成本效益要高得多,尤其是对于重视数据主权的技术团队而言。传统软件提供可预测的订阅成本,但会造成长期依赖性。

5. 学习曲线和采用

你能多快上手并运行?

Beancount.io 学习曲线无疑更陡峭。采用此系统需要熟悉基于文本的编辑、理解基本语法以及熟悉 Git 等工具。但是,最初的投资会有回报。一旦掌握,Beancount 就能实现令人难以置信的快速、可重复的工作流程,并提供对你的财务状况更深入、更基础的了解。

传统软件 这些平台专为非技术企业主设计,并提供最小的入门障碍。你可以在几分钟内启动并运行、发送发票和对费用进行分类。也就是说,学习更高级的功能,例如自定义报告构建或设置多实体会计,仍然需要大量时间投入。

结论: 如果你愿意花时间学习一个强大的系统,那么 Beancount.io 是正确的选择。对于需要立竿见影的非技术用户来说,传统软件更容易上手。

并排比较

功能Beancount.io传统会计软件
核心理念会计即代码;纯文本分类账基于 GUI;表单驱动
数据格式开放(纯文本)专有(数据库)
数据所有权100% 用户拥有和可移植供应商控制;潜在的锁定
灵活性无限;使用 Python 完全可编写脚本受限于供应商的生态系统和 API
协作基于 Git;透明的更改历史记录基于角色的用户权限
透明度完全可审核;无隐藏计算某些计算可能不透明
成本模型开源核心;为托管/自动化付费每月/每年订阅(SaaS)
学习曲线对于非技术用户来说更陡峭低;专为快速入门而设计
理想用户开发人员、高级用户、数据分析师中小企业所有者、非技术团队

何时选择 each

最终的决定取决于你团队的技能、优先级和工作流程。

如果你符合以下条件,请选择 Beancount.io:

  • 是开发人员、数据分析师或技术倾向的高级用户。
  • 最重视绝对透明度、控制力和长期数据可移植性。
  • 想要完全自动化你的会计并将其深度集成到你的自定义工作流程中。
  • 习惯于以与源代码相同的严谨性处理你的财务记录。

如果你符合以下条件,请选择传统会计软件:

  • 想要一个快速入门、可视化的界面,无需任何技术设置。
  • 需要提供即时的、会计师友好的访问,只需最少的培训。
  • 更喜欢由供应商处理所有更新和合规性的托管解决方案。
  • 你的集成需求可以通过流行的现成应用程序来满足。

最后的想法

Beancount.io 并不是想成为一个更好的 QuickBooks——它是一种根本不同的思维方式。它代表会计即代码。对于技术专业人员来说,这种转变提供了与 Git 版本控制为软件开发带来的同样的飞跃:完全透明、完美再现性和最终控制。

同时,传统会计软件继续在开箱即用的易用性和为非技术团队提供的现成集成方面胜出。正确的选择不在于哪个总体上“更好”,而在于哪个完美适合你的工作流程、你的优先级以及你对财务数据要求的控制程度。

S-Corp 选举:Beancount 用户指南

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

它是什么,何时值得,以及如何在你的账本中清晰地建模(附示例)。

⚠️ 本指南仅适用于美国,仅供教育之用。请咨询税务专业人士以了解你的具体情况。

简要概述

  • S-corp 是你通过向美国国税局(IRS)提交 2553 表格 选择的一种 税务状态,以便企业利润直接转到所有者的个人纳税申报表。一个关键要求是你必须向所有者经营者支付 合理的 W-2 工资,然后才能以股息或分配的形式获取任何利润。
  • 截止日期很重要:对于现有企业,你必须在你想让 S-corp 状态生效的纳税年度的 第 3 个月的第 15 天 或之前提交申请。对于 2025 年的日历年选举,2025 年 3 月 15 日是星期六,因此实际截止日期是下一个工作日,即 2025 年 3 月 17 日,星期一
  • 为什么要这样做?主要吸引力在于潜在的 自雇税节省。虽然你的 W-2 工资需要缴纳 FICA 税,但分配则不需要。但是,这种好处伴随着额外的工资、合规性以及某些州的额外实体级税的成本。
  • 在 Beancount 中,将工资与分配分开 至关重要。你需要跟踪工资负债,处理持有公司 2% 以上股份的股东的健康保险的特殊会计处理,并通过权益账户明确记录分配。

2025-08-08-s-corp-election

什么是 S-corp 选举?

从本质上讲,S-corp 选举是你向 IRS 提出更改企业纳税方式的请求。通过提交 2553 表格,你请求 IRS 根据《国内税收法典》的 S 子章 对你的公司或 LLC 征税。这使你的企业成为“传递”实体,这意味着其收入、亏损、扣除额和抵免额直接传递给股东的个人纳税申报表。这纯粹是一种税务分类,而不是一种不同类型的合法商业实体。

对所有者经营者的主要影响

一旦选举生效,你的角色基本上分为两部分:你现在既是公司的 股东,又是公司的 雇员

这种区别至关重要。你因劳动获得的报酬必须以 W-2 工资 的形式支付,这需要缴纳标准的工资税(社会保障和医疗保险)。任何剩余利润都可以作为 分配 支付,这通常不需要缴纳自雇税。IRS 坚持要求你在获得任何分配之前,为自己支付 合理的工资

你应该选择 S-corp 状态吗?

一旦你的企业产生稳定且有意义的利润,通常值得评估 S-corp 选举。一个常见的经验法则是,当你的 持续业务利润 可以轻松地支持你所在职位的 市场工资,并且在支付所有新的管理成本后还有足够的剩余利润进行分配时,就应该考虑 S-corp 选举。

确切的盈亏平衡点取决于你的具体情况,并取决于几个因素:

  • 你的“合理工资”:在你的行业中,企业会为具有你的技能和职责的人支付多少工资?这个数字是你的 W-2 工资的基准,并且会受到 IRS 的审查。
  • 州税和费用:一些州有自己的规定。例如,加州对 S-corp 的净收入征收 1.5% 的税,外加每年至少 800 美元的特许经营税。
  • 额外成本:你需要一个工资服务,并且你将支付失业保险。由于增加了复杂性,你的簿记和税务准备费用也可能会增加。
  • 合格商业收入扣除额(199A 条款):S-corp 选举会影响你的合格商业收入扣除额。你支付给自己的 W-2 工资可以帮助你获得全额扣除额,或者在收入较高的情况下成为限制因素。

资格和时间安排

并非所有企业都可以成为 S-corp。以下是高级要求:

  • 它必须是国内公司或符合条件的 LLC。
  • 它不能拥有超过 100 名股东。
  • 它只能拥有一种类型的股票。
  • 股东必须是个人、某些信托或遗产(即,不能是合伙企业、公司或非居民外国人股东)。

何时提交 2553 表格

时间安排至关重要,新企业和现有企业的规则略有不同。

  • 对于新企业:你必须在你的第一个纳税年度的第一天后的 2 个月零 15 天 内提交申请。例如,如果你的企业的纳税年度从 1 月 7 日开始,你的截止日期是 3 月 21 日。
  • 对于现有的 C-corp(或作为 C-corp 征税的 LLC):你可以在上一个纳税年度的任何时间或你想让选举生效的年度的 第 3 个月的第 15 天 或之前提交申请。如果该日期是周末或节假日,截止日期将延至下一个工作日,这是根据 IRC 第 7503 条的规定。

如果你错过了截止日期怎么办? 不要惊慌。IRS 根据 2013-30 号税收程序 提供了延迟选举救济的途径。如果你有合理的延迟提交申请的理由,你通常可以在预定生效日期后的 3 年零 75 天 内申请此救济。

合理工资:让人犯错的部分

这是 S-corp 结构中最受审查的方面。IRS 非常明确:股东-雇员必须在 任何利润作为分配之前 获得 合理的报酬

“合理”是什么意思?没有单一的金额。IRS 和法院会考虑各种因素来确定你的工资是否合适,包括你的职责、你花费的工作时间、你的经验水平以及类似企业会为类似服务支付的费用。如果你支付给自己的 W-2 工资非常低,同时获得大量分配,IRS 可能会仔细审查。这通常被视为试图逃避工资税的危险信号。

2% 以上股东的健康保险和附加福利

对于持有公司 2% 以上股份的股东的健康保险,S-corp 有一个特殊规则。如果 S-corp 支付或报销这些健康保险费,则该费用可由 S-corp 扣除

但是,这些保费的价值也必须 包含在股东-雇员的 W-2 工资中。虽然这笔金额需要缴纳联邦所得税,但只要处理得当,它就可以免缴社会保障和医疗保险(FICA)税。你必须与你的工资提供商协调,以确保这些金额在你的 W-2 上正确报告。

州级陷阱(示例)

联邦 S-corp 状态并不总是在州一级直接适用。请务必查看你所在州的具体规定。

  • 加州:S-corp 需要对其加州来源的净收入缴纳 1.5% 的税。此外,大多数公司必须每年支付 800 美元的最低特许经营税(尽管第一年有一些例外)。
  • 纽约:仅仅进行联邦 S-corp 选举是不够的。你还必须提交单独的州级选举,即 CT-6 表格,才能被视为纽约 S-corp。如果不这样做,你将在州一级被作为标准 C-corp 征税。

如何在 Beancount 中清晰地建模 S-corp

纯文本会计非常适合管理 S-corp 增加的复杂性。以下是构建账本的方法。

建议的会计科目表(入门)

此基本结构将你的工资支出与分配分开,并创建负债账户来跟踪你欠的税款。

; 核心银行和收入
1970-01-01 open Assets:Bank:Checking USD
1970-01-01 open Income:Sales USD
1970-01-01 open Income:Other USD

; 工资支出和负债
1970-01-01 open Expenses:Payroll:Wages USD
1970-01-01 open Expenses:Payroll:EmployerTaxes USD
1970-01-01 open Expenses:Benefits:HealthInsurance USD
1970-01-01 open Liabilities:Payroll:Federal:FIT USD
1970-01-01 open Liabilities:Payroll:FICA USD
1970-01-01 open Liabilities:Payroll:Medicare USD
1970-01-01 open Liabilities:Payroll:State:Withholding USD

; 权益
1970-01-01 open Equity:ContributedCapital USD
1970-01-01 open Equity:Distributions USD
1970-01-01 open Equity:RetainedEarnings USD

典型的工资单运行(简化)

你的工资提供商(例如,Gusto、ADP)将从你的银行账户中扣除你的净工资和总税负。你的 Beancount 交易应将其细分为工资总额、雇主税和相应的负债。

; 此交易记录了 10 万美元的年薪,按月支付。
2025-01-31 * "Gusto" "一月工资单 — 股东-雇员"
Expenses:Payroll:Wages 8,333.33 USD ; 工资总额
Expenses:Payroll:EmployerTaxes 637.50 USD ; 雇主方 FICA/Medicare
Liabilities:Payroll:Federal:FIT -1,200.00 USD ; 雇员预扣税
Liabilities:Payroll:FICA -516.67 USD ; 雇员预扣税
Liabilities:Payroll:Medicare -120.83 USD ; 雇员预扣税
Assets:Bank:Checking -7,133.33 USD ; 从银行扣除的净工资

当你的工资提供商代表你将这些税款汇给政府时,你将记录另一笔交易以清除负债。

; 这表示你的工资提供商支付的税款。
2025-02-15 * "EFTPS" "联邦工资税存款"
Liabilities:Payroll:Federal:FIT 1,200.00 USD
Liabilities:Payroll:FICA 516.67 USD
Liabilities:Payroll:Medicare 120.83 USD
Assets:Bank:Checking -1,837.50 USD ; 此金额与 Gusto 扣除的税款部分相符。

2% 以上股东的健康保险

将保费支付记录为业务支出。你可以使用元数据来提醒自己,这需要在 W-2 上报告。

2025-02-01 * "BlueCross" "股东健康保险(在 W-2 上报告)"
Expenses:Benefits:HealthInsurance 600.00 USD ; w2: "true"
Assets:Bank:Checking -600.00 USD

所有者分配(非工资)

分配是权益的减少,而不是业务支出。将它们与工资单分开记录。

2025-03-31 * "所有者分配" "第一季度分配"
Equity:Distributions 20,000.00 USD
Assets:Bank:Checking -20,000.00 USD

跟踪股东基数(可选,但建议)

你的股东基数决定了分配是否免税,以及你是否可以在个人申报表上扣除业务亏损。虽然官方计算是在你的纳税申报表上完成的,但你可以在 Beancount 中使用专用的权益子账户或元数据来跟踪估算值。你将每年将其与你从 S-corp 收到的附表 K-1 进行核对。

关于合格商业收入扣除额(199A 条款)的说明

包括 S-corp 在内的传递企业的业主可能有资格获得 最高 20% 的合格商业收入 (QBI) 扣除额。但是,对于收入超过一定门槛的纳税人,此扣除额可能会受到企业支付的 W-2 工资 金额的限制。这造成了一种复杂的相互作用:S-corp 要求支付合理的工资,而这些工资会影响你的 QBI 扣除额——有时会有帮助,有时会有限制。这是与你的税务专业人士一起建模的关键领域。

选举后运营上的变化

切换到 S-corp 会增加一些管理层:

  • 运行工资单:你必须正式运行工资单,包括预扣税款、雇主税款、季度申报和年终 W-2。
  • 提交 1120-S 表格:这是 S-corp 的年度纳税申报表。你还将向每位股东签发 附表 K-1,详细说明他们所占公司财务业绩的份额。
  • 正确处理股东健康保险:确保 2% 以上所有者的保费包含在其 W-2 工资中。
  • 注意州级规定:随时了解任何所需的州级 S-corp 选举或实体税(如在加州和纽约)。

要避免的常见陷阱

  • 延迟或无效选举:仔细检查截止日期,并确保所有需要的股东都签署了 2553 表格。如果你错过了,请根据税收程序 2013-30 调查救济措施。
  • 不合理的工资:不要试图支付给自己人为的低工资。根据你的职位和市场数据,记录你的薪酬为何合理。
  • 混淆工资和分配:在你的账簿中保持这些交易的清晰和分开。分配不是工资。
  • 忽略州级要求:忘记州级选举或未支付实体级税款可能会导致罚款和合规性问题。

快速核对清单

  • 确认你符合条件,并且潜在的税收节省大于新的成本。
  • 2553 表格 的提交截止日期添加到日历中(并记住周末/节假日规则)。
  • 设置工资单服务,并确定有充分记录的合理工资。
  • 计划仅在支付工资和业务支出 之后 才进行分配。
  • 调查并遵守你所在州的特定 S-corp 申报要求和税收。
  • 使用必要的工资单、负债和股东权益账户更新你的 Beancount 账本。

Beancount S‑Corp 入门(中性模板)

;
; Beancount S‑Corp 入门(中性模板)
; 生成日期:2025-08-09
; ---
; 如何使用:
; 1) 搜索“TODO”并填写你的州、工资单提供商、EIN 和银行名称。
; 2) 将工资和所有者分配分开。
; 3) 与你的工资单提供商协调,在 W‑2(第 1 格)上报告 >2% 股东健康保险。
; 4) 如果你不在加州/纽约州,请删除或修改加州/纽约州示例。
;
; 注意:
; - 这是一个簿记模板,不是税务建议。
; - 假设运营货币为美元。根据需要更改。
;

option "title" "S‑Corp 账本"
option "operating_currency" "USD"
commodity USD

; === 账户(自 2025-01-01 起开放;根据需要调整日期) ==================
2025-01-01 open Assets:Bank:Checking USD ; TODO:重命名为你的银行(例如,Assets:Bank:Chase:Operating)
2025-01-01 open Assets:Bank:Savings USD
2025-01-01 open Assets:AccountsReceivable USD
2025-01-01 open Assets:PrepaidExpenses USD

2025-01-01 open Liabilities:CreditCard:Corporate USD
2025-01-01 open Liabilities:Payroll:Federal:FIT USD
2025-01-01 open Liabilities:Payroll:Federal:FICA USD
2025-01-01 open Liabilities:Payroll:Federal:Medicare USD
2025-01-01 open Liabilities:Payroll:Federal:FUTA USD
2025-01-01 open Liabilities:Payroll:State:Withholding USD ; TODO:重命名州(例如,CA、NY)
2025-01-01 open Liabilities:Payroll:State:Unemployment USD
2025-01-01 open Liabilities:Payroll:Local USD

2025-01-01 open Equity:ContributedCapital USD
2025-01-01 open Equity:Distributions USD
2025-01-01 open Equity:RetainedEarnings USD
2025-01-01 open Equity:OpeningBalances USD

2025-01-01 open Income:Sales USD
2025-01-01 open Income:Other USD

2025-01-01 open Expenses:COGS USD
2025-01-01 open Expenses:Payroll:Wages USD
2025-01-01 open Expenses:Payroll:EmployerTaxes:FICA USD
2025-01-01 open Expenses:Payroll:EmployerTaxes:Medicare USD
2025-01-01 open Expenses:Payroll:EmployerTaxes:FUTA USD
2025-01-01 open Expenses:Payroll:EmployerTaxes:State USD
2025-01-01 open Expenses:Benefits:HealthInsurance USD
2025-01-01 open Expenses:Benefits:HSA USD
2025-01-01 open Expenses:Benefits:Retirement:Match USD
2025-01-01 open Expenses:Taxes:State:S‑Corp USD ; 例如,加州 1.5% 的实体级税
2025-01-01 open Expenses:Taxes:State:Franchise USD ; 例如,加州 800 美元的最低特许经营税
2025-01-01 open Expenses:Professional:Payroll USD
2025-01-01 open Expenses:Professional:Accounting USD
2025-01-01 open Expenses:Professional:Legal USD
2025-01-01 open Expenses:BankFees USD
2025-01-01 open Expenses:Software USD
2025-01-01 open Expenses:Office USD
2025-01-01 open Expenses:Meals USD
2025-01-01 open Expenses:Travel USD
2025-01-01 open Expenses:Insurance:GeneralLiability USD


; === 示例:所有者注资 =================================================
2025-01-02 * "所有者" "初始资本投入"
Assets:Bank:Checking 25,000.00 USD
Equity:ContributedCapital -25,000.00 USD

; === 示例:客户付款 =====================================================
2025-01-15 * "Stripe" "一月订阅收入"
Assets:Bank:Checking 12,000.00 USD
Income:Sales -12,000.00 USD

; === 示例:月工资单(单一股东-雇员) ========================
; 选择的数字可以完美平衡。根据你的实际情况调整 FIT/州数字。
; 工资总额:8,333.33 | 雇员 FIT:1,200.00 | 州预扣税:300.00
; 雇员 FICA (6.2%):516.67 | 雇员 Medicare (1.45%):120.83
; 雇主 FICA:516.67 | 雇主 Medicare:120.83
; 净工资:6,195.83
2025-01-31 * "Gusto" "一月工资单 — 股东-雇员"
Expenses:Payroll:Wages 8,333.33 USD
Expenses:Payroll:EmployerTaxes:FICA 516.67 USD
Expenses:Payroll:EmployerTaxes:Medicare 120.83 USD
Liabilities:Payroll:Federal:FIT -1,200.00 USD
Liabilities:Payroll:Federal:FICA -1,033.34 USD ; 雇员 + 雇主
Liabilities:Payroll:Federal:Medicare -241.66 USD ; 雇员 + 雇主
Liabilities:Payroll:State:Withholding -300.00 USD
Assets:Bank:Checking -6,195.83 USD

; === 示例:工资税存款(EFTPS 和州) =================================
2025-02-15 * "EFTPS" "联邦工资存款(FIT、FICA、Medicare)"
Liabilities:Payroll:Federal:FIT 1,200.00 USD
Liabilities:Payroll:Federal:FICA 1,033.34 USD
Liabilities:Payroll:Federal:Medicare 241.66 USD
Assets:Bank:Checking -2,475.00 USD

2025-02-16 * "STATE DOR" "州工资预扣税"
Liabilities:Payroll:State:Withholding 300.00 USD
Assets:Bank:Checking -300.00 USD

; === 示例:>2% 股东的健康保险 =================================
; 与工资单协调,以便将年度保费总额包含在 W‑2 第 1 格中。
; 保费本身在此处可扣除;如果处理得当,请勿对其预扣 SS/Medicare。
2025-02-01 * "BlueCross" "股东健康保险(W‑2 包含由工资单处理)"
Expenses:Benefits:HealthInsurance 600.00 USD ; w2: "true"
Assets:Bank:Checking -600.00 USD

; === 示例:所有者分配(非工资) =======================================
2025-03-31 * "所有者分配" "第一季度分配"
Equity:Distributions 20,000.00 USD
Assets:Bank:Checking -20,000.00 USD

; === 州示例(如果不适用,请删除/编辑) =================================
; 加州最低特许经营税(并非总是第一年;请查看规则)
2025-04-15 * "California FTB" "年度特许经营税"
Expenses:Taxes:State:Franchise 800.00 USD
Assets:Bank:Checking -800.00 USD

; 加州 S‑Corp 1.5% 实体级税(示例估计付款)
2025-06-15 * "California FTB" "S‑Corp 税估计"
Expenses:Taxes:State:S‑Corp 1,500.00 USD
Assets:Bank:Checking -1,500.00 USD

; 纽约单独的 S 选举 (CT‑6) 没有直接的账本影响;占位符注释。
2025-01-05 note Equity:RetainedEarnings "已提交纽约 S‑选举 (CT‑6) — 仅为簿记注释(无条目)"

; === 基数跟踪(可选 — 账外备忘录) =====================================
2025-12-31 note Equity:RetainedEarnings "基数滚动:+ 资本 25,000 + 收入 60,000 − 分配 20,000 = 期末基数 65,000(与 K‑1 核对)"


; === 导入提示(来自 Gusto/ADP 的 CSV) =============================================
; - 对于 Gusto 工资单注册 CSV,映射列:
; 工资总额 -> Expenses:Payroll:Wages
; 雇员 FIT/FICA/Medicare -> Liabilities:Payroll:Federal:FIT/FICA/Medicare(负数)
; 州预扣税 -> Liabilities:Payroll:State:Withholding(负数)
; 雇主 FICA/Medicare/FUTA/SUTA -> Expenses:Payroll:EmployerTaxes:*(正数)和
; 如果你的 CSV 将雇主税列为应付金额,请将其反映为 Liabilities:*(负数),
; 然后用你的 EFTPS/州付款清除。
; 净工资 -> Assets:Bank:Checking(负数,与支付日期匹配)
; - 公司支付的健康保险:
; 供应商付款 -> Expenses:Benefits:HealthInsurance(正数)/ 银行(负数);
; 确保工资单将 >2% 股东的年度保费包含在 W‑2 第 1 格中。
;
; 提示:
; - 将分配保留在工资单账户之外。
; - 使用 #payroll #distribution 等标签在 Fava 中进行过滤。
; - 考虑为税务准备金(联邦/州)使用单独的银行子账户。

S Corp 与 LLC:有何区别——哪种更适合你的账簿?

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

选择公司结构是你将做出的第一个真正的“财务”决策。对于大多数想要责任保护和传递税的小团队和独立创始人来说,通常的候选名单是 LLCS corporation

本指南解释了它们在法律、运营和纳税申报表上的区别,并展示了如何在 Beancount.io(纯文本、复式记账法,可从自由职业者扩展到 S corp)中为这两种结构维护清晰、可审计的记录。

2025-08-11-s-corp-vs-llc


一览

S CorpLLC
定义你向 IRS 为公司或 LLC 选择的一种税务状态州创建的具有灵活治理结构的法律实体
责任保护
所有者最多 100 位 美国 股东;不允许实体所有者不限成员数量;允许实体和非美国所有者(因州而异)
运营公司章程、董事/高级职员、会议和会议记录受运营协议约束;手续较少
股权类别单一类别股票(经济权利必须相同)灵活的成员单位和分配比例
税收传递税;提交 1120-S 表格默认传递税(附表 C 或 1065 表格);可以选择 S 或 C 税收
所有者薪酬工作的所有者必须通过工资单领取 合理工资成员领取 分配;默认情况下,所有者无需工资单
寿命和转让永续;股份通常可转让通常需要成员同意才能转让;规则在运营协议中设定
最适合的情况盈利、所有者经营者在工资单上;更清晰的投资者信号灵活的所有权、利润分配或非美国/实体成员;更简单的运营

它们的实际区别

虽然 LLC 和 S corp 都提供重要的责任保护,但它们的法律和财务机制根本不同。以下是它们之间区别的更深入的了解。

组建和手续

有限责任公司 (LLC) 是由州法律创建的法律实体。该过程包括向你所在的州提交“组织章程”并采用“运营协议”,这是一份灵活的内部文件,概述了企业的运营方式和利润分配方式。

另一方面,S corporation 本身不是一个法律实体,而是通过提交 2553 表格向 IRS 做出的 税务选择。这种选择可以应用于标准的 C corporation 或 LLC。一旦你选择 S corp 状态,你必须遵守更严格的公司手续,包括起草章程、任命董事会和高级职员、举行年度会议并保存这些会议的详细记录(称为“会议记录”)。

所有权和投资者

所有权的灵活性是 LLC 的一个标志。你可以拥有无限数量的所有者(称为“成员”),包括个人、其他公司和外国公民。运营协议允许自定义利润分配(“分配比例”)和不同类别的成员资格,这对于复杂的合作伙伴关系来说是理想的。

S corp 的限制要严格得多。它最多只能有 100 位所有者(称为“股东”),所有股东都必须是美国公民或居民。其他实体(如公司或合伙企业)不能成为股东。此外,S corp 只能拥有一种类别的股票,这意味着所有股东都拥有相同的经济权利(利润和分配必须按所有权比例分配)。这种简单性可以使股权结构更清晰,但严重限制了谁可以投资。

税收和申报

默认情况下,LLC 是一个传递实体。

  • 单一成员 LLC 是一个“被忽略的实体”,这意味着其收入和支出在所有者个人 1040 表格的 附表 C 上报告。
  • 多成员 LLC 提交合伙企业纳税申报表,即 1065 表格,并向每个成员发放一份附表 K-1,详细说明他们各自的损益份额。

S corp 也是一个传递实体,但它提交自己的企业纳税申报表,即 1120-S 表格,并向其股东发放 K-1。主要区别在于,任何为公司工作的所有者都必须被视为雇员,并通过正式的工资系统支付合理工资。

所有者如何获得报酬

这是最重要的区别之一。LLC 成员不是雇员。他们通过公司利润的 分配(或“提取”)获得报酬。成员有责任为其全部净利润份额缴纳自己的所得税和自雇税(社会保障和医疗保险),无论他们实际提取了多少现金。

S corp 所有者-雇员面临一个两部分组成的系统。

  1. 合理工资: 他们必须为他们所做的工作获得合理的工资,这需要缴纳标准的工资税 (FICA)。公司支付雇主部分,雇员支付其部分。
  2. 分配: 任何剩余利润都可以作为分配支付,这 无需 缴纳自雇税或 FICA 税。这种潜在的节税是企业选择 S corp 状态的主要原因。IRS 要求工资“合理”,因此你不能给自己支付 1 美元并将剩余部分作为分配;你必须记录你如何确定工资数额。

可转让性和寿命

S corp 股票的功能类似于典型的公司股票。它通常可以自由转让(除非受到股东协议的限制),并且公司具有永久存在性,这意味着即使股东离开或去世,公司也会继续存在。

转让 LLC 的所有权通常更复杂。运营协议规定了规则,通常需要其他成员同意才能出售或转让所有权单位。这可以保护成员不被强迫与陌生人开展业务,但会使退出业务变得更加麻烦。


你是否应该为你的 LLC 选择 S Corp 状态?

对于成功的小企业来说,一条非常常见的道路是先以 LLC 的形式开始,然后在盈利后选择 S corp 税收。这种“现在 LLC,盈利时 S corp”的策略使你能够在早期阶段享受 LLC 的简单性,并在收入增长后切换以进行税收优化。

创始人通常在以下情况下进行切换:

  • 利润稳定且可观。 作为 LLC 成员支付的自雇税金额大于合理工资的 FICA 税加上 S corp 的合规成本。
  • 他们想要更多结构。 S corp 的正式要求可以加强财务纪律,并向贷方或未来投资者发出更“严肃”的信号。

为你的 LLC 选择 S corp 状态会带来具体的变化:

  • 你必须为所有所有者-雇员建立和运行 工资单
  • 你必须遵守公司记录保存要求,包括举行会议并用 会议记录 记录下来。
  • 你的年度税务准备变得更加复杂,需要 1120-S 表格和 K-1。

什么时候最好保持 LLC?

  • 你需要 灵活的所有权 结构,例如特殊利润分配或让公司或外国合伙人成为成员。
  • 你的 利润波动 或你仍处于早期阶段。运行工资单的开销和成本可能还不值得。
  • 你计划发行不符合 S corp“单一类别股票”规则的复杂股权,例如 基于代币的薪酬 或优先单位。

实用经验法则: 在你切换之前,模拟你未来 12 个月的预期利润。计算你作为 LLC 的总税负(所得税 + 自雇税)。然后,计算你作为 S corp 的总税负(所得税 + 合理工资的 FICA 税)。如果 S corp 结构的节省是明确的、经常性的,并且超过了增加的合规成本,那么值得认真考虑选择。请务必记录你用于确定“合理工资”的分析。


如何在 Beancount.io 中保持任一结构的清晰性

无论你选择哪个实体,混乱的账簿都会破坏你的责任保护,并在税季造成噩梦。Beancount.io 为你提供纯文本、复式记账法,并具有自动导入和税务报告功能,因此你的法律结构不会变成记账混乱。

科目表建议

清晰的科目表是基础。以下是我们的建议:

  • 对于 LLC:
    • Equity:Member-Capital(用于初始和后续出资)
    • Equity:Member-Distributions(用于所有者提取)
    • 标准收入和支出账户。
  • 对于 S corp:
    • Equity:Common-Stock(用于资本出资)
    • Equity:Retained-Earnings(利润累积的地方)
    • Expenses:Payroll:Wages
    • Expenses:Payroll:EmployerTaxes
    • Equity:Shareholder-Distributions(用于从利润中支付)

示例条目

以下是 Beancount.io 账簿中常见所有者付款的显示方式。

LLC 成员分配: 此交易记录了向成员支付的 5,000 美元,减少了现金并在专用权益账户中跟踪了提取。

2025-03-15 * "成员分配"
Assets:Bank:Checking -5,000 USD
Equity:Member-Distributions 5,000 USD

S corp 所有者工资(来自工资单运行): 此条目记录了总工资、雇主应付的工资税份额以及离开银行的总现金。预扣负债也将在此处跟踪。

2025-03-31 * "所有者工资单"
Expenses:Payroll:Wages 8,000 USD
Expenses:Payroll:EmployerTaxes 612 USD
Assets:Bank:Checking -8,612 USD
Liabilities:Payroll:Withholding 0 USD ; 净工资 + 预扣款

S corp 股东分配: 这是从现金到股东分配权益账户的简单转账,与工资单分开。

2025-04-10 * "股东分配"
Assets:Bank:Checking -10,000 USD
Equity:Shareholder-Distributions 10,000 USD

在税季结束循环

使用清晰的 Beancount.io 账簿,税季将得到简化:

  • 直接从你的交易生成你的 损益表资产负债表
  • 导出你的会计师为你的特定税表(附表 C、1065 或 1120-S)所需的数据。
  • 将你的合理工资备忘录、会议记录和其他合规文件与你的交易一起保存,以获得完整、可审计的财务记录。

每种选择的优势

以下是决定的概要。

如果你想要以下内容,请选择(或保留)LLC:

  • 在所有权、利润分配或引入实体/外国成员方面具有最大的灵活性。
  • 最少的公司手续,无需强制所有者工资单。
  • 在你寻找产品市场契合度或利润不稳定的情况下,合规性更简单。

如果你想要以下内容,请选择(或选举)S corp:

  • 一旦你的利润能够证明正式工资单的合理性,就可以节省自雇税 (FICA)。
  • 清晰、传统的公司结构,具有直接的股票转让能力。
  • 投资者和贷方通常更喜欢已成立运营公司的治理模式。

总结

LLC 和 S corp 都可以保护你的个人资产,并允许企业利润传递给所有者以用于税收目的。最佳选择完全取决于你的所有权结构、你的预期盈利能力以及你对正式治理和工资单的偏好。

无论你选择哪种方式,有纪律的记账比实体的标签重要得多。使用 Beancount.io 保持你的财务记录精确、可搜索和可复制。


使用 Beancount.io 建立可用于税务和投资的账簿

  • 纯文本、版本控制的复式记账法。
  • 为 LLC 和 S corp 设计的清晰科目表。
  • 自动化的银行、信用卡和处理器导入和对账。
  • 可用于税务的导出和无缝的会计师协作。
  • 可从独立创始人扩展到多实体企业的系统。

立即使用 Beancount.io 为你的实体启动简化的账簿。


本指南仅供参考,不构成法律或税务建议。请咨询你的律师或税务顾问以获得针对你具体情况的指导。