跳转到主要内容

初创公司的Beancount配置

一套实用的、可直接复制粘贴的基础配置,用纯文本管理初创公司的账簿。适用于从种子前到A轮融资阶段。本文不构成法律或税务建议。


经营一家初创公司意味着身兼数职,其中最关键的角色之一就是“簿记员”。在你负担得起昂贵的软件或全职会计师之前,你需要一个准确、可审计,并且不会将你锁定在专有生态系统中的系统。这就是Beancount的用武之地:一个开源的纯文本会计系统。

使用Beancount意味着你的财务分类账将存放在文本文件中,与你的代码一起存放在Git仓库中。它是版本控制的、透明的,并且可以无限定制。本指南提供了一套完整、可复制粘贴的配置,让你的初创公司从注册成立到A轮融资都能顺利运行账簿,并建立在稳健的权责发生制会计原则之上。

1) 你将配置的内容

本指南将引导你创建一个完整的、专业级的会计配置。最终,你将拥有:

  • 在Git中管理的单一事实来源分类账main.beancount),为你提供公司财务的完整、可审计历史记录。
  • Fava用于生成精美的报表和图表。 Fava是Beancount的Web界面,可将你的文本文件转化为交互式的损益表、资产负债表和现金流分析。
  • 导入器的结构,你可以在之后添加,以便从你的银行、信用卡、PayPal和Stripe账户自动录入交易。我们将从手动操作开始以学习系统,然后再实现自动化。
  • 为现代初创公司设计的权责发生制会计科目表,内置对递延收入、预付费用和工资负债的支持。
  • 种子轮融资的原始工具,包括记录SAFE(未来股权简单协议)票据(作为负债或权益)和带利息的可转换票据的清晰示例。

2) 项目结构(放入你的仓库)

首先,在你公司的Git仓库中创建以下目录结构。这种组织方式可以保持你的分类账整洁且可扩展。

/ledger
  main.beancount
  /includes
    accounts.beancount
    opening-balances.beancount
    policies.beancount
  /documents
    /bank
    /invoices
    /receipts
  /importers              # 可选;在你自动化CSV导入时添加
    bank_importer.py
    card_importer.py
  • main.beancount:将所有内容整合在一起的核心文件。
  • /includes:存放你的会计科目表、期初余额和会计政策。
  • /documents:用于存储银行对账单、发票和收据的PDF文件,以形成清晰的审计线索。
  • /importers:存放你未来用于解析银行CSV文件的Python脚本。

3) 最小但合理的 main.beancount

这是你分类账的入口点。它设置了一些全局选项,并包含了其他组件文件。将以下内容复制到ledger/main.beancount中,并自定义标题。

option "title" "Acme, Inc. 分类账"
option "operating_currency" "USD"
option "documents" "ledger/documents"
 
include "includes/accounts.beancount"
include "includes/opening-balances.beancount"
include "includes/policies.beancount"
 
; 如果稍后添加导入器,你将在此处添加插件行。
; plugin "beancount.plugins.implicit_prices"

4) 入门会计科目表(权责发生制优先)

你的会计科目表是公司财务交易的完整类别列表。此入门模板专为权责发生制会计而构建,与现金收付制会计相比,它能更准确地反映你公司的健康状况。

将其放入includes/accounts.beancount中。你可以随时删除当前不需要的任何科目。

; --- 资产 ---
1970-01-01 open Assets:Bank:Checking              USD
1970-01-01 open Assets:Bank:Savings                USD
1970-01-01 open Assets:AR                         USD         ; 应收账款
1970-01-01 open Assets:Prepaid:Software            USD
1970-01-01 open Assets:Prepaid:Insurance           USD
1970-01-01 open Assets:Deposits                    USD         ; 保证金
1970-01-01 open Assets:Equipment                   USD
1970-01-01 open Assets:Intangibles                 USD
1970-01-01 open Assets:Crypto:BTC                  BTC
1970-01-01 open Assets:Other
 
; --- 负债 ---
1970-01-01 open Liabilities:AP                     USD         ; 应付账款
1970-01-01 open Liabilities:CreditCard:Corporate   USD
1970-01-01 open Liabilities:DeferredRevenue        USD
1970-01-01 open Liabilities:Payroll:Withholding    USD
1970-01-01 open Liabilities:Payroll:EmployerTaxes  USD
1970-01-01 open Liabilities:SalesTax:CA            USD
1970-01-01 open Liabilities:SAFE                   USD
1970-01-01 open Liabilities:NotesPayable           USD
1970-01-01 open Liabilities:Other
 
