跳到主要内容

14 篇博文 含有标签「Cash Flow」

查看所有标签

现金流量表完整指南:免费模板和最佳实践

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

了解你的资金来源和去向是成功运营业务的基础。 尽管许多企业主专注于其损益表,但现金流量表通常会揭示公司财务健康的真实情况。 毕竟,你可以在账面上盈利,但仍然可能耗尽现金来支付账单。

什么是现金流量表?

2025-08-14-guide-to-cash-flow-statements

现金流量表(也称为现金流量表)是一种财务文件,用于跟踪特定时期内(无论是月度、季度还是年度)流入和流出你企业的所有资金。 与显示收入何时赚取(即使尚未收到付款)的损益表不同,现金流量表仅关注实际的现金流动。

可以将其视为你企业的财务脉搏。 它显示你是否有足够的现金来支付工资、支付供应商、投资增长并维持运营。

为什么你的企业需要现金流量表

现金流问题是小企业倒闭的主要原因之一。 即使盈利的企业,如果没有足够的现金来履行其即时义务,也可能会失败。 以下是跟踪现金流的重要性:

揭示真实的流动性: 你的损益表可能显示利润,但如果客户尚未支付发票,你可能没有可用的实际现金。

实现更好的规划: 通过跟踪现金模式,你可以在短缺变成危机之前预测到,并为重大支出或投资做好计划。

吸引投资者和贷款人: 利益相关者希望看到你的企业产生正现金流并负责任地管理其资源。

识别问题区域: 你可能会发现过多的现金被捆绑在库存中,或者收款期太长。

支持增长决策: 你应该雇用新员工吗? 租赁新设备? 你的现金流量表有助于回答这些问题。

现金流量表的三个部分

每个现金流量表都分为三个主要类别,每个类别都讲述了你企业的不同故事:

1. 经营活动

本部分涵盖你的日常业务运营——产生主要收入的活动。 经营活动包括:

  • 从客户处收到的产品或服务现金
  • 支付给供应商和厂商的现金
  • 工资和员工福利
  • 租金、水电费和其他运营费用
  • 利息支出
  • 所得税支出

来自经营活动的净现金流可以说是你报表上最重要的行。 它显示你的核心业务活动是否产生正现金流。 如果这个数字持续为负数,则表明你的商业模式可能需要调整。

2. 投资活动

本部分跟踪与长期资产和投资相关的现金流:

  • 购买或出售财产、厂房和设备
  • 收购或处置其他业务
  • 购买或出售投资证券
  • 向其他实体提供的贷款(以及收到的还款)

对于成长型公司来说,这部分通常显示负现金流,因为他们正在投资于未来。 这不一定是坏事——它表明你正在为明天做准备。 但是,你需要来自经营活动或融资活动的正现金流来支持这些投资。

3. 融资活动

本部分显示你的企业如何筹集资金并偿还资金:

  • 来自贷款或发行债券的收益
  • 偿还债务本金
  • 所有者或股东投资的资金
  • 股票回购
  • 股息支付

本部分揭示了你如何为你的企业融资,以及你是严重依赖外部融资还是在内部产生足够的现金。

如何创建现金流量表

编制现金流量表有两种方法:直接法和间接法。 大多数小型企业发现间接法更容易实施。

间接法(推荐给小型企业)

第 1 步:从净利润开始 从你当期的损益表中的净利润开始。

第 2 步:调整非现金项目 加回不涉及现金支付的费用:

  • 折旧和摊销
  • 资产出售的损失(或减去收益)

第 3 步:调整营运资本变动

  • 增加应收账款的减少(或减少增加)
  • 减少库存的增加(或增加减少)
  • 增加应付账款的增加(或减少减少)

例如,如果应收账款增加了 2,000 美元,则从净利润中减去这笔款项,因为你记录了收入但尚未收到现金。

第 4 步:添加投资活动 列出所有购买或出售长期资产和投资的现金流。

第 5 步:添加融资活动 记录所有来自债务、股权和股息交易的现金流。

第 6 步:计算现金净变化额 将所有三个部分的净现金加起来。 这应该等于期初和期末之间你的现金余额的变化。

