跳到主要内容

2 篇博文 含有标签「资产管理」

查看所有标签

在 Beancount 中建模房地产交易

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

房地产交易可能构成一个家庭一生中最大的金融活动。本文解释了如何在 Beancount 中建模房地产。我将房地产视为一项资产,房屋的增值视为未实现收益。此外,抵押贷款被建模为负债,利息被视为费用。

假设 A 先生于 2020 年 1 月 1 日购买了一套位于 123 ABC Street, XYZ City, CA, 12345 的豪宅,价格为 100 万。利率为 3.0%,首付为 20%,贷款金额为 80 万。

项目金额
抵押贷款金额800,000
利率3%
抵押贷款期限30 年
抵押贷款总成本1,478,219.62
每月还款额4,106.17
房屋保险每年 1,300 (总计 39,000)
房产税每年 7,500 (总计 225,000)
贷款还清日期2049 年 12 月
已付总利息414,219.62

2023-06-09-房地产追踪

抵押贷款详情截图

创建账户

首先,我们将房屋视为一项资产。由于房屋被列为资产,它需要被赋予一个单位。在这种情况下,单位数量只有一个,不太可能出现多个,即使是第 N 套房屋,我们也会希望将其记录在单独的资产中。也就是说,一套房屋对应一项资产,并且这项资产有一个特殊的单位,其值只能是 1。

2019-12-31 commodity HOUSE.ABC
name: "123 ABC Street, XYZ City, CA, 12345"

2019-12-31 open Assets:Property:US:CA:123ABC HOUSE.ABC
2019-12-31 open Liabilities:Bank:US:SomeBank:Mortgage:Loan USD

在这里的第一行,我们定义了一个代表房屋的商品单位。在第四行,我们定义了一个资产账户,它持有之前定义为房屋的商品单位。在第五行,我们定义了一个贷款银行的账户。由于它是一项负债,因此属于负债类别。

购买

按照上述账户设置,购买房屋的行为等同于

借款(债务)+ 支出(首付)= 1 套房屋资产

购买房产时最重要的参考可能是买方结算声明,它清楚地列出了资金流向。

2020-01-01 * "Buying the house"
Assets:Property:US:CA:123ABC 1 HOUSE.ABC {1,000,000 USD}
Assets:Bank:US:SomeBankA -100,000 USD
Assets:Bank:US:SomeBankB -101,000 USD
Liabilities:Bank:US:SomeBank:Mortgage:Loan -800,000.00 USD
Expenses:Home:Insurance 1,000 USD
Expenses:Home:Mortgage:Loan:ClosingCost

在这里,我们详细说明了购房交易,其中资金从某些银行流出(用于首付和其他费用),获得贷款(增加负债),并获得一套房屋(增加资产)。

偿还抵押贷款

根据上述购买记录,我们目前欠款 80 万美元。由于利息的存在,并且考虑到美国所有贷款都是本金和利息均等摊销的,因此每月还款额包括一部分利息和一部分本金。在早期阶段,利息占大部分。

要记录贷款还款,您只需查看您的贷款银行对账单。您只需要知道每月偿还了多少本金,其余部分就是利息。利息被计为费用。

2020-02-01 * "Mortgage payment"
Assets:Bank:US:SomeBank:Saving:Joint -3,372.83 USD
Liabilities:Bank:US:SomeBank:Mortgage:Loan 1,376.26 USD
Expenses:Home:Mortgage:Loan:Interest

此分录详细说明了每月抵押贷款还款,该款项从您的联名储蓄账户中扣除。本金的偿还减少了负债,而利息部分则被视为费用。

增值

如果您想记录房产的增值,有些人会创建一个单独的账户,只记录当前房产的增值。考虑到房屋的价值可能会增加或减少,这种增值也可能是负的。这样做的好处是,在您的总资产汇总中,这两个账户都会被包含在内,一个用于记录交易时的房屋价值,另一个用于记录房屋当前的增值,从而反映房屋的实时价格。

我没有采用这种方法,主要原因如下:

  1. 房屋的当前价值只能是一个估算值,仅供参考,没有实际价值。通常,我只能在 Redfin 或 Zillow 等网站上获得房产估值,我个人认为其参考价值不高。我也没有考虑将这些增值实时纳入总资产。
  2. 我个人认为,在抵押贷款还清之前,如果房屋的现金流为负,某种程度上,该房产仍然是一项负债。因此,过早地将其纳入资产会给您一种资产丰富和增值的错觉,我个人希望避免这种错觉。

