Beancountで不動産取引をモデル化する
不動産取引は、家族の生涯における最大の金融活動になることがあります。本稿では、Beancountで不動産をどのようにモデル化するかを解説します。私は不動産を資産として扱い、住宅の評価益を未実現利益とします。さらに、住宅ローンは負債としてモデル化し、利息は費用として扱います。
例として、A氏が2020年1月1日にカリフォルニア州XYZ市123 ABC Street(郵便番号12345)にある高級住宅を100万ドルで購入したとします。金利は3.0%、頭金は20%、ローン金額は80万ドルです。
項目 | 金額 |
---|---|
住宅ローン金額 | 800,000 |
金利 | 3% |
住宅ローン期間 | 30 years |
住宅ローン総コスト | 1,478,219.62 |
月額支払額 | 4,106.17 |
住宅保険 | 1,300 per year (39,000 total) |
固定資産税 | 1,500 per year (7,500 total) |
ローン完済 | 2030-12-31 |
支払総利息 | 678,219.62 |
アカウント作成
まず、住宅を資 産として扱います。資産として登録するためには単位を設定する必要があります。この場合、単位数量は1のみで、複数所有する可能性は低く、たとえn番目の住宅であっても別個の資産として記録したいと考えます。つまり、1つの住宅は1つの資産に対応し、この資産は特別な単位を持ち、その価値は 1 であるとみなします。
2020-01-01 open Assets:Home
2020-01-01 open Liabilities:Mortgage
2020-01-01 open Equity:Opening-Balances
2020-01-01 open Expenses:Interest
2020-01-01 open Expenses:Insurance
2020-01-01 open Expenses:Tax
2020-01-01 open Income:Gain
2020-01-01 open Assets:Cash
2020-01-01 open Liabilities:Credit-Card
ここでは、最初の行で住宅を表す商品単位を定義しました。4 行目で資産アカウントを定義し、先に定義した住宅の商品単位を保持します。5 行目で貸し手銀行のアカウントを定義しました。これは負債であるため、Liabilities カテゴリに属します。
購入
上記のようにアカウントを設定した上で、住宅の購入は次のように表せます。
borrowing money (debt) + spending money (down payment) = 1 house in asset
住宅購入時に最も重要な参照資料は、買主決済明細書(Buyer's Settlement Statement)であり、資金の流れが明確に示されています。
2020-01-01 open Assets:Home
2020-01-01 open Liabilities:Mortgage
2020-01-01 open Equity:Opening-Balances
2020-01-01 open Expenses:Interest
2020-01-01 open Expenses:Insurance
2020-01-01 open Expenses:Tax
2020-01-01 open Income:Gain
2020-01-01 open Assets:Cash
2020-01-01 open Liabilities:Credit-Card
2020-01-01 * "Buy house" "A氏が住宅を購入"
Assets:Home 1 Home @ 1,000,000 USD
Liabilities:Mortgage -800,000 USD
Assets:Cash:Bank1 -200,000 USD
Expenses:Interest 0 USD
Expenses:Insurance 0 USD
Expenses:Tax 0 USD
ここでは、住宅購入の取引を詳細に記述しています。いくつかの銀行から資金が流出し(頭金やその他費用に使用)、ローンが借り入れられ(負債が増加)、住宅が取得され(資産が増加)します。
住宅ローン返済
上記の購入記録に基づくと、現在800,000 USD の負債があります。金利があるため、米国のローンは元本と利息が均等に償却されることを考慮すると、月々の支払額は利息分と元本分に分かれます。初期段階では利息の割合が大きくなります。
ローン返済を記録するには、ローン銀行の明細を確認するだけです。毎月返済する元本額と残りの利息額を把握すればよく、利息は費用として計上します。
2025-01-01 * "Pay mortgage"
Assets:Cash:Joint -4,106.17 USD
Liabilities:Mortgage 3,106.17 USD
Expenses:Interest 1,000.00 USD
このエントリは、共同貯蓄口座から差し引かれる月々の住宅ローン支払を詳細に示しています。元本の返済は負債を減少させ、利息部分は費用として扱われます。
評価益
不動産の評価益を記録したい場合、別のアカウントを作成し(現在の不動産の評価益のみを記録)、住宅の価値が上昇または下落する可能性があるため、評価益はマイナスになることもあります。この方法の利点は、総資産のサマリーに取引時点の住宅価値と現在の評価益の2つのアカウントが含まれ、住宅のリアルタイム価格を反映できることです。
私はこの方法を採用しませんでした。その主な理由は以下の通りです。
-
現在の住宅価値はあくまで推定であり、参考程度にしかならず実務的価値が低い。通常は Redfin や Zillow といったウェブサイトで評価額を取得しますが、参考価値は高くないと考えています。また、リアルタイムで総資産に評価益を組み込むことは検討していません。
-
個人的には、住宅ローンが完済されるまでキャッシュフローがマイナスであれば、ある程度は資産ではなく負債とみなすべきだと考えます。そのため、資産に早期に組み込むと資産が実際以上に膨らんだように見え、評価益が錯覚を生むため、これを避けたいです。
私が不動産の評価益を記録する方法は、後述する RSU のモデル化でも使用します。この方法は仮想通貨単位を利用することです。基軸通貨が USD であると仮定し、USD.UNVEST(新たに Commodity を作成する必要はないようです)を用いて、この資産が特別な通貨で計算されることを示します。この資産の増減は USD で記録されません。これにより、住宅の評価益を記録しつつ、最 終的な貸借対照表(Balance Sheet)には含めないという元々の目的を達成できます。
2025-01-01 price Assets:Home 1,400,000 USD.UNVEST
定期的に不動産の価格を USD.UNVEST で設定すればよいだけです。
したがって、Fava の Commodity ページでは住宅の基準価格の推移を追跡できますが、Balance Sheet ページでは住宅の価格は取引時点の価格のままです。つまり、総資産は当時の頭金と、返済し続けている元本の合計です。この資産の最終的な変化は住宅を購入したときにのみ起こります。
売却
まだ不動産が売却されておらず、中間の諸費用も不明なため、これは仮想シナ リオです。
例えば、2025年1月1日に不動産の評価額が1,400,000ドルに上昇したとし、参考データは以下の通りです。
項目 | 金額 |
---|---|
残高 | 1,300,000 |
仲介手数料(6%) | 78,000 |
その他クロージング費用 | 2,000 |
A氏は不動産を売却することにし、最終的な売却価格は1,300,000ドルです。
2025-01-01 * "Sell house"
Assets:Home -1.0 Home @ 1,000,000 USD
Liabilities:Mortgage -800,000 USD
Assets:Cash:Bank1 200,000 USD
Expenses:Interest 100,000 USD
Income:Gain 0 USD
Assets:Cash:Bank2 1,300,000 USD
ここでは、5 年間のうち 2 年は自己居住と仮定し、評価益 500,000 ドルは課税対象外としています。数値は ランダムに算出しています。最終的に A 氏の口座に入る金額は 418,343.8 ドルで、そのうち 200,000 ドルは当時の頭金、約 100,000 ドルは支払った利息です。したがって、帳簿上の利益は約 100,000 ドルとなります。計算は公平ではなく、実際には A 氏は 5 年間の家賃を節約しており、住宅の維持費やリフォーム費用など他の支出もあることに留意してください。
これを貸借対照表に反映させるには、以下のように価格を設定します。
2025-01-01 price Assets:Home 1,400,000 USD.UNVEST