直接法

直接法在概念上更直接,但需要更详细的记录。 你只需列出所有现金收入和支出:

现金收入:

  • 从客户处收取的款项
  • 收到的利息
  • 其他经营现金收入

现金支出:

  • 支付给供应商的款项
  • 支付给员工的款项
  • 支付的利息
  • 支付的所得税
  • 其他经营现金支出

从总收入中减去总支出,以获得来自经营活动的净现金,然后如上所述添加投资和融资部分。

真实案例:一家小型面包店

假设你拥有一家社区面包店。 以下是一个简单的月度现金流量表的示例:

经营活动:

  • 净利润:4,000 美元
  • 加:折旧:500 美元
  • 应收账款增加:-1,000 美元(客户赊购)
  • 库存减少:800 美元(用完的物资)
  • 应付账款增加:600 美元(延迟支付一些供应商款项)
  • 来自经营活动的净现金:4,900 美元

投资活动:

  • 购买新烤箱:-3,000 美元
  • 来自投资活动的净现金:-3,000 美元

融资活动:

  • 面包店贷款本金支付:-500 美元
  • 来自融资活动的净现金:-500 美元

现金净增加额:1,400 美元

如果你月初在银行有 5,000 美元,那么月底你将有 6,400 美元。

使用现金流量表的最佳实践

1. 定期审核

不要仅仅为了你的会计师每年创建一次现金流量表。 至少每月审核一次,如果你的业务利润微薄或快速增长,则每周审核一次。 你审核的频率越高,你就能越快发现并解决问题。

2. 创建现金流预测

使用历史数据来预测未来的现金流。 这有助于你预测季节性变化,计划重大支出,并避免现金短缺。 大多数企业都会创建 12 个月的滚动预测,并每月更新一次。

3. 关注关键指标

特别注意:

  • 经营现金流:应始终为正数
  • 自由现金流:经营现金流减去资本支出
  • 现金转换周期:将库存投资转化为现金所需的时间

4. 比较期间

查看月度环比和年度同比趋势。 你的经营现金流是否在增长? 你是否越来越依赖融资? 这些趋势揭示了你的业务轨迹。

5. 与其他报表核对

你的现金流量表应与你的资产负债表和损益表讲述一个一致的故事。 你的现金流量表上的现金变化应与你资产负债表上的现金账户变化相匹配。

要避免的常见错误

将利润与现金流混淆: 仅仅因为你盈利并不意味着你有现金。 今天 60 天付款期的 10,000 美元销售额有助于你的损益表,但两个月内对你的现金流没有帮助。

忽略经营部分: 一些企业主只关注底线(现金的总变化),而不分析来源。 你希望从经营活动中获得正现金流,而不仅仅是从承担更多债务中获得。

忘记非现金交易: 折旧不使用现金,但它会减少你的净利润。 使用间接法时,请确保将其加回。

不规划季节性变化: 许多企业都有季节性现金流模式。 在充足的月份里规划好贫乏的月份。

混淆本金和利息: 利息支出是经营活动; 贷款本金支付是融资活动。 将它们分开。

下载你的免费现金流量表模板

为了帮助你开始跟踪你企业的现金流,我们创建了一个免费的、易于使用的 Excel 模板,其中包括:

  • 预先格式化的经营、投资和融资活动部分
  • 自动计算
  • 月度和年度视图
  • 针对你的特定业务的可自定义行项目
  • 用于向贷款人或投资者进行演示的专业格式

该模板使用间接法,该方法适用于大多数小型企业。 只需输入你的财务数据,模板就会自动计算你的现金流。

采取行动:你的下一步

理解和监控现金流不仅仅是为了生存——更是为了做出推动增长的明智决策。 以下是如何将这些知识付诸实践:

  1. 立即开始跟踪: 不要等到下个月或下个季度。 下载模板并在本周创建你的第一个现金流量表。

  2. 设置审核时间表: 在你的日历上安排时间,至少每月审核一次现金流。

  3. 建立现金缓冲: 目标是保持 3-6 个月的运营费用现金储备。

  4. 收紧收款: 如果应收账款正在消耗现金,请实施更严格的付款条件或后续程序。

  5. 明智地管理库存: 过多的库存会占用现金。 尽可能使用准时制订购。

  6. 协商付款条件: 你可以在不损害供应商关系的情况下延长应付账款吗? 你可以激励客户更快地付款吗?