我用来记录房产增值的方法,稍后也将讨论如何建模 RSU。这种方法是使用一个虚拟货币单位。假设您的基础货币是美元,我们可以使用 USD.UNVEST(似乎没有必要为此创建一个新的商品)来表示该资产以特殊货币计算。该资产的增长或减少将不会以美元记录。通过这种方式,我可以实现我的最初目标,即记录房屋的增值,并且这种增值不会包含在最终的资产负债表(Balance Sheet)中。

2020-01-01 price HOUSE.ABC                          1,000,000 USD
2025-01-01 price HOUSE.ABC 1,400,000 USD.UNVEST

您只需要定期将您的房产定价为 USD.UNVEST。

因此,在 Fava 的商品页面上,您可以追踪房屋参考价格的趋势。但在资产负债表页面上,房屋的价格仍然是交易时的房屋价格。也就是说,您的总资产仍然是您当时的首付款,加上您不断偿还的本金。这项资产的最终变动只应发生在您购买房屋时。

房产价格图表截图

出售

由于尚未出售任何房产,且中间的各种杂费不明确,这是一个假设情景。

假设,在 2025 年 1 月 1 日,房产已增值至 1,400,000 美元,一些参考数据如下:

项目金额
余额709,656.20
代理费 (6%)72,000
其他过户费10,000

A 先生决定出售该房产,最终房屋售价为 1,300,000 美元。

2025-01-01 * "Selling the house"
Assets:Property:US:CA:123ABC -1 HOUSE.ABC {1,300,000 USD}
Liabilities:Bank:US:SomeBank:Mortgage:Loan 709,656.20 USD
Expenses:Home:Agent:Fee 72,000 USD
Expenses:Home:ClosingCost 10,000 USD
Expenses:Home:Tax 90,000 USD
Assets:Bank:US:SomeBankA

这里假设 5 年中有 2 年是自住的,因此 50 万的增值无需纳税。我在这里随机计算了一个数字。最终,进入 A 先生账户的资金是 418,343.8 美元,其中 20 万是当时的首付款,大约 10 万是已支付的利息。因此,最终 A 先生的账面利润约为 10 万。值得注意的是,我的计算不尽公平,毕竟 A 先生在这 5 年中节省了租金,而且房屋可能还有其他开销,例如维护、装修等。

为了在资产负债表中反映这一点,您可以添加此定价。

2025-01-01 price HOUSE.ABC                          1,300,000 USD

Beancount.io 简介

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

现代簿记为何重要

您还在用电子表格管理投资吗?虽然电子表格功能多样,但随着投资组合的增长,它们可能会变得笨重且容易出错。Beancount.io 应运而生——一个专为管理股票和加密货币投资组合而设计,既复杂又用户友好的投资追踪平台。Beancount.io 专为工程师和财务极简主义者打造,将强大的功能与直观的界面相结合,以简化您的投资追踪体验。

2019-09-07-introduction-to-beancount

Expenses

Income Statement

Balance Sheet

复式记账:准确性的基石

Beancount.io 建立在复式记账的原则之上——这是一种全球金融机构都在使用的久经考验的方法。该系统通过一个简单而强大的概念确保数学准确性:每笔财务交易都必须完美平衡。

在复式记账中,每笔交易至少需要两个分录——一个借方 (+) 和一个贷方 (-)——涉及不同的账户。这种内置的验证系统使得记录不平衡的交易几乎不可能,从而确保您的财务记录保持准确和可靠。

1970-01-01 open Income:BeancountCorp
1970-01-01 open Assets:Cash
1970-01-01 open Expenses:Food
1970-01-01 open Assets:Receivables:Alice
1970-01-01 open Assets:Receivables:Bob
1970-01-01 open Assets:Receivables:Charlie
1970-01-01 open Liabilities:CreditCard

2019-05-31 * "BeancountCorp" "Salary of May 15th to May 31st"
Income:BeancountCorp -888 USD
Assets:Cash 888 USD