; --- 权益 ---
1970-01-01 open Equity:CommonStock                 USD
1970-01-01 open Equity:APIC                        USD         ; 额外实缴资本
1970-01-01 open Equity:SAFE                        USD         ; 如果你将SAFE归类为权益
1970-01-01 open Equity:RetainedEarnings            USD
1970-01-01 open Equity:OpeningBalances             USD
 
; --- 收入(负余额) ---
1970-01-01 open Income:Revenue:SaaS                USD
1970-01-01 open Income:Revenue:Services            USD
1970-01-01 open Income:Other                       USD
 
; --- 费用 ---
1970-01-01 open Expenses:COGS                      USD
1970-01-01 open Expenses:Payroll:Wages             USD
1970-01-01 open Expenses:Payroll:EmployerTaxes     USD
1970-01-01 open Expenses:Benefits                  USD
1970-01-01 open Expenses:Contractors               USD
1970-01-01 open Expenses:Software:Subscriptions    USD
1970-01-01 open Expenses:Cloud                     USD
1970-01-01 open Expenses:Rent                      USD
1970-01-01 open Expenses:Meals                     USD
1970-01-01 open Expenses:Travel                    USD
1970-01-01 open Expenses:Marketing                 USD
1970-01-01 open Expenses:Legal                     USD
1970-01-01 open Expenses:Accounting                USD
1970-01-01 open Expenses:Insurance                 USD
1970-01-01 open Expenses:BankFees                  USD
1970-01-01 open Expenses:Taxes:Income              USD
1970-01-01 open Expenses:Taxes:Sales               USD
1970-01-01 open Expenses:Other                     USD

备注

  • 收入科目为负数,因为它们代表复式记账中的贷方。不必担心这一点;Fava会在报表中自动翻转符号,因此你的收入将在损益表上显示为正数。
  • 狭窄、有目的的类别开始。以后添加新科目比清理混乱、过于细化的会计科目表要容易得多。

5) 期初余额(第一天)

分类账中的第一笔交易为后续记账奠定了基础。它记录了你开始记账当天各科目的初始状态。将此交易放入includes/opening-balances.beancount中,并根据你的实际初始状况调整日期和金额。

2025-01-01 * "期初余额"
  Assets:Bank:Checking              5,000.00 USD
  Liabilities:CreditCard:Corporate   -500.00 USD
  Equity:OpeningBalances           -4,500.00 USD

此条目确认公司成立时银行账户有5,000美元,信用卡欠款500美元Equity:OpeningBalances科目是一个特殊科目,用于确保交易借贷平衡,这是复式记账的要求。


6) 常见的初创公司交易(复制粘贴)

以下是早期初创公司最常见的财务事件的模板。复制、粘贴并加以调整以适应你的需求。

创始人购买股份(简单,仅货币)

当创始人按面值购买初始股份时,现金进入公司并记为权益。你的股权结构表(Carta、Pulley或电子表格)是股份数量的唯一来源;分类账只记录金额。

2025-01-05 * "创始人按面值购买股份"
  Assets:Bank:Checking                800.00 USD
  Equity:CommonStock                   -0.80 USD
  Equity:APIC                        -799.20 USD
  ; 8,000,000股普通股,每股$0.0001 — 数量在分类账外维护

(可选)将你自己的股份作为商品跟踪

如果你希望分类账跟踪已发行的股份数量,你可以将你的股票定义为一种“商品”。这更复杂,但能在分类账内提供更完整的记录。

2025-01-05 commodity ACME
  name: "Acme, Inc. 普通股"
 
2025-01-05 * "创始人股份发行"
  Assets:Bank:Checking                800.00 USD
  Equity:APIC                        -799.20 USD
  Equity:CommonStock           -8,000,000 ACME {0.0001 USD}

SAFE现金入账(选择分类)

SAFE(未来股权简单协议)既可以视为负债,也可以视为一种权益(具体来说,是“夹层权益”)。请咨询你的会计师以选择合适的方法,并保持一致性。

; (A) 权益分类(夹层)
2025-02-01 * "投后SAFE — SeedFund"
  Assets:Bank:Checking            500,000.00 USD
  Equity:SAFE                    -500,000.00 USD
 
; (B) 负债分类(直至转换)
2025-02-01 * "投后SAFE — SeedFund"
  Assets:Bank:Checking            500,000.00 USD
  Liabilities:SAFE               -500,000.00 USD

当有定价轮次完成时,你将根据交割文件将SAFE余额重新分类为优先股和额外实缴资本。

带应计利息的可转换票据