底线

现金流管理并不吸引人,但至关重要。 你的现金流量表是你拥有的最强大的工具之一,可以了解你企业的财务健康状况并做出明智的决策。 通过跟踪你的资金来源和去向,你可以避免现金危机、计划增长并建立更具弹性的企业。

记住:收入是虚荣,利润是理智,但现金为王。 今天就开始跟踪你的现金吧。


对创建或解释你的现金流量表有疑问吗? 在下面留下评论,我们将帮助你找到答案。

了解应收账款(Beancount 指南)

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

如果你的企业向客户开具账单,你需要一种坚如磐石的方式来追踪谁欠你钱。这正是应收账款(AR)发挥作用的地方。它不仅仅是报告上的一个数字;它是你现金流的命脉。

本指南将带你了解应收账款是什么、为何重要,以及如何使用 Beancount 这套纯文本会计系统,以精准、清晰的方式进行管理。

2025-08-12-understanding-accounts-receivable


TL;DR

应收账款 (AR) 是客户因已交付的商品或服务而欠你的钱。它是资产负债表上的流动资产,是权责发生制会计的核心,也是企业现金流的关键驱动因素。你可以在 Beancount 中通过使用客户子账户、使用 ^links 将发票与付款关联,并运行几个简单查询来干净地追踪 AR。要衡量收款速度,可计算 AR 周转率应收账款天数 (DSO)。为控制风险,可使用 坏账准备


什么是应收账款?

定义
应收账款代表因已交付或已使用但尚未收到付款的商品或服务而应收的款项余额。根据 权责发生制会计,你在赚取收入时确认它,而不是在收到现金时。于是,AR 作为 流动资产 出现在公司资产负债表上。

为何重要
有效管理 AR 对保持健康的流动性至关重要。你收回发票的速度越快,现金转换周期 就越短——即将库存和其他资源的投资转化为现金所需的时间。通过监控 AR 周转率和应收账款天数 (DSO) 等指标,你可以清晰了解收款效率,并采取行动加以改进。

应收账款 vs. 应付账款(单行速记)

  • AR = 欠 的钱(资产)。
  • AP = 欠别人的钱(负债)。

双重记账中的应收账款流程

概念上,应收账款的生命周期包括以下步骤:

  1. 开具发票(赊销):当你发送发票时,资产(具体为应收账款)增加,同时确认已赚取的 Income
  2. 收款:客户付款时,你增加一个资产(Assets:Bank 账户),并减少另一个资产(Assets:AR)。总资产不变,但现金位置改善。
  3. 折扣或贷项:若提供提前付款折扣或开具贷项通知单,你会减少客户的 AR 余额,并以折扣费用或收入冲减(contra‑revenue)的方式抵消。
  4. 坏账:并非所有发票都能收回。为此,你可以确认坏账准备(contra‑asset,降低 AR 账面价值)并计入相应的坏账费用。随后,可针对特定不可收回的发票冲减该准备。

在 Beancount 中建模 AR

Beancount 是一套纯文本、双重记账系统,极其适合追踪 AR。它使用以 # 开头的 tags、以 ^ 开头的 links,以及类似 SQL 的查询语言 (bean-query),让整个 AR 流程透明、可审计且可脚本化。

建议的账户结构

一个清晰的科目表是基础。以下是推荐结构:

Assets:AR
Assets:AR:Clients:<Name>
Assets:AR:Allowance ; 坏账准备(contra‑asset)

Income:Sales
Income:Contra:SalesDiscounts ; 与费用账户的替代方案

Expenses:SalesDiscounts
Expenses:BadDebt

1. 记录赊销(开具发票)

向客户发送发票时,将其记入账本。

