解构 Beancount 账本:企业会计案例研究
在今天的博客文章中,我们将深入剖析一个专为企业设计的 Beancount 账本,帮助您理解这种纯文本复式记账系统的复杂细节。
我们先从代码开始:
1970-01-01 open Assets:Bank:Mercury
1970-01-01 open Assets:Crypto
1970-01-01 open Equity:Bank:Chase
1970-01-01 open Income:Stripe
1970-01-01 open Income:Crypto:ETH
1970-01-01 open Expenses:COGS
1970-01-01 open Expenses:COGS:Contabo
1970-01-01 open Expenses:COGS:AmazonWebServices
1970-01-01 open Expenses:BusinessExpenses
1970-01-01 open Expenses:BusinessExpenses:ChatGPT
2023-05-14 * "CONTABO.COM" "Mercury Checking ••1234"
Expenses:COGS:Contabo 17.49 USD
Assets:Bank:Mercury -17.49 USD
2023-05-11 * "Amazon Web Services" "Mercury Checking ••1234"
Expenses:COGS:AmazonWebServices 14490.33 USD
Assets:Bank:Mercury -14490.33 USD
2023-03-01 * "STRIPE" "Mercury Checking ••1234"
Income:Stripe -21230.75 USD
Assets:Bank:Mercury 21230.75 USD
2023-05-18 * "customer_182734" "0x5190E84918FD67706A9DFDb337d5744dF4EE5f3f"
Assets:Crypto -19 ETH {1,856.20 USD}
Income:Crypto:ETH 19 ETH @@ 35267.8 USD
理解代码
-
开立账户:代码首先在 1970-01-01 开立了一系列账户。其中包括资产账户(
Assets:Bank:Mercury
和Assets:Crypto
)、权益账户(Equity:Bank:Chase
)、收入账户(Income:Stripe
和Income:Crypto:ETH
)以及费用账户(Expenses:COGS
、Expenses:COGS:AmazonWebServices
、Expenses:BusinessExpenses
和Expenses:BusinessExpenses:ChatGPT
)。 -
交易记录:接着,代码记录了 2023-03-01 至 2023-05-18 期间的一系列交易。
-
2023-05-14 的交易表示从
Mercury Checking ••1234
向CONTABO.COM
支付了 17.49 美元。这笔交易被记录为一项费用(Expenses:COGS:Contabo
),并相应地从Assets:Bank:Mercury
账户中扣除。 -
同样,2023-05-11 的交易表示从同一银行账户向
Amazon Web Services
支付了 14490.33 美元。这笔交易记录在Expenses:COGS:AmazonWebServices
下。 -
2023-03-01 的交易显示来自
STRIPE
的收入存入Mercury Checking ••1234
,总计 21230.75 美元。这笔交易被记录为收入(Income:Stripe
),并增加到银行账户(Assets:Bank:Mercury
)中。 -
2023-05-18 的最后一笔交易代表一笔涉及客户 19 ETH 的加密货币交易。这笔交易记录在
Assets:Crypto
和Income:Crypto:ETH
下。{1,856.20 USD}
显示了交易时 ETH 的价格,而@@ 35267.8 USD
则指明了这笔 19 ETH 交易的总价值。
-
在所有交易中,都遵循了复式记账原则,确保 资产 = 负债 + 权益
的等式始终成立。
总结
这个 Beancount 账本提供了一个直接而强大的财务交易追踪系统。正如最后一笔交易所示,Beancount 足够灵活,可以核算加密货币等非传统资产,这证明了它在我们日益数字化的金融环境中的实用性。
我们希望这次剖析能帮助您更好地理解 Beancount 的结构和功能,无论您是经验丰富的会计师还是尝试管理个人财务的初学者。敬请关注我们的下一篇博客文章,届时我们将深入探讨 Beancount 的高级操作。