在 Beancount 中建模房地产交易
· 阅读需 9 分钟
房地产交易可能构成一个家庭一生中最大的金融活动。本文解释了如何在 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 |
创建账户
首先,我们将房屋视为一项资产。由于房屋被列为资产,它需要被赋予一个单位。在这种情况下,单位数量只有一个,不太可能出现多个,即使是第 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
在这里,我们详细说明了购房交易,其中资金从某些银行流出(用于首付和其他费用),获得贷款(增加负债),并获得一套房屋(增加资产)。