2025-07-01 * "Acme Co." "Invoice 2025-045 · Web design" ^INV-2025-045 #ar #client:acme
invoice: "2025-045"
due: "2025-07-31"
document: "/invoices/2025/INV-2025-045.pdf"
Assets:AR:Clients:Acme-Co 1200.00 USD
Income:Sales -1200.00 USD
  • ^INV-2025-045 link 是唯一标识符,用于将此发票与后续付款关联。
  • document: metadata 让 Fava(Beancount 的网页界面)能够直接点击链接打开发票 PDF。

2. 记录全额付款

Acme Co. 全额付款后,清除其应收账款余额。

2025-07-25 * "Acme Co." "Payment for INV-2025-045" ^INV-2025-045 #ar
Assets:Bank:Checking 1200.00 USD
Assets:AR:Clients:Acme-Co -1200.00 USD

使用相同的 ^INV-2025-045 link,可在审计线上清晰连接发票与付款。

3. 处理部分付款

若客户只付款部分,流程相同。link 仍保持关联。

2025-07-20 * "Acme Co." "Partial payment INV-2025-045" ^INV-2025-045 #ar
Assets:Bank:Checking 400.00 USD
Assets:AR:Clients:Acme-Co -400.00 USD

查询 ^INV-2025-045 将显示原始 1200 美元发票、这笔 400 美元付款,剩余 800 美元未收。

4. 处理提前付款折扣

假设对 1000 美元发票提供 2% 的提前付款折扣。

2025-07-10 * "Acme Co." "2% early-payment discount on INV-2025-046" ^INV-2025-046 #ar
Assets:Bank:Checking 980.00 USD
Expenses:SalesDiscounts 20.00 USD
Assets:AR:Clients:Acme-Co -1000.00 USD

这里,你冲销了全部 1000 美元的应收账款,记录了 980 美元现金收入,并将 20 美元折扣计作费用。注意:许多账本将销售折扣视为 contra‑revenue 而非费用。对小型账本而言,使用费用账户更为简便。关键是选定一种方法并保持一致。

5. 在发票中计入销售税

若收取销售税,应在开票时将其记为负债。

2025-07-01 * "Acme Co." "INV-2025-047 · Hardware + tax" ^INV-2025-047 #ar
invoice: "2025-047"
due: "2025-07-31"
Assets:AR:Clients:Acme-Co 1100.00 USD
Income:Sales -1000.00 USD
Liabilities:Tax:Sales -100.00 USD

你为 1100 美元开票,确认 1000 美元收入,同时对税务机关负有 100 美元的税金义务。

6. 处理坏账(坏账准备法)

在美国公认会计原则(GAAP)下,推荐使用坏账准备法,因为它能更好地匹配费用与收入。

步骤 1:在年末估计并建立准备
依据历史数据,估计一定比例的应收账款可能无法收回。

2025-12-31 * "Allowance for doubtful accounts (2% of AR)"
Expenses:BadDebt 300.00 USD
Assets:AR:Allowance -300.00 USD

这会创建一个 contra‑asset 账户(Assets:AR:Allowance),降低总应收账款的账面价值。

步骤 2:冲销具体的坏账
当确认某张发票肯定无法收回时,直接冲减准备。

2026-03-05 * "Write-off INV-2025-049 for Insolvent Client" ^INV-2025-049 #ar
Assets:AR:Allowance 1200.00 USD
Assets:AR:Clients:Insolvent-Client -1200.00 USD

此交易不影响费用,因为费用已在建立准备时确认。


简易报表与查询

使用 Fava 或 bean-query 可快速获取 AR 快照。

按客户列出未收款项

SELECT account, SUM(position)
WHERE account '^Assets:AR'
GROUP BY account
ORDER BY account;

某期间的 AR 活动日志

JOURNAL
WHERE account '^Assets:AR'
AND date >= 2025-07-01 AND date < 2025-08-01;

核心 AR 指标(快速公式)

这些比率的计算可通过 bean-query 导出所需数值(期间销售额、期初/期末 AR 余额),随后在电子表格或脚本中完成。这样既保持账本简洁,又让计算过程透明。

AR 周转率

衡量企业在一定期间内收回平均应收账款的次数。数值越高越好。

