将一份申报文件中的资产负债表和利润表转换为平衡的 Beancount 账本,使用与每个 Open Ledger 公司相同的约定。
本指南完整地走一遍百事公司一个季度的实际数据。这些数字与百事公司 2026 年第二季度财报一致。所有金额均以百万美元(MUSD)为单位。
你将获得什么
你最终会得到一个账本,它能验证期末资产负债表,并将利润表记录为一笔零和交易。bea check 通过。利润表和资产负债表报告与申报文件中公布的总数一致。同样的模式驱动着 Open Ledger 上的每家公司以及 open-ledger 标签下的每篇文章。
选择单位和财政年度
将 operating_currency 设置为与申报文件一致的百万单位。对于以美元报告的公司,使用 MUSD。当申报文件以其他货币报告时,使用 MEUR、MJPY 或其他 M<CCY> 形式。
一个 MUSD 表示 1,000,000 美元。余额 25998 MUSD 意味着约 260 亿美元现金。
将每个财政期间放在年份目录下的单独文件中。年度文件命名为 FY2025/FY2025.bean。季度文件命名为 FY2026/FY2026Q2.bean。从 main.bean 中按从旧到新的顺序包含它们。
开设会计科目表
main.bean 包含选项、账户开设和包含语句。它不包含余额,也没有收入条目。
在 1970-01-01 以 MUSD 开设每个账户。保持核心名称在各公司间一致,以便读者可以比较不同账本。
option "title" "PepsiCo, Inc. Financial Statements FY2021-FY2026Q2"
option "operating_currency" "MUSD"
; Currency convention:
; MUSD = Millions of USD (custom unit for readability)
; 1 MUSD = USD 1,000,000
; Example: "1000 MUSD" means USD 1,000,000,000
; All figures sourced from PepsiCo, Inc. annual reports / filings.
; Fiscal years end Dec 31 (52/53-week year; Dec 31 shown).
; ── ASSETS ──────────────────────────────────────────────────────────────────
1970-01-01 open Assets:Current:Cash MUSD
1970-01-01 open Assets:Current:ShortTermInvestments MUSD
1970-01-01 open Assets:Current:AccountsReceivable MUSD
1970-01-01 open Assets:Current:Other MUSD
1970-01-01 open Assets:NonCurrent:PropertyPlantEquipment MUSD
1970-01-01 open Assets:NonCurrent:Goodwill MUSD
1970-01-01 open Assets:NonCurrent:IntangibleAssets MUSD
1970-01-01 open Assets:NonCurrent:Other MUSD
; ── LIABILITIES ─────────────────────────────────────────────────────────────
1970-01-01 open Liabilities:Current:AccountsPayable MUSD
1970-01-01 open Liabilities:Current:ShortTermDebt MUSD
1970-01-01 open Liabilities:Current:DeferredRevenue MUSD
1970-01-01 open Liabilities:Current:Other MUSD
1970-01-01 open Liabilities:NonCurrent:LongTermDebt MUSD
1970-01-01 open Liabilities:NonCurrent:Other MUSD
; ── EQUITY ──────────────────────────────────────────────────────────────────
1970-01-01 open Equity:OpeningBalance MUSD ; FY2021 initialization
1970-01-01 open Equity:Adjustments MUSD ; year-over-year BS differences
1970-01-01 open Equity:CommonStockAndAPIC MUSD
1970-01-01 open Equity:RetainedEarnings MUSD
1970-01-01 open Equity:OtherComprehensiveIncome MUSD
; ── INCOME ──────────────────────────────────────────────────────────────────
1970-01-01 open Income:Revenue MUSD
1970-01-01 open Income:OtherNet MUSD ; net other income (interest income, etc.)
; ── EXPENSES ────────────────────────────────────────────────────────────────
1970-01-01 open Expenses:CostOfRevenue MUSD
1970-01-01 open Expenses:ResearchAndDevelopment MUSD
1970-01-01 open Expenses:SellingGeneralAdministrative MUSD
1970-01-01 open Expenses:OtherNet MUSD
1970-01-01 open Expenses:IncomeTax MUSD
include "FY2026/FY2026Q2.bean"Assets:Current:Other 和其他 …:Other 叶子账户吸收残差。建模的明细项目加上该残差始终与申报文件的小计对账。
使用 pad 和 balance 验证资产负债表
在期末前一天从 Equity:Adjustments 进行 pad。在期末日期断言申报文件中的数值。为每个账户写一对 pad 和 balance。
资产保持正余额。负债和权益保持负余额。残差行保留一条注释,指明它们对账的申报文件小计。
2026-06-29 pad Assets:Current:Cash Equity:Adjustments
2026-06-30 balance Assets:Current:Cash 25998 MUSD
2026-06-29 pad Assets:Current:ShortTermInvestments Equity:Adjustments
2026-06-30 balance Assets:Current:ShortTermInvestments 15600 MUSD
2026-06-29 pad Assets:Current:AccountsReceivable Equity:Adjustments
2026-06-30 balance Assets:Current:AccountsReceivable 10398 MUSD
2026-06-29 pad Assets:Current:Other Equity:Adjustments
2026-06-30 balance Assets:Current:Other 15604 MUSD ; current assets residual (67600 total current)
2026-06-29 pad Liabilities:Current:AccountsPayable Equity:Adjustments
2026-06-30 balance Liabilities:Current:AccountsPayable -8318 MUSD以同样的方式覆盖整个报表:每个资产和负债账户,以及 Equity:CommonStockAndAPIC、Equity:RetainedEarnings 和 Equity:OtherComprehensiveIncome。每个期间文件以横幅开头,注明公司名称、期间、单位和来源 URL。
将利润表记录为一笔交易
将交易日期设为财政期间结束日。收入过账为负数。费用过账为正数。Equity:Adjustments 吸收净利润,使条目总和为零。
在交易上方的注释中放置算术检查。在信任该条目之前,检查结果必须为零。
; Check: -23000 + 10350 + 400 + 8740 + 230 + 688 + 2592 = 0 ✓
2026-06-30 * "PepsiCo, Inc." "FY2026Q2 Income Statement"
Income:Revenue -23000 MUSD
Expenses:CostOfRevenue 10350 MUSD
Expenses:ResearchAndDevelopment 400 MUSD
Expenses:SellingGeneralAdministrative 8740 MUSD
Expenses:OtherNet 230 MUSD
Expenses:IncomeTax 688 MUSD
Equity:Adjustments 2592 MUSD ; net income offset收入为 23,000 MUSD。净利润为 2,592 MUSD。当其他收入净额为正时,将其过账到 Income:OtherNet,而不是 Expenses:OtherNet。在一个期间内永远不要同时使用两者。
验证并阅读报告
对根账本运行检查:
bea --file main.bean check一个干净的账本退出码为 0,且无输出。当你需要机器可读的有效性并要求 data.valid: true 时,推荐使用 bea --json --no-input --file main.bean check。
阅读公司财政窗口的利润表,而不是碰巧共享相同标签的日历季度:
bea --json --no-input --file main.bean report income-statement --time '2026-04-01 - 2026-06-30'在 Fava 中打开同一文件以浏览资产负债表和利润表。对照申报文件确认三件事:; Check: 注释总和为零,总资产等于总负债加权益,以及交易中的净利润等于申报文件中的净利润。
从模板开始
在发明新科目表之前,先复制这个形状。下面的实时模板是一家虚构的 Example Industries Inc. 的 FY2025 账本,以 MUSD 为单位。它使用相同的账户名称、pad 和 balance 模式,以及单笔利润表交易。
将此模式下载为 public-company-starter.bean,然后运行 bea --file public-company-starter.bean check。该文件与上述科目表、pad/balance 和利润表围栏匹配:现金最终为 25998 MUSD,应付账款为 -8318 MUSD,收入为 -23000 MUSD,所得税为 688 MUSD,以及 Equity:Adjustments 在 pad 和净利润抵消后为 -56690 MUSD。将百事公司的金额替换为你申报文件中的数字,并保留账户名称。
浏览 Open Ledger 上的所有真实公司。复制模板的结构,然后将虚构金额替换为你申报文件中的数字。
下一步
- 在 Open Ledger 上研究更多实时公司账本。
- 阅读 open-ledger 标签下的盈利分析文章。
- 当你需要家庭或自由职业者入门模板而不是 10-K 时,从 工作账本示例 复制个人财务模式。
- 查看 财务报告模板,了解较小账簿中利润表和资产负债表报告的形状。