与SAFE不同,可转换票据明确是一种负债,并会累计利息。你需要记录初始现金,然后定期(例如每季度)计提利息费用。

2025-03-01 * "可转换票据 — 年利率6%"
  Assets:Bank:Checking            250,000.00 USD
  Liabilities:NotesPayable       -250,000.00 USD
 
2025-06-30 * "计提Q2票据利息"
  Expenses:Interest                 3,750.00 USD
  Liabilities:NotesPayable         -3,750.00 USD
  ; 250,000 * 6% * 0.25 = 3,750

年度SaaS销售(递延收入 + 按月确认)

这是权责发生制会计的基石。当客户预付一年的费用时,你不能一次性确认全部收入。你将其记入负债(DeferredRevenue),然后每月确认1/12

2025-03-10 * "年度订阅 — AcmeCo — INV-001"
  Assets:AR                       1,200.00 USD
  Liabilities:DeferredRevenue    -1,200.00 USD
  narration: "SaaS年度预付"
 
2025-03-20 * "支付INV-001"
  Assets:Bank:Checking            1,200.00 USD
  Assets:AR                      -1,200.00 USD
 
; 确认第1/12个月(每月重复或使用脚本)
2025-04-01 * "收入确认 1/12 — INV-001"
  Liabilities:DeferredRevenue       100.00 USD
  Income:Revenue:SaaS              -100.00 USD

预付费用及摊销

这是递延收入的反向操作。当你预付某项服务(如年度软件或保险)时,你将其记为资产(Prepaid),然后每月“摊销”或计提部分费用。

2025-03-01 * "年度软件预付"
  Assets:Prepaid:Software         1,200.00 USD
  Assets:Bank:Checking           -1,200.00 USD
 
2025-04-01 * "摊销预付 1/12"
  Expenses:Software:Subscriptions   100.00 USD
  Assets:Prepaid:Software          -100.00 USD

工资发放(净现金,含代扣和雇主税)

一笔工资分录包含几个部分:总工资费用、雇主税费用、支付给员工的净现金,以及你代扣并需上缴政府的税款负债。

2025-04-15 * "工资发放 — 4月15日"
  Expenses:Payroll:Wages          15,000.00 USD
  Expenses:Payroll:EmployerTaxes   1,200.00 USD
  Liabilities:Payroll:Withholding -4,000.00 USD
  Assets:Bank:Checking           -12,200.00 USD

销售税征收和缴纳(以加州为例)

当你征收销售税时,这不是你的钱。这是你欠州政府的负债。你在销售时记录该负债,并在缴纳时结清。

2025-05-10 * "发票 #123 — 加州应税"
  Assets:AR                       1,088.75 USD
  Income:Revenue:SaaS              -999.00 USD
  Liabilities:SalesTax:CA           -89.75 USD
 
2025-06-05 * "支付 #123"
  Assets:Bank:Checking            1,088.75 USD
  Assets:AR                      -1,088.75 USD
 
2025-07-20 * "缴纳加州Q2销售税"
  Liabilities:SalesTax:CA            89.75 USD
  Assets:Bank:Checking              -89.75 USD

外汇和加密货币(轻量级)

Beancount原生支持多种货币。使用price指令记录汇率,并使用{}成本语法处理特定交易。

2025-03-01 price EUR 1.0832 USD
 
2025-03-02 * "AWS欧盟地区费用"
  Expenses:Cloud                     90.00 EUR
  Liabilities:CreditCard:Corporate  -90.00 EUR
 
2025-03-05 * "购买BTC用于测试"
  Assets:Crypto:BTC                   0.0200 BTC {3400.00 USD}
  Assets:Bank:Checking           -3,400.00 USD

7) 使用Fava(一条命令生成报表)

Fava是出色的Web界面,能让Beancount数据生动起来。这是对你认真数据录入的回报。

  • 安装$ pip install fava
  • 运行$ fava ledger/main.beancount
  • 有用的视图损益表资产负债表日记账(用于按科目/标签筛选)以及查询(用于自定义类似SQL的查询)。

Fava快速筛选:

  • account:DeferredRevenue:显示递延收入科目中的所有活动。
  • tag:#invoice-001:标记与特定发票相关的交易并筛选。
  • from:2025-01-01 to:2025-12-31:专注于特定财务期间。

8) 月度结账检查清单(15–45分钟)