ARTurnover=fracNetCreditSalesAverageARAR\\ Turnover = \\frac{Net\\ Credit\\ Sales}{Average\\ AR}

应收账款天数 (DSO)

衡量从销售实现到收款完成的平均天数。数值越低越好。

DSO=(fracAccountsReceivableTotalCreditSales)timesNumberofDaysDSO = (\\frac{Accounts\\ Receivable}{Total\\ Credit\\ Sales}) \\times Number\\ of\\ Days

这两个指标共同反映了将发票转化为现金的效率。


简单的 Beancount 入门文件(复制/粘贴)

; --- Accounts ---------------------------------------------------------------
1970-01-01 open Assets:Bank:Checking USD
1970-01-01 open Assets:AR
1970-01-01 open Assets:AR:Clients:Acme-Co
1970-01-01 open Assets:AR:Allowance
1970-01-01 open Income:Sales
1970-01-01 open Expenses:SalesDiscounts
1970-01-01 open Expenses:BadDebt
1970-01-01 open Liabilities:Tax:Sales USD
; ---------------------------------------------------------------------------

; Example invoice
2025-07-01 * "Acme Co." "Invoice 2025-045 · Web design" ^INV-2025-045 #ar
invoice: "2025-045"
due: "2025-07-31"
document: "/invoices/2025/INV-2025-045.pdf"
Assets:AR:Clients:Acme-Co 1200.00 USD
Income:Sales -1200.00 USD

; Payment received
2025-07-25 * "Acme Co." "Payment INV-2025-045" ^INV-2025-045 #ar
Assets:Bank:Checking 1200.00 USD
Assets:AR:Clients:Acme-Co -1200.00 USD

保持 AR 健康的运营技巧

  • 设定明确条款:在每张发票上注明到期日、逾期费用政策以及提前付款折扣条款。
  • 全链路关联:使用统一的 ^INV-... link 将发票、付款、贷项等全部关联,形成清晰审计链。
  • 附加文档:利用 document: 元数据链接发票 PDF、采购订单、合同等文件。
  • 每月复盘:至少每月检查一次未收款报告,并跟进逾期发票。关注 AR 周转率和 DSO 趋势,及早发现问题。

延伸阅读(参考来源)

金融“待办事项”的演变

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

为何不起眼的预算会随着组织的成长演变为多币种资金管理

个人理财应用承诺七项核心功能:在一个地方查看所有财务状况、预算编制、跟踪收入与支出、偿还债务、为大额采购储蓄、与伴侣共同管理资金以及监控投资。这些需求在企业中也会重现——随着员工人数、监管机构和投资者的加入,这些需求还会成倍增长。

2025-06-01-comparison-of-personal-finance-to-business-finance

微型和小型企业(单创始人 → ±50名员工)

个人理财任务最接近的小企业对应项重要性
在一个地方查看所有财务状况实时现金流仪表板,整合银行、销售点和贷款数据60%的中小企业将现金流问题列为首要挑战([pymnts.com][1])
管理我的计划/预算滚动12个月的运营预算,附带差异警报防止超支并突出季节性
跟踪收入与支出自动化开票(应收账款)账单支付(应付账款)收款延迟是最大的现金流杀手([preferredcfo.com][2])
偿还债务优化信用卡浮动资金和营运资金额度利息侵蚀微薄利润
为大额采购储蓄资本支出规划 – 租赁与购买分析糟糕的设备交易可能导致运营资金短缺
与伴侣共同管理资金与联合创始人及会计师共享云端记账保留审计追踪,简化税务
跟踪我的投资区分所有者权益和留存收益明确个人与企业财富

小型企业特有的额外任务

  • 薪资与福利合规(准确、按时申报)。
  • 跨州或跨国的销售税/增值税征收与汇缴
  • 基本风险保障(责任险、网络险、关键人物保险)。