2019-07-12 * "Popeyes chicken sandwiches" "dinner with Alice, Bob, and Charlie"
Expenses:Food 20 USD
Assets:Receivables:Alice 20 USD
Assets:Receivables:Bob 20 USD
Assets:Receivables:Charlie 20 USD
Liabilities:CreditCard -80 USD

如您在上面两个示例中所见,每笔交易都必须满足会计等式。

资产 = 负债 + 权益(即净资产)

我们使用 Martin Blais 的 Beancount 语法和 Jakob Schnitzer 的 Fava 网络项目来构建本网站。如果任何交易的分录总和不为零,它将向您发出警报。

Error Alert

现在您了解了我们如何强制执行账本的正确性。但您可能会问,这些“账户”是什么?

理解账户:水桶类比

将您的财务账户想象成一个相互连接的水桶系统,金钱像水一样在其中流动。这个类比使得复式记账变得直观:当您将资金从一个账户转移到另一个账户时,就像将水从一个水桶倒入另一个水桶一样——系统中水的总量(金钱)保持不变。

Beancount.io 引入了五种账户。

  1. 收入 — 其金额始终为负或在借方。这是因为您正在赚钱,然后资金从“收入”账户借记并贷记到您的“资产”账户。
  2. 支出 — 其金额始终为正或在贷方。这是因为您正在花钱,资金从“资产”或“负债”流向“支出”账户。
  3. 负债 — 其金额为正或为零。您的信用卡负债就是一个很好的例子,它会周期性地增减。
  4. 资产 — 其金额为正或为零。您的现金或房屋总是具有一定的价值。
  5. 权益 — 您的净资产。系统将自动为您计算。权益 = 资产 - 负债,它反映了您的财富状况。

现在您可以使用上述关键词打开您的自定义账户:

1970-01-01 open Assets:Cash
1970-01-01 open Assets:Stock:Robinhood
1970-01-01 open Assets:Crypto:Coinbase
1970-01-01 open Expenses:Transportation:Taxi
1970-01-01 open Equity:OpeningBalance

使用商品进行高级投资追踪

Beancount.io 擅长追踪多样化的投资,从股票到加密货币。让我们探讨它如何处理复杂的投资场景。例如,以下是您在 2014 年以每枚 100 美元的价格购买 10 枚比特币的记录方式:

2014-08-08 * "Buy 10 Bitcoin"
Assets:Trade:Cash -1000.00 USD
Assets:Trade:Positions 10 BTC {100.00 USD}

三年后,您以每枚 10,000 美元的价格出售它们(原始成本为每枚 100 美元,用 {100.00 USD} 标注),价格用 @ 10,000.00 USD 标注。

2017-12-12 * "Sell 2 Bitcoin"
Assets:Trade:Positions -2 BTC {100.00 USD} @ 10,000.00 USD
Assets:Trade:Cash 20,000.00 USD
Income:Trade:PnL -19,800.00 USD

或者相同的交易使用 @@ 20,000.00 USD,表示总价为 20,000 美元

2017-12-12 * "Sell 2 Bitcoin"
Assets:Trade:Positions -2 BTC {100.00 USD} @@ 20,000.00 USD
Assets:Trade:Cash 20,000.00 USD
Income:Trade:PnL -19,800.00 USD

交易所有分录的总和,包括 -2 BTC {100.00 USD},仍然和往常一样为零。

成本标签 {100.00 USD} 很重要,因为您可能以不同的成本购买了相同的商品。

100 BTC {10.00 USD, 2012-08-08}
10 BTC {100.00 USD, 2014-08-08}

如果您想简化流程,可以在开始时将账户设置为 FIFO 或 LIFO。FIFO 代表先进先出,而 LIFO 代表后进先出。在美国,美国国税局 (IRS) 使用 FIFO 来计算您的损益和相应税款。

1970-01-01 open Assets:Trade:Positions "FIFO"

然后当您以 -2 BTC {} 这样的简写形式出售时,Beancount 将自动应用 FIFO 策略并出售最旧的商品。

开始使用 Beancount.io

Beancount.io 是一个现代化的云端财务管理平台,它将您的文本交易记录转换为全面的财务报表,包括利润表、资产负债表和试算平衡表。通过将纯文本文件的可靠性与强大的可视化工具相结合,Beancount.io 帮助您精确控制财务生活,同时获得有关投资绩效的宝贵见解。

立即开始您的 Beancount.io 财务之旅——促销期间免费!