在每个月末,按照此检查清单操作,以确保你的账簿准确且最新。这种纪律性将使报税和投资者尽调变得轻松。

  • 银行/信用卡:导入或手动录入所有交易。核对余额与对账单。
  • AR/AP:录入所有已开具的发票和已收到的账单;将已支付的标记为已结清。
  • 收入:为所有预付合同录入月度收入确认分录。
  • 预付费用:摊销所有预付费用的1/12(或适当的比例)。
  • 工资:根据工资服务商的报告登记日记账分录。
  • 销售税:登记当月的销售税负债。
  • 种子工具:计提任何可转换票据的利息。
  • 合理性检查
    • 你的损益表收入是否大致符合预期的MRR/ARR?
    • 你的烧钱率和跑道是否与你的财务计划一致?
    • $ bean-check 运行是否无错误?Fava的报表看起来是否正确?
  • 提交到Git,使用简洁、一致的备注(例如,close: 2025-04)。

9) 元数据和文档(让审计更轻松)

你的分类账应具有自文档化特性。使用元数据并链接到源文档,以创建无懈可击的审计线索。未来的你(和你的会计师)会感谢你。

  • 为交易添加元数据,如payee:narration:invoice:customer:link:,以提高清晰度。
  • 将源PDF(发票、收据、银行对账单)附加到你的ledger/documents/文件夹中,并使用document:元数据标签进行链接。
  • 使用标签(#payroll#saas#vendor-aws#invoice-001)方便筛选和分析。

示例:

2025-03-10 * "年度订阅 — AcmeCo" #saas #invoice-001
  payee: "AcmeCo"
  invoice: "INV-001"
  document: "documents/invoices/INV-001.pdf"
  Assets:AR                       1,200.00 USD
  Liabilities:DeferredRevenue    -1,200.00 USD

10) 稍后导入(当你有时间时)

在头一两个月,先手动录入交易。这是学习系统和了解自身支出模式的最佳方式。一旦你熟悉了,就可以编写简单的Python导入器来自动化流程并减少重复劳动。

典型的导入器使用顺序:

  1. 银行CSV → Assets:Bank:Checking
  2. 信用卡CSV → Liabilities:CreditCard:Corporate
  3. Stripe/PayPal付款报告 → 收入和现金映射

将你的导入器放在/ledger/importers中,并像审查其他代码更改一样审查它们生成的交易。


11) 政策(放入 includes/policies.beancount

此文件用于记录你的会计决策,以确保一致性。它是一个简单的文本文件,但对于保持纪律至关重要。

  • 权责发生制基础;SaaS收入按比例确认。
  • 功能货币为USD;按当日汇率或交易汇率记录外汇。
  • 资本化门槛(例如,超过2,500美元的项目作为Assets:Equipment资产;否则立即费用化)。
  • 差旅/餐饮:必须在narration字段中记录业务目的。
  • 权益记录:明确说明你是使用仅货币还是股份商品方法。
  • SAFE/票据:记录你选择的分类(负债或权益)。

policies.beancount示例:

; 政策:权责发生制,收入递延并每月确认。
; 政策:USD功能货币。汇兑损益源自成本/价格数据。
; 政策:资本化超过2,500美元的有形资产,使用3年直线折旧。
; 政策:SAFE记录为负债,直至在有定价轮次中转换。

12) 快速故障排除

  • 日记账中收入显示为负数: 这是正确的!收入是贷方。Fava报表将显示为正数。
  • 余额不归零: 你可能有一笔不完整的交易。交易的过账必须合计为零。使用Fava的日记账视图找出问题所在。作为临时措施,你可以在Equity:Suspense科目添加一个平衡腿使文件有效,然后调查并修复根本原因。
  • 外汇不匹配: 确保在相关日期有price指令,或者使用你的功能货币指定成本基础,例如90.00 EUR {97.49 USD}

13) 在分类账之外跟踪的内容(保留链接)

Beancount用于处理财务交易,但有些事情更适合在专用系统中管理。关键是从你的分类账链接到它们。

  • 股权结构表:使用Carta、Pulley或电子表格。在Beancount中的融资交易中链接到已签署的交割文件。
  • 董事会同意书、股权激励计划、409A报告:将这些文件存储在安全位置,并在相关股权交易中添加link:元数据。
  • 纳税申报表:存储最终的PDF,并在年末结账交易中链接到它们。

可复制的入门文件(一体化)

如果你希望在扩展到include结构之前从单个文件开始,只需将上述各部分的文件内容粘贴到一个大型main.beancount中。你可以随时在分类账增长后对其进行重构。

该框架为你的初创公司财务提供了坚实、可扩展的基础。通过将账簿保存在版本控制下的纯文本中,你将获得无与伦比的透明度和控制力,使你的公司从第一天起就建立财务纪律。