中低端市场公司(≈ 50 – 500名员工,通常为多实体)

  • 部门级预算加财务规划与分析(FP&A)的滚动预测。
  • 13周和12个月现金流预测,以保护契约条款空间([eventusag.com][3])。
  • 债务与股权投资组合管理(定期贷款、风险债务、股权稀释)。
  • 多实体合并——公司间抵销和实时外汇重估([picus-capital.medium.com][4])。
  • 内部控制与审计准备(职责分离,简化版萨班斯法案(SOX-lite))。
  • 供应商采购与合同生命周期监控。
  • 面向投资者和贷款方的关键绩效指标(KPI)仪表板(EBITDA、ARR、DSO、营运资金周转天数)。

大型企业与全球集团(500+名员工)

企业特有任务典型活动目的
全球资金与流动性管理内部银行、资金池、每日归集最小化闲置资金,削减银行费用
资本市场与套期保值债券发行、利率与外汇互换降低融资成本与波动性
监管与法定报告多GAAP结账,ESG/CSRD披露避免罚款,支持上市
税务策略与转让定价公司间协议,BEPS 2.0合规降低实际税率
网络欺诈预防支付审批层级,异常警报财务是主要的欺诈目标
并购整合/剥离会计首日账本切换,购买价格分摊(PPA)并购驱动增长
战略资本配置全球资本支出排名,最低回报率分析将资本部署到最高投资回报率项目

产品开发者的关键启示

  • 相同的直觉,更大的舞台——“展示所有信息”从Mint风格的仪表板发展为多账本合并和资金管理视图。
  • 现金在每个层级都至关重要——但工具从电子表格跃升为专用预测引擎。
  • 合规性膨胀——薪资、税务、审计和ESG仅出现在商业环境中,并主导企业工作量。
  • 利益相关者倍增——个人与伴侣协调;企业则需协调员工、供应商、银行家、投资者和监管机构。

了解客户在这条增长曲线上的位置,能帮助你优先开发那些能产生显著影响的功能——无论是为咖啡店老板提供即时现金流可见性,还是为跨国公司提供跨境流动性资金池。

使用 Beancount 制作和追踪发票

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

一个纯文本模板、一个可重复的工作流程和一个简单的查询,即可解答“还有谁欠我钱?”


2022-02-12-crafting-tracking-invoices-with-beancount

开票工作有时感觉像是一件苦差事,卡在你已完成的工作和你正在等待的付款之间。 但是,良好的开票流程是健康现金流的支柱。 它具有双重作用:清晰地告知你的客户他们欠款多少以及何时付款,并为你的会计系统提供其所需的可靠事实。

虽然专用的 SaaS 应用程序可以发送流畅的自动化 PDF 文件,但它们通常需要按月付费,并将你的数据锁定在专有孤岛中。 使用 Beancount 的轻量级纯文本方法提供了一个强大的替代方案。 你可以将每张发票转换为一组清晰的会计分录,从而获得版本控制、强大的元数据和即时查询的所有好处,而无需订阅。


最小可行发票(你永远不应该跳过的字段)

在接触你的账本之前,你需要一张专业的发票。 格式可以很简单,但内容必须精确。 这些借鉴久经考验的小企业实践的字段是不可协商的。

  • 卖方详细信息: 你的公司名称和实际地址。
  • 客户详细信息: 你的客户的名称和(理想情况下)他们的地址。
  • 发票编号: 一个唯一的、连续的 ID,永不重复使用。 INV-045 紧随 INV-044 之后。
  • 开票日期和到期日期: 清楚地说明发票的开具日期和预期付款日期。
  • 项目明细: 对服务或产品的清晰描述,以及数量、单价和项目总计。
  • 小计、税金和总计: 显示计算过程,以便客户可以轻松理解。
  • 可选注释: 用于感谢、汇款指示或客户提供的采购订单号。

为了帮助你入门,我们创建了一组可立即编辑的模板,其中包含所有这些字段。 电子表格版本甚至会为你预先计算总计。

Note: Invoice templates are coming soon! In the meantime, you can create your own using the fields listed above in Google Docs, Word, Sheets, Excel, or any other document format.


在你的账本中记录发票

将发票 PDF 发送给客户后,你必须将其记录在 Beancount 中。 这是一个至关重要的步骤,它在收入产生时确认收入,而不仅仅是在收到付款时。 该过程涉及两个不同的交易。

1. 开具发票时:

