メインコンテンツまでスキップ

「資産管理」タグの記事が2件件あります

全てのタグを見る

Beancountで不動産取引をモデル化する

· 約8分
Mike Thrift
Mike Thrift
Marketing Manager

不動産取引は、家族の生涯における最大の金融活動になることがあります。本稿では、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

2023-06-09-不動産追跡 住宅ローン詳細スクリーンショット

アカウント作成

まず、住宅を資産として扱います。資産として登録するためには単位を設定する必要があります。この場合、単位数量は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つのアカウントが含まれ、住宅のリアルタイム価格を反映できることです。

私はこの方法を採用しませんでした。その主な理由は以下の通りです。

  1. 現在の住宅価値はあくまで推定であり、参考程度にしかならず実務的価値が低い。通常は Redfin や Zillow といったウェブサイトで評価額を取得しますが、参考価値は高くないと考えています。また、リアルタイムで総資産に評価益を組み込むことは検討していません。

  2. 個人的には、住宅ローンが完済されるまでキャッシュフローがマイナスであれば、ある程度は資産ではなく負債とみなすべきだと考えます。そのため、資産に早期に組み込むと資産が実際以上に膨らんだように見え、評価益が錯覚を生むため、これを避けたいです。

私が不動産の評価益を記録する方法は、後述する 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

Beancount.io の紹介

· 約6分
Mike Thrift
Mike Thrift
Marketing Manager

現代の簿記が重要な理由

まだスプレッドシートで投資を管理していますか?スプレッドシートは汎用性がありますが、投資ポートフォリオが拡大するにつれて扱いにくくなり、ミスが起きやすくなります。そこで登場するのが Beancount.io です。エンジニアと金融ミニマリストを念頭に置いて設計された、株式や暗号通貨ポートフォリオの管理に特化した洗練されたが使いやすい投資トラッキングプラットフォームです。強力な機能と直感的なインターフェースを組み合わせ、投資トラッキング体験を効率化します。

2019-09-07-introduction-to-beancount

支出

損益計算書

貸借対照表

複式簿記:正確性の基盤

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

上記二つの例から分かるように、すべての取引は会計等式を満たす必要があります。

Assets = Liabilities + Equity(aka Net Assets)

Beancount の構文(Martin Blais)と、Jakob Schnitzer が開発した Web プロジェクト Fava を使用してこのサイトを構築しています。取引のいずれかの足がゼロに合計されていない場合は、即座に警告が表示されます。

エラーアラート

これで台帳の正確性をどのように保証しているかが分かりますね。では「勘定科目」とは何でしょうか?

勘定科目の理解:水バケツのたとえ

財務勘定科目を相互に接続された水バケツのシステムと考えてみてください。お金はバケツ間を水のように流れます。このたとえにより、複式簿記が直感的に理解できます:ある勘定科目から別の勘定科目へ資金を移すことは、バケツからバケツへ水を注ぐことと同じで、システム全体の水量(資金)は一定のままです。

Beancount.io では以下の5種類の勘定科目が用意されています。

  1. Income — 金額は常に負(借方)です。収入が発生すると「Income」勘定が借方に記録され、資産勘定にクレジットされます。
  2. Expenses — 金額は常に正(貸方)です。支出が発生すると資産または負債から「Expenses」勘定へ資金が流れます。
  3. Liabilities — 金額は正またはゼロです。クレジットカードの残高など、増減がサイクルする負債が該当します。
  4. Assets — 金額は正またはゼロです。現金や不動産など、所有する資産の価値がここに記録されます。
  5. Equity — 純資産です。システムが自動的に計算します。Equity = Assets - Liabilities で、あなたの富の程度を表します。

上記キーワードでカスタマイズした勘定科目を開設できます。

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 年に 1 ビットコイン 100 USD で 10 ビットコインを購入した場合は次のように記録します。

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

そして 3 年後にそれらを 1 ビットコインあたり 10,000 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 USD の価格で売却したことを意味します。

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 で金融の旅を始めましょう ― プロモーション期間中は無料!