即用型模板:损益表、资产负债表和现金流量表
引言
每一位自由职业者、小企业主或财务爱好者都需要清晰了解自己的财务状况。核心财务报告,如损益表、资产负债表和现金流量表,正是提供这种清晰度的报告——它们也是大型公司用于衡量业绩和财务健康状况的相同报告。好消息是,借助Beancount(开源纯文本记账工具),你可以轻松生成这些专业级的报表。在这篇文章中,我们介绍三种报表的即用型Beancount兼容模板,解释它们为何重要,以及如何使用。到文章结尾,你将能够在纯文本账本中自行生成利润/亏损汇总、净资产快照和现金流分析。
财务报告为何重要
理解你的数字是做出明智决策和健康发展的关键。适当的财务报表能让你全面了解财务状况,甚至可以帮助提高盈利能力。它们让你始终掌握现金流动态,揭示企业的财务实力,并让申请贷款或准备税务等任务变得更容易。简而言之,这些报告将原始交易数据转化为洞察。例如,查看上季度的损益表可以告诉你,扣除费用后,你的自由职业项目是否真正盈利。资产负债表显示你的资产(你所拥有的)是否超过负债(你所欠的),表明你的净资产。现金流量表则能凸显你是否有足够的现金流入来覆盖你的义务。通过定期审查这些报表,你可以尽早发现问题(如费用上升或现金储备减少)并做出战略性调整。在Beancount中,强大的报告功能与其他任何会计系统一样重要——毕竟,数字只有在你能够解读时才有意义。我们的模板将帮助你以直接、开源的方式做到这一点。
三种核心报告概述
让我们简要回顾一下三种核心财务报表的内容及其重要性:

-
损益表(利润与亏损) – 汇总一段时间(例如月、季度、年)内的收入和支出,以确定净利润或亏损。换句话说,它回答“这段时间内企业是否盈利?”通过显示总收入减去总支出。损益表揭示你的盈利能力随时间的变化——收入激增或支出增加都会在这里清晰反映。
-
资产负债表(财务状况表) – 在特定时间点提供财务状况的快照,列出资产(所拥有)与负债(所欠)相对照,差额为权益。它遵循基本方程:资产 = 负债 + 权益。资产负债表本质上显示了你在某一时刻的净资产——例如你拥有多少现金和设备,与债务或义务相平衡,权益代表你在企业中的份额或留存利润。
-
现金流量表 – 跟踪一段时期内现金进出你企业的动态。它将现金流分类为经营活动(日常业务)、投资活动(购买设备或投资)和融资活动(贷款、业主出资)。此报告显示你的资金_从何而来_以及_如何被使用_,揭示是否有足够的现金流入来维持运营。对于小企业,现金流至上——许多盈利的企业仍因现金流管理不善而失败,因此理解此报表至关重要。(实际上,研究表明,现金流管理不善是小企业失败的主要原因之一。)
这三份报表合在一起,能够全面反映财务健康状况。资产负债表一目了然地显示你所拥有的与你所欠的,利润表展示你的盈利能力,而现金流量表通过显示资金的流入和流出跟踪流动性。接下来,我们将为Beancount用户介绍这些报表各自的模板。
可下载的Beancount兼容模板
为了方便你,我们为这三份核心报表准备了现成的模板。这些模板是下面完整的Beancount账本片段,你可以直接复制并自定义。无需额外下载任何内容。每个模板都提供了一个结构化的会计科目表(在现金流量表的情况下,还提供了一些查询指导),以便通过最少的设置,你就能开始生成相应的报表。以下是每个模板的概述及其包含的内容:
-
利润表模板(损益类账户) – 此模板定义了收入和费用账户的基本层级,以记录你的收入和支出。它包括示例收入账户(例如
Income:Sales、Income:Freelance、Income:Interest)和费用账户(例如Expenses:Rent、Expenses:OfficeSupplies、Expenses:Utilities)。通过使用标准的顶级账户名称“Income”和“Expenses”(Beancount要求账户以五个类别之一开头:Assets、Liabilities、Equity、Income或Expenses),在这些账户中记录的所有交易都会汇总成适当的损益计算。你可以根据需要重命名或添加子账户——关键是所有收入账户都在Income:下,所有成本都在Expenses:下。有了这种结构,Beancount(或Fava)可以自动生成任意期间的利润表,显示总收入、总费用和净利润。示例片段:2025-01-01 open Income:Sales USD 2025-01-01 open Income:Freelance USD 2025-01-01 open Expenses:Rent USD 2025-01-01 open Expenses:Utilities USD(此片段打开了一些常见的收入和费用账户;你可以将“USD”替换为你的货币,并根据你的业务调整账户名称。)
-
资产负债表模板(资产、负债、权益) – 资产负债表模板为你的资产和负债设置账户。它包括典型的资产账户(例如
Assets:Cash:Checking、Assets:AccountsReceivable、Assets:Equipment)、负债账户(例如Liabilities:CreditCard、Liabilities:Loans)和权益账户(例如Equity:OwnerCapital、Equity:RetainedEarnings)。所有账户名称以Assets、Liabilities或Equity开头,以便Beancount识别其类型。有了这个会计科目表,你可以记录交易(如购买设备或贷款),并随时生成资产负债表,清晰地划分资产、负债和权益。该模板还提供了一个Equity:Opening-Balances账户用于初始化期初余额,以及一个Equity:RetainedEarnings(或所有者权益)账户,用于随时间累积净利润。值得注意的是,Beancount可以实时计算你的留存收益(净利润),而无需为每个期间手动进行“结账”交易。这意味着即使你在年末没有专门将净利润转入权益,资产负债表报表仍然会平衡——软件在生成报表时会隐式地将收入和费用余额计入权益。这使得你无需特殊调整就能轻松获得任意日期的资产负债表。示例片段:2025-01-01 open Assets:Cash:Checking USD 2025-01-01 open Assets:Equipment USD 2025-01-01 open Liabilities:CreditCard USD 2025-01-01 open Equity:OwnerCapital USD 2025-01-01 open Equity:RetainedEarnings USD你可以根据你的实际情况自定义这些账户(例如,如果你有产品,添加
Assets:Inventory;如果是公司,将OwnerCapital拆分为普通股等等)。填入余额和交易后,你将能够生成一张经典的资产负债表,显示资产、负债和权益的总计。 -
现金流量表模板(现金流量类别) – 生成现金流量表需要了解哪些交易属于经营活动、投资活动或筹资活动。我们的现金流量模板提供了相应的指导,以帮助你对现金流动进行分类。该模板不仅仅是账户列表,还包括关于如何构建账户和使用Beancount的查询功能来推导现金流量的建议:
-
它假设你明确地定义了现金及现金等价物账户(例如,你所有的银行账户和备用金都在
Assets:Cash下)。 -
它提供了示例标签(例如
#operating、#investing、#financing),当你仅从账户无法明显看出类别时,可以将其附加到交易行上。将每个标签放在交易的第一行,紧挨着叙述。例如,购买新设备可以标记为#investing,而所有者投入或贷款收入可以标记为#financing。 -
按照这些约定,每个类别运行一个 Beancount 查询语言(BQL)查询。每个查询汇总带有该标签的交易的
Assets:Cash分录。记录携带的是position,而不是amount,并且标签形成一个无法分组的集合,因此每个标签一个查询替代了任何单个的分组查询。Beancount 本身不生成正式的分类现金流量表,但通过结构化账户和使用标签,你可以模拟它。以下三个查询是针对 Beancount 3.2.3 和 beanquery 0.2.0 执行的:SELECT sum(position) AS cash_flow FROM year = 2025 AND 'operating' IN tags WHERE account ~ "^Assets:Cash" SELECT sum(position) AS cash_flow FROM year = 2025 AND 'investing' IN tags WHERE account ~ "^Assets:Cash" SELECT sum(position) AS cash_flow FROM year = 2025 AND 'financing' IN tags WHERE account ~ "^Assets:Cash"每个查询返回一行:该类别在 2025 年的净现金变动。三个总计加起来等于你现金账户的期间变动。注意日期边界:
FROM首先选择整个交易,因此日期在期间内的期初余额交易会被计入。将期初余额日期设置在报告期之前,以将它们排除在流量之外。
在托管的 Beancount.io 账本上,现金流量表报告会自行对账户进行分类,而不是读取这些标签。它遵循相同的默认值(现金流量角色):Income 和 Expenses 属于经营活动,非现金 Assets 属于投资活动,Liabilities 和 Equity 属于筹资活动,而 cash-flow-role 元数据可以覆盖任何一种方式。在 bea query 或 Fava 的查询页面中使用上述标签。对于托管报告,请使用元数据。
在更简单的情况下(例如,没有复杂投资的自由职业实践),你可能甚至不需要标签——你可以推断,支付到 Assets:Equipment 的现金是投资流出,Liabilities:Loan 的增加是筹资流入,等等。我们的模板文档解释了如何根据你的需求进行调整。关键是所有现金交易都流经可识别的现金账户,因此这些账户在两个日期之间的净变动代表你的总现金流量,然后你可以将其分解为各个类别。虽然这种方法需要更多的设置,但使用 Beancount 的数据,它能给你带来真正的现金流量表体验。(注意:大多数 Beancount 用户发现,资产负债表和损益表一起已经回答了许多与现金相关的问题。但如果你需要正式的细分,这个模板可以帮你实现。)
上面的每个模板都是一个完整的片段:按原样复制到你的账本中,然后进行自定义。你可以将它们作为起点——随意自定义账户名称或添加/删除账户,以适应你的个人财务或业务。目标是拥有一个坚实的会计科目表和结构,使报告基本自动化。
如何将这些模板与 Beancount 结合使用
即使你已经有一个 Beancount 账本,使用这些模板也很简单。以下是一些简单的步骤:
-
复制模板 – 将上面损益表、资产负债表和现金流量表的
open片段复制到你的工作账本或你包含的单独文件中。没有单独的文件需要下载:此页面上的片段就是完整的模板。 -
整合到你的账本中 – 你有几种选择:
- 如果你正在开始新的账本: 你可以直接使用模板内容。将模板中的账户复制到你的主
.beancount文件中。确保每个账户都有open指令(如上面的例子所示),并包含适当的开始日期和货币。这建立了你的会计科目表。 - 如果你已有账本: 将模板账户与你当前的账户进行比较。你可能已经有类似的账户(例如,你可能已经使用
Income:Sales或Assets:Bank:Checking)。在这种情况下,你不需要重复——只需确保你的账户遵循标准分类(资产/负债/权益/收入/费用)。如果模板中有你尚未追踪的账户(例如Equity:RetainedEarnings),如果你希望开始使用它,可以为其添加open指令。你也可以将任何有用的标签或习惯(尤其是关于现金流)合并到你的交易记录流程中。 - 使用 include: Beancount 允许从另一个文件包含文件。如果你希望保持账户定义独立,你可以将模板中的所有
open指令放入一个文件,如chart_of_accounts.beancount,然后在你的主文件中添加一行:include "chart_of_accounts.beancount"。这样,你可以保持账户结构和交易的清晰分离。这由你决定——只要账户存在并遵循合理的层级,报告就能正常工作。
-
添加你的数据 – 模板本身只包含账户定义(以及一些查询示例)。要获得有意义的报告,你需要添加自己的交易。在记录收入和费用时,务必使用收入和费用账户。在记录资产购买、贷款等时,请使用资产负债表模板中的资产和负债账户。如果你遵循模板结构,所有内容都已正确分类。例如,记录
2025-08-01 * "Client Project X",将-5000.00 USD记入Income:Freelance,同时Assets:Cash:Checking作为对方账户,这会影响你的损益表;第二个交易将2000.00 USD记入Expenses:Subcontractor来记录其成本。如果你记录2025-08-15 * "Bought new laptop" #investing,将1500.00 USD记入Assets:Equipment,同时Assets:Cash:Checking作为对方账户,这将反映在你的资产负债表上(设备增加,现金减少),并通过标签计入投资现金流出。 -
生成报告 – 一旦你的账户和交易就绪,你就可以随时生成财务报表:
-
如果你喜欢 Web 界面,只需运行 Fava。例如:
fava my_ledger.beancount。在 Fava 的浏览器界面中,导航至 Income Statement 页面查看当年的损益(你可以调整时间过滤器以查看不同时期),或 Balance Sheet 页面查看净值快照。报告将使用你的账本中的账户(模板已设置好)显示。Fava 会自动从你的 Beancount 文件创建损益表和资产负债表——无需进一步配置。(如果你设置了现金流量标签,你可以使用 Fava 的 Query 页面运行模板中提供的现金流量查询,并在浏览器中查看结果。) -
如果你喜欢命令行或可导出的文件,请使用
bea check验证账本,然后使用bea report获取一键报表,或使用下面的 BQL 行获取行级细节。旧的上游报告命令已在 Beancount 3 中移除;bea是替代它的产品 CLI。请使用bea0.2.0 或更新版本执行这些命令:# Fail first when the ledger has errors; a clean ledger exits 0; errors are listed with a non-zero exit bea --file my_ledger.beancount check # One-command forms for the same statements bea --file my_ledger.beancount report income-statement --time 2025 bea --file my_ledger.beancount report balance-sheet # Income-statement numbers: one row per income and expense account bea --file my_ledger.beancount query "SELECT account, sum(position) AS total FROM year = 2025 WHERE account ~ '^Income|^Expenses' GROUP BY account ORDER BY account" # Balance-sheet numbers as of a date: one row per asset, liability, and equity account bea --file my_ledger.beancount query "SELECT account, sum(position) AS balance FROM close ON 2026-01-01 WHERE account ~ '^Assets|^Liabilities|^Equity' GROUP BY account ORDER BY account" # One cash-flow leg, as CSV for a spreadsheet bea --file my_ledger.beancount query -f csv "SELECT sum(position) AS cash_flow FROM year = 2025 AND 'operating' IN tags WHERE account ~ '^Assets:Cash'"收入总计以负数打印,费用总计以正数打印,遵循 Beancount 的符号约定;净利润是两者之和的相反数。资产负债表账户与该期间的净额对账。
-f csv输出可直接在任何电子表格中打开,这覆盖了旧的脚本化报表用例(例如,归档月度损益表)。模板确保这些报告(无论是通过 Fava 还是bea query)在每个标题下正确组织数字。
- 按需定制 – 请随意调整模板。如果你有额外的收入来源或支出类别,可以添加新账户(例如,你可能希望将
Expenses:Marketing和Expenses:Travel分开)。模板只是一个起点 – 每个企业都是独特的,你应该根据自己的情况来调整账户结构。Beancount 的优势在于它非常灵活,而且_你_控制结构,而不是一刀切的软件。只需记住:如果你在 Assets/Liabilities/Equity/Income/Expenses 之外添加顶级账户,它不会自动出现在标准报表中(因为这五个类别是财务报表结构的基础)。大多数人都会坚持使用这五个类别(或它们本地化的等价物),我们的模板也是如此。
按照这些步骤,你将把模板集成到 Beancount 账本中,并准备好随时生成精美的财务报表。
可视化报表的技巧和工具
拥有数据和账户只是成功的一半 – 以清晰的方式呈现信息是另一半。以下是一些技巧和工具,可以帮助你充分利用 Beancount 中新的财务报告设置:

-
使用 Fava 进行交互式报告: 如前所述,Fava 是 Beancount 的首选 Web 界面。它不仅能显示损益表和资产负债表,还增加了图表和交互性。例如,Fava 可以将损益表显示为图表(如树图或条形图),以可视化每个支出类别对总支出的贡献。你可以点击损益表或资产负债表中的特定账户,深入查看该数字背后的交易。你还可以通过几次点击调整时间范围 – 查看年初至今、上个季度或任何自定义期间的损益表。资产负债表可以按你选择的任何日期查看。这对于分析非常有用:前一秒你还在查看整个年度,下一秒你就可以筛选到单个月份或特定项目标签,报表会立即更新。Fava 基本上可以将你的纯文本账本变成一个完整的仪表板无需编写任何额外代码。它甚至支持多列布局,并具有深色模式以提供舒适体验。如果你还没有尝试过,你可能会发现 Fava 会成为你理解财务状况的不可或缺的工具。
-
利用过滤器和查询: 在 Fava 中,请善用过滤器栏。假设你想查看仅针对你的自由职业部分的损益表 – 如果你已将账户结构设置为将这些收入和支出放在特定的子账户下(或相应地进行标记),你可以按该账户或标签进行过滤,Fava 将显示过滤后的损益表。同样,你可以滤除一次性特殊项目,以查看其对利润的影响。即时切片和切片的能力意味着你不必为每次小分析都导出到 Excel;许多工作都可以在 Fava 中完成。Fava 中的查询页面也很强大:你可以使用 任意 Beancount 查询(使用类似 SQL 的语法)来生成自定义的小型报表。例如,你可以创建按付款对象划分的支出快速表格,或者如前所述,生成特定时期的自定义现金流细分。这对于高级用户来说非常有用 – 本质上,你的账本变成了一个可以查询的数据库。
-
导出和共享报告: 如果你需要与不使用 Beancount 的人分享你的财务报表,你有多种选择。在 Fava 中,你可以进入“报告”页面,并针对任何表格导出为 CSV 或 Excel(有一个选项可以下载查询结果)。你也可以从浏览器打印为 PDF,以获得格式良好的报告(Fava 生成的 HTML 通常适合打印)。有些用户会生成 Fava 报告的 HTML 快照,然后发送给他们的会计师或同事。由于数据始终来自你的文本账本,你可以随时重新生成并导出更新的报告。如果你喜欢命令行,上面命令块中的 CSV 导出行直接写入 CSV,你可以编写脚本定期发送邮件或归档。还有一些社区脚本(Beancount 邮件列表中提到过一个)可以将三种报表编译成单个 PDF,用于“年度报告”风格的输出——使用模板和 Beancount 的数据,你可以探索这些以生成精美的演示文稿。
-
其他可视化工具: 虽然 Fava 是主要工具,但请记住你的数据不是锁定的——它是纯文本。如果你喜欢电子表格或拥有喜欢的商业智能工具(如 Tableau、PowerBI 等),你随时可以从 Beancount 导出数据并使用它们。例如,一些用户定期将交易转储为 CSV,并使用 Python 或 R 生成 Fava 之外的自定义图表。甚至还有与 Grafana 或 Metabase 等平台集成的潜力,用于实时仪表板。然而,对于大多数用例来说,Fava 内置的可视化(净资产图表、收入与支出条形图、支出饼图等)已经绰绰有余。建议从 Fava 开始,因为它开箱即用地覆盖了大多数需求。随着你越来越自信,如果需要专门的分析,你可以探索这些其他工具。底线是,你的财务数据是_你的_——你可以用任何你喜欢的方式可视化它们,你永远不会局限于单一的输出格式。
-
保持一致性并进行验证: 使用模板时的一个技巧——保持账户和标签使用方式的一致性。如果你突然将个人开支混入为损益表提供数据的业务费用账户中,可能会搅浑水。如果你的账本同时包含个人和业务财务(Beancount 可以处理),这是可以的,但请考虑使用单独的账户层级(例如,
Expenses:Business:...与Expenses:Personal:...),以便在需要时分别报告。此外,利用 Beancount 的余额断言和**bea check** 来确保你的账簿准确无误。没有什么比一个干净的账本以退出码 0 结束——错误会在非零退出码中列出——并且知道你的资产负债表会精确到分更令人安心的了。如果报告中的某些内容看起来不对,请仔细检查你的条目——可能某笔交易被错误分类了。模板旨在通过提供正确的账户结构来尽量减少设置错误,因此如果你坚持使用它们,你的报告应该会正确。如果你需要帮助,Beancount 社区(邮件列表、论坛、Slack 等)非常友好——你可以询问如何表示特定场景或验证报告。
总而言之,将 Fava 与这些模板结合使用,可以将你的纯文本会计数据转化为丰富的仪表板。你获得了两全其美的效果:文本账本的灵活性和透明度,以及精美的财务报表和图表的可读性。无论你是快速查看资产负债表以了解当前净资产,还是深入研究损益表以分析哪些支出上升了,这些工具都将帮助你清晰而有说服力地讲述数字背后的故事。
最后的想法和鼓励
财务报告不必仅限于大公司或高级会计部门。借助 Beancount 和这些模板,任何人都能制作出专业的财务报表,并更好地了解自己的财务状况。你选择了开源、纯文本的记账方式——这意味着你拥有自己的数据,并可以按需塑形。这些现成的模板旨在通过将经过验证的会计格式应用于你的 Beancount 账本,为你提供良好的开端。
我们鼓励你把这些模板拿来,改造成你自己的。调整账户名称,添加对你重要的细节,不要害怕随着你的业务或个人财务增长而扩展。随着时间的推移,你会开发出一套完全适合你生活的定制会计科目表,同时遵循标准报告实践。当你打开Fava看到资产负债表或损益表时,你可能会几乎忘记源头是一个简单的文本文件——但这种透明度和控制力正是Beancount强大的原因。
记住,会计的目标是为你作为决策者提供信息和赋能。通过定期审查你的收入、支出、资产、负债和现金流,你将获得洞察,帮助你更好地预算、更聪明地投资,并在夜晚安心入睡,确切知道自己的财务状况。而且因为一切都是自动化的(没有手动电子表格求和或繁琐的QuickBooks点击),你可以在几分钟内更新账簿,并随时获取最新报告——无论是月度检查还是年终回顾。
我们希望这些模板和技巧能让你走上无痛财务报告的道路。稍加练习,你会发现用Beancount生成损益表或现金流量报告就像写几条交易然后点击刷新一样简单。所以放手去做吧——复制模板,启动Fava,享受掌控财务的自信。快乐记豆!
来源:
- Investopedia – 财务报表:类型列表及如何阅读它们
- TD Bank – 管理小企业财务的4种财务报表
- Beancount文档 – 账户命名约定(五个账户类别)
- Beancount文档 – 由软件完成结账(无需手动年末操作)
- Beancount教程 – 生成报告(通过bea query和Fava生成损益表和资产负债表)
- Beancount生态系统分析 – (Bean-report与Fava对比,Fava开箱即用的报告)
- Beancount & Fava指南 – (Fava功能:交互式损益表、资产负债表、查询等)
- Beancount & Fava指南 – (通过自定义查询/标签生成现金流量表)
- Beancount & Fava指南 – (可视化:树状图、过滤、实时更新)
- Gary Peck(Beancount社区) – 常见报告脚本讨论(现金流分类注释)