你创建一个交易,将总金额从你的 Income 账户转移到 Assets:AccountsReceivable。 这会在你的账簿中创建一个数字借据。

; 2025‑07‑21 发票 #045  为 Acme Corp. 进行的网页设计冲刺
2025-07-21 * "Acme Corp" "INV-045 网页设计冲刺"
Assets:AccountsReceivable 3500.00 USD ; due:2025-08-04
Income:Design:Web
invoice_id: "INV-045"
contact_email: "[email protected]"
link: "docs/invoices/2025-07-21_Acme_INV-045.pdf"

在这里,你借记 AccountsReceivable 并贷记你的 Income 账户。 请注意丰富的元数据:到期日期、唯一的 invoice_id,甚至直接指向你发送的 PDF 的 link:

2. 客户付款时:

当现金存入你的银行账户时,你记录第二个交易以“结清”借据。 这会将余额从 AccountsReceivable 转移到你的支票账户。

2025-08-01 * "Acme Corp" "INV-045 付款"
Assets:Bank:Checking 3500.00 USD
Assets:AccountsReceivable
invoice_id: "INV-045"

Assets:AccountsReceivableINV-045 的余额现在为零,你的账簿完全平衡。

附加 PDF: link: 元数据键与 Fava(Beancount 的 Web 界面)一起使用时尤其强大。 Fava 将直接在交易视图中呈现可点击的链接,因此只需点击一下即可访问源文档。 此工作流程早在 2016 年就在一项功能请求中设想 (GitHub)。


一个查询即可列出所有未结发票

那么,还有谁欠你钱? 使用此系统,你无需在电子邮件或电子表格中查找。 你只需要一个简单的查询。

将以下内容保存为名为 open-invoices.sql 的文件:

SELECT
meta('invoice_id') AS id,
payee,
narration,
date,
number(balance) AS outstanding
WHERE
account = "Assets:AccountsReceivable"
AND balance != 0
ORDER BY
date;

现在,从你的命令行运行它:

bean-query books.beancount open-invoices.sql

几秒钟内,你将获得一份清晰的、最新的所有未结发票的账龄报告,其中显示发票 ID、客户、开票日期和欠款金额。 无需额外的软件。


自动化繁琐的工作

纯文本的优点在于可编写脚本。 你可以自动化此工作流程中繁琐的部分。

  • 模板 + Pandoc = PDF: 以 Markdown 格式维护你的发票模板。 一个小型 Python 脚本可以填充变量(客户名称、项目明细、发票编号),命令行工具 Pandoc 可以立即将其转换为专业的 PDF。
  • Git 预提交钩子: 如果你将账本存储在 Git 中,一个简单的预提交钩子可以在你保存工作之前运行检查。 它可以验证每个新的 invoice_id 是否唯一,交易过账是否平衡为零,以及 link: 元数据中引用的文件是否实际存在。
  • Cron 作业: 设置计划任务(cron 作业)以每晚运行你的 open-invoices.sql 查询并通过电子邮件向你发送摘要。 你将每天开始工作时确切地知道谁需要友好的提醒。

现实的警告

Beancount 是一个会计工具,而不是开票服务。 它不会自动向你的客户发送付款提醒或处理他们的信用卡付款。 工作流程是:你使用你选择的方法(例如上面的模板)创建并发送发票,然后在你的账本中记录会计分录。

对于大多数自由职业者和小商店来说,这个手动步骤对于一个完全拥有和控制的、防弹的、可审计的免费会计系统来说是一个很小的代价 (beancount.io)。


后续步骤

准备好控制你的开票了吗? 以下是开始的方法。

  1. 下载模板并使用它创建你的下一个真实发票,确保使用连续的发票编号。
  2. 将你发送的 PDF存储在专用文件夹中,例如 docs/invoices/,并在你的 Beancount 交易中使用 link: 元数据键来引用它们。
  3. 保存 open-invoices.sql 查询并将其作为你每周财务审查的一部分运行。

纯文本会计并不意味着放弃完善或控制——它只是意味着数据库是可 grep 的。 使用简单的模板和上面的代码片段,你将更快地获得付款并且保持你的账簿整洁。