跳到主要内容

3 篇博文 含有标签「应收账款」

查看所有标签

了解应收账款(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 趋势,及早发现问题。

延伸阅读(参考来源)

在 Beancount 中管理应收账款

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

在个人理财管理的迷宫中,Beancount 作为纯文本记账的清晰度和精确度灯塔而出现。尤其在管理应收账款——即预期从他人处收到的款项——方面,Beancount 提供了一种结构化的方法,以使你的财务记录保持完美有序。本博客将引导你了解使用 Beancount 追踪应收账款、处理退款以及管理未解决交易的复杂性。无论你是退货、借出资金还是等待退款,本文都是你实现财务清晰的路线图。

理解 Beancount 中的应收账款:

2024-02-17-navigating-receivables-beancount-guide

应收账款代表他人欠你的款项。这可能来自多种情况,例如购物退货后等待退款,或者你借钱给某人。例如,假设你已将一条手表带退回给像 Amazon.com 这样的在线商店,并正在等待退款。在 Beancount 中,此交易记录为资金从你的信用卡负债转移到你的资产,作为应收账款:

2023-10-31 * "Amazon.com" "[Return] Watch Strap"
Liabilities:CreditCard:Chase -12.00 USD
Assets:Receivables

管理退款:

一旦退款处理完毕且你收到款项,就会记录另一笔交易以抵消应收账款中的余额。这确保你的账户反映资金已回到你手中:

2023-11-01 * "Amazon.com" "[Refund] Watch Strap"
Liabilities:CreditCard:Chase 12.00 USD
Assets:Receivables

完整的交易周期:

涉及应收账款的完整进出交易是结合上述两笔交易并展示如下,演示了退款后的平衡账户:

2023-10-31 * "Amazon.com" "[Return] Watch Strap"
Liabilities:CreditCard:Chase -12.00 USD
Assets:Receivables

2023-11-01 * "Amazon.com" "[Refund] Watch Strap"
Liabilities:CreditCard:Chase 12.00 USD
Assets:Receivables

处理未解决的交易:

对于尚未收到退款或还款的交易,Beancount 使用 #UNRESOLVED 标签。此标签有助于识别和追踪仍待处理的金额。例如:

2023-10-31 * "John Doe" "Lending Money" #UNRESOLVED
Liabilities:CreditCard:Chase -100.00 USD
Assets:Receivables

通过关注标记为 #UNRESOLVED 的交易,你可以快速确定哪些金额尚未结清。

保持零余额:

在一个正确的分类账中,资产:应收账款账户下所有交易的总和(不包括带有 #UNRESOLVED 标签的交易)理想情况下应归零。这确保所有预期资金都已入账,维护了你财务记录的完整性。

例如,一个有效的分类账可能如下所示,其中一笔未解决的交易清晰标记,等待结清:

2023-10-31 * "Amazon.com" "[Return] Watch Strap"
Liabilities:CreditCard:Chase -12.00 USD
Assets:Receivables

2023-11-01 * "Amazon.com" "[Refund] Watch Strap"
Liabilities:CreditCard:Chase 12.00 USD
Assets:Receivables

2023-10-31 * "John Doe" "Lending Money" #UNRESOLVED
Liabilities:CreditCard:Chase -100.00 USD
Assets:Receivables

无效的分类账是指某笔交易导致应收账款账户未能归零,因此需要 #UNRESOLVED 标签进行修正。

结论

在 Beancount 中管理应收账款不必令人生畏。通过清晰地了解如何记录交易、管理退款以及关注未解决的交易,你可以维护准确可靠的财务记录。采用 Beancount 结构化的应收账款管理方法,不仅简化了你的财务追踪,还带来了安心,因为你知道每一分钱都已入账。那么,何不利用 Beancount 的强大功能,让你的财务管理变得顺畅无阻呢?

理解 Beancount 中的应收账款和应付账款

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

大家好!在今天的博客文章中,我们将深入探讨 Beancount 的世界,这是一款因其简洁和强大而备受推崇的复式记账工具。更具体地说,我们将讨论两个关键概念:应收账款和应付账款。

理解这些术语对于有效使用 Beancount(或任何复式记账系统)至关重要。但如果你是初学者,请不要担心——我们将一步一步地为你详细解释!

应收账款和应付账款:基础知识

应收账款和应付账款

在会计中,“应收账款”和“应付账款”是用于追踪欠款的术语。“应收账款”指他人欠你的钱,而“应付账款”指你欠他人的钱。

让我们举个例子:

  1. 应收账款 (A/R):假设你拥有一家书店,一位顾客赊账购买了一本书。他们欠你购买这本书的钱就是一笔应收账款。

  2. 应付账款 (A/P):另一方面,想象一下你从出版商那里订购了一套新书,但没有预先支付。你欠出版商的钱就是一笔应付账款。

在 Beancount 中,这些通常通过相应的账户进行追踪。这里的主要好处是,它能让你在任何时间点清晰准确地了解自己的财务状况。

在 Beancount 中设置应收账款和应付账款

你的 Beancount 文件结构可以根据你的需要简单或复杂。对于应收账款和应付账款,你可能希望在你的资产 (Assets) 和负债 (Liabilities) 部分下创建单独的账户。

这是一个简单的例子:

1970-01-01 open Assets:AccountsReceivable
1970-01-01 open Liabilities:AccountsPayable

追踪交易

收款方

设置好账户后,你可以追踪涉及应收账款和应付账款的交易。让我们看一个例子:

2023-05-29 * "Sold books to customer on credit"
Assets:AccountsReceivable 100 USD
Income:BookSales -100 USD

在这里,你将 100 美元添加到你的应收账款中,因为客户欠你这笔钱。同时,你将收入减少相同的金额以保持平衡(因为你尚未实际收到这笔钱)。

当客户最终付款时,你将这样记录:

2023-06-01 * "Received payment from customer"
Assets:Bank:Savings 100 USD
Assets:AccountsReceivable -100 USD

付款方

同样的原则也适用于应付账款,但符号相反:

2023-05-30 * "Bought books from publisher on credit"
Liabilities:AccountsPayable 200 USD
Expenses:BookPurchases -200 USD

当你还清债务时:

2023-06-02 * "Paid off debt to publisher"
Liabilities:AccountsPayable -200 USD
Assets:Bank:Checking 200 USD

总结

应收账款和应付账款是任何会计系统的核心。通过准确追踪这些,你可以全面了解自己的财务状况。

这只是一个起点,Beancount 的功能远不止于此。我希望这篇博客文章能帮助你澄清这些重要概念。一如既往,祝你记账愉快!