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

「Accounting」タグの記事が89件件あります

全てのタグを見る

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 における売掛金と買掛金の理解

· 約4分
Mike Thrift
Mike Thrift
Marketing Manager

皆さん、こんにちは!本日のブログでは、シンプルさとパワフルさで多くの人に愛されている複式簿記ツール Beancount の世界に迫ります。特に、重要な概念である 売掛金買掛金 の2つについて解説します。

これらの用語を正しく理解することは、Beancount(あるいは任意の複式簿記システム)を効果的に使う上で不可欠です。初心者の方でも安心してください。一つずつ丁寧に説明していきます。

売掛金と買掛金:基本

2023-05-30-receiveable-and-payable

会計において 「売掛金」「買掛金」 は、金銭の債権・債務を管理するための用語です。

  • 売掛金 は、他者が自分に対して支払うべき金額(受取債権)を指します。
  • 買掛金 は、自分が他者に対して支払うべき金額(支払債務)を指します。

例を見てみましょう。

  1. 売掛金(Accounts Receivable, A/R):書店を経営していて、顧客がクレジットで本を購入したとします。その本代金は顧客から受け取るべき「売掛金」になります。
  2. 買掛金(Accounts Payable, A/P):逆に、出版社から新刊を仕入れたが、まだ支払っていない場合、その未払金は「買掛金」になります。

Beancount では、これらは対応する勘定科目で管理されます。これにより、任意の時点で自分の財務状況を正確に把握できるのです。

Beancount で売掛金・買掛金を設定する

Beancount ファイルの構造は、シンプルでも複雑でも自由に設計できます。売掛金と買掛金を管理するには、資産(Assets)負債(Liabilities) の下にそれぞれ専用の勘定科目を作成すると良いでしょう。

1970-01-01 open Assets:AccountsReceivable
1970-01-01 open Liabilities:AccountsPayable

取引の記録

売掛金側(受取側)

勘定科目を作成したら、売掛金・買掛金に関わる取引を記録します。例を見てみましょう。

2023-05-29 * "Sold books to customer on credit"
Assets:AccountsReceivable 100 USD
Income:BookSales -100 USD

この取引では、顧客が 100 USD をクレジットで購入したため、売掛金 が 100 USD 増加し、同時に 売上 が -100 USD(収益の減少)として記録されます。実際に現金が入ってきていないので、バランスが保たれます。

顧客が支払ったときは次のように記録します。

2023-06-01 * "Received payment from customer"
Assets:Bank:Savings 100 USD
Assets:AccountsReceivable -100 USD

ここでは、銀行口座 に 100 USD が増え、売掛金 が同額減少します。

買掛金側(支払側)

買掛金も同様の原理ですが、符号が逆になります。

2023-05-30 * "Bought books from publisher on credit"
Liabilities:AccountsPayable 200 USD
Expenses:BookPurchases -200 USD

出版社からクレジットで本を仕入れたため、買掛金 が 200 USD 増加し、同時に 経費 が -200 USD として記録されます。

支払いが完了したら次のように記録します。

2023-06-02 * "Paid off debt to publisher"
Liabilities:AccountsPayable -200 USD
Assets:Bank:Checking 200 USD

まとめ

売掛金と買掛金は、あらゆる会計システムの核となる要素です。正確に追跡することで、財務状態を包括的に把握できます。

ここで紹介したのは出発点に過ぎません。Beancount はさらに高度な機能も備えています。本記事が概念の理解に役立ち、実務での活用の第一歩となれば幸いです。
それでは、楽しい会計ライフを!

Beancount元帳の分解: ビジネス会計のケーススタディ

· 約3分
Mike Thrift
Mike Thrift
Marketing Manager

本日のブログ記事では、ビジネス向けのBeancount元帳を分解し、このプレーンテキストの複式簿記システムの複雑さを理解できるようにします。

Beancount元帳の分解: ビジネス会計のケーススタディ

まずはコードから見ていきましょう:

2023-05-22-business-template

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

コードの理解

  1. 口座のオープン: コードは1970-01-01に一連の口座をオープンすることから始まります。これには資産口座(Assets:Bank:MercuryAssets:Crypto)、資本口座(Equity:Bank:Chase)、収益口座(Income:StripeIncome:Crypto:ETH)、および費用口座(Expenses:COGSExpenses:COGS:AmazonWebServicesExpenses:BusinessExpensesExpenses:BusinessExpenses:ChatGPT)が含まれます。

  2. 取引: 次に、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:CryptoIncome:Crypto:ETH に記録されます。{1,856.20 USD} は取引時点の ETH の価格を示し、@@ 35267.8 USD は 19 ETH の取引総額を示しています。

すべての取引において、複式簿記の原則が維持されており、Assets = Liabilities + Equity の等式が常に成立することが保証されています。

最後に

この Beancount 元帳は、財務取引を追跡するためのシンプルでありながら堅牢なシステムを提供します。最後の取引で見られるように、Beancount は暗号通貨のような非伝統的資産も扱える柔軟性を持ち、デジタル化が進む金融環境における有用性を示しています。

この分解が、ベテランの会計士であれ、個人の財務管理を始めたばかりの初心者であれ、Beancount の構造と機能をより深く理解する手助けとなれば幸いです。次回のブログ記事では、さらに高度な Beancount の操作について掘り下げていきますので、お楽しみに。

新規顧客向け無料プランの再導入

· 約2分
Mike Thrift
Mike Thrift
Marketing Manager

2023年5月1日から、新規顧客向けに無料プランを再導入することをお知らせできることを大変嬉しく思います。この決定は、プラットフォームに大幅な改善を加え、リソースを最適化した結果、無料ユーザーと有料ユーザーの両方により良いサービスを提供できるようになったことによるものです。

新規顧客向け新しい無料プランの紹介

無料プランは、誰もがアクセスしやすく使いやすいサービスを提供するという私たちのビジョンの重要な要素であり続けてきました。過去数か月で行った変更により、ユーザーにさらに優れた体験を提供すると同時に、Proプランのお客様に対してもサービス品質を維持できると確信しています。

2023-04-28-無料ユーザー提供開始

2023年5月1日以降に登録された新規顧客は、無料プランをご利用いただけます。

皆様のサポートとご忠誠が、この無料プランの再導入を財政的に可能にしました。 皆様のご支援のおかげで、インフラやサポート体制への投資が可能となり、期待される高品質なサービスを継続して提供すると同時に、新規ユーザーへのプラットフォームアクセスを拡大できています。ビジョンへのご献身が私たちの成長と進化を支えてくださり、継続的なパートナーシップに心から感謝いたします。共に、活気あるコミュニティを築き、あらゆるバックグラウンドのユーザーが目標を達成できるよう支援しています。

ご質問やご不明点がございましたら、遠慮なくお問い合わせください。皆様のフィードバックに耳を傾け、問題に対処するために常にスタンバイしています。引き続きご支援いただきありがとうございます。今後とも最高のサービスをご提供できるよう努めてまいります。

Beancount チートシート

· 約2分
Mike Thrift
Mike Thrift
Marketing Manager

例の勘定名

Assets:US:BofA:Checking

cheatsheet-en

勘定タイプ

Assets          +
Liabilities -
Income -
Expenses +
Equity -

商品

CNY, EUR, CAD, AUD
GOOG, AAPL, RBF1005
HOME_MAYST, AIRMILES
HOURS

ディレクティブ

一般構文

YYYY-MM-DD <Directive> <Parameters...>

勘定の開設と閉鎖

2001-05-29 open Expenses:Restaurant
2001-05-29 open Assets:Checking USD,EUR ; Currency constraints

2015-04-23 close Assets:Checking

商品の宣言(オプション)

1998-07-22 commodity AAPL
name: "Apple Computer Inc."

価格

2015-04-30 price AAPL   125.15 CNY
2015-05-30 price AAPL 130.28 CNY

メモ

2013-03-20 note Assets:Checking "Called to ask about rebate"

ドキュメント

2013-03-20 document Assets:Checking "path/to/statement.pdf"

取引

2015-05-30 * "Some narration about this transaction"
Liabilities:CreditCard -101.23 CNY
Expenses:Restaurant 101.23 CNY

2015-05-30 ! "Cable Co" "Phone Bill" #tag ˆlink
id: "TW378743437" ; Meta-data
Expenses:Home:Phone 87.45 CNY
Assets:Checking ; You may leave one amount out

ポスティング

  ...    123.45 USD                             Simple
... 10 GOOG {502.12 USD} With per-unit cost
... 10 GOOG {{5021.20 USD}} With total cost
... 10 GOOG {502.12 # 9.95 USD} With both costs
... 1000.00 USD @ 1.10 CAD With per-unit price
... 10 GOOG {502.12 USD} @ 1.10 CAD With cost & price
... 10 GOOG {502.12 USD, 2014-05-12} With date
! ... 123.45 USD ... With flag

残高アサーションとパディング

; Asserts the amount for only the given currency:
2015-06-01 balance Liabilities:CreditCard -634.30 CNY

; Automatic insertion of transaction to fulfill the following assertion:
2015-06-01pad Assets:Checking Equity:Opening-Balances

イベント

2015-06-01 event "location" "New York, USA"
2015-06-30 event "address" "123 May Street"

オプション

option "title" "My Personal Ledger"

その他

pushtag #trip-to-peru
...
poptag #trip-to-peru
; Comments begin with a semi-colon

Beancountで実現するプレーンテキスト会計の魔法

· 約6分
Mike Thrift
Mike Thrift
Marketing Manager

Discover the Magic of Plain Text Accounting with Beancount

Beancountで実現するプレーンテキスト会計の魔法を発見しよう

Beancount.io バナー

はじめに

2023-04-18-introduction-to-beancount

会計がもはや困難な作業でなくなる世界へようこそ。今回は、強力で柔軟、かつ直感的なプレーンテキスト会計ツール Beancount をご紹介します。Beancount は、財務を透明でシンプルに管理できるアプローチを提供し、あなたが資金をコントロールできるよう支援します。

本ガイドでは、Beancount の基本を解説し、コアコンセプトを説明し、シンプルでありながら強力な機能をご案内します。この記事を読み終える頃には、Beancount の全体像が把握でき、財務生活を整理・分析する準備が整っているはずです。

Beancount とは?

Beancount は、Martin Blais が作成したオープンソースのプレーンテキスト会計システムです。John Wiegley の Ledger システムに触発され、個人や小規模事業の財務をプレーンテキストファイルで管理できる堅牢で信頼性の高い手法を提供します。Beancount を使えば、収入・支出・投資などを簡単に追跡できます。

なぜ Beancount なのか?

プレーンテキスト会計は、従来のスプレッドシートや専用ソフトに比べて以下のような利点があります。

  • 透明性:Beancount のファイルは人間が読める形式なので、財務データの理解や監査が容易です。
  • 柔軟性:好きなテキストエディタやバージョン管理システムを使って、ニーズに合わせて自由にカスタマイズできます。
  • ポータビリティ:デバイスを問わずアクセス可能で、システム間の移行や他者との共有も簡単です。
  • 将来性:プレーンテキストは普遍的に互換性があるため、技術が変化してもデータは残ります。

Beancount のコアコンセプト

Beancount を効果的に使うには、以下の概念を理解することが重要です。

  • 取引 (Transactions):収入、支出、口座間の振替など、財務イベントはすべて取引として記録されます。
  • 勘定科目 (Accounts):取引は資産、負債、収益、費用などの勘定科目に紐づきます。
  • 複式簿記 (Double‑entry bookkeeping):Beancount は複式簿記を強制し、すべての取引が借方と貸方でバランスします。
  • ディレクティブ (Directives):取引の定義や勘定科目のオープンなど、さまざまな財務イベントを指示するための構文です。

Beancount の始め方

以下の手順で Beancount を使い始めましょう。

  • Beancount をインストール:お使いの OS 向けインストール手順に従ってインストールします。
  • Beancount ファイルを作成:拡張子 .beancount のテキストファイルを作ります(例:my_finances.beancount)。
  • 勘定科目を定義open ディレクティブで取引に使用する勘定科目を作成します。
  • 取引を記録txn ディレクティブで財務取引を記録します。

あるいは https://beancount.io にサインアップしてください。以下はプレーンテキスト会計の例です。

例 1:基本的な取引

2023-04-01 open Assets:Checking
2023-04-01 open Expenses:Groceries

2023-04-10 txn "Grocery Store" "Buying groceries"
Assets:Checking -50.00 USD
Expenses:Groceries 50.00 USD

この例では、Assets:CheckingExpenses:Groceries の 2 つの勘定科目をオープンしています。2023 年 4 月 10 日に、食料品購入($50)を取引として記録し、Assets:Checking が $50 減少(借方)し、Expenses:Groceries が $50 増加(貸方)します。

例 2:収入と支出の取引

2023-04-01 open Assets:Checking
2023-04-01 open Income:Salary
2023-04-01 open Expenses:Rent

2023-04-05 txn "Employer" "Salary payment"
Assets:Checking 2000.00 USD
Income:Salary -2000.00 USD

2023-04-06 txn "Landlord" "Monthly rent payment"
Assets:Checking -1000.00 USD
Expenses:Rent 1000.00 USD

この例では、Assets:CheckingIncome:SalaryExpenses:Rent の 3 つの勘定科目をオープンしています。4 月 5 日に給与 $2,000 を記録し、Assets:Checking が $2,000 増加(貸方)し、Income:Salary が $2,000 減少(借方)します。4 月 6 日に家賃 $1,000 を支払い、Assets:Checking が $1,000 減少(借方)し、Expenses:Rent が $1,000 増加(貸方)します。

例 3:口座間の振替

2023-04-01 open Assets:Checking
2023-04-01 open Assets:Savings

2023-04-15 txn "Bank" "Transfer from Checking to Savings"
Assets:Checking -500.00 USD
Assets:Savings 500.00 USD

この例では、Assets:CheckingAssets:Savings の 2 つの勘定科目をオープンしています。4 月 15 日に、チェック口座から貯蓄口座へ $500 を振替える取引を記録し、Assets:Checking が $500 減少(借方)し、Assets:Savings が $500 増加(貸方)します。

これらの例は、Beancount の複式簿記システムの基本概念を示しています。取引を正しく記録することで、財務活動の正確な記録を保ち、レポートを生成して財務状況を把握できます。

レポートの生成とデータ分析

Beancount には、バランスシートや損益計算書などの財務レポートを生成する強力なツールが同梱されています。また、Web ベースの UI である Fava を使えば、財務データを視覚化・操作できます。https://beancount.io は MIT ライセンスの下、Fava をベースに構築されています。

結論

Beancount でプレーンテキスト会計の力とシンプルさを体感してください。コアコンセプトを理解し、本ガイドの手順に従えば、個人や小規模事業の財務管理を容易かつ正確に行えるようになります。Beancount に慣れたら、さらに高度な機能やカスタマイズを探求し、独自のニーズに合わせたシステムを構築できます。

支出の追跡、将来の計画、財務習慣の洞察など、何を目指すにせよ、Beancount は柔軟性と透明性を提供し、目標達成をサポートします。その使いやすさから、Beancount は財務管理の在り方を変革し、あなたが財務の未来をコントロールできるようになるでしょう。

さあ、プレーンテキスト会計の旅に出発しましょう。煩雑なスプレッドシートや複雑なソフトウェアにさようならを告げ、Beancount の世界へようこそ。楽しい会計ライフを!

カスタムリンクとクエリでBeancount体験を向上させる

· 約4分
Mike Thrift
Mike Thrift
Marketing Manager

Beancount は、開発者やファイナンス好きに愛される二重仕訳会計システムで、シンプルさが魅力です。しかし、Fava(Beancount のウェブインターフェース)で、より細かい制御や高速なナビゲーションを求めるユーザーには、カスタムサイドバーリンクと SQL クエリがワークフローを次のレベルへ引き上げます。

このガイドでは、以下を実現する方法を紹介します。

  • Fava のサイドバーにクイックアクセスリンクを追加する
  • 高度なフィルタリングと分析のために SQL クエリを使用する
  • 月次レビューや異常検知のためにワークフローをカスタマイズする

なぜ Fava をカスタマイズするのか?

Fava はすでに美しい Ledger 表示インターフェースですが、ジャーナルが大きくなるにつれて、ショートカットやスマートクエリの必要性も高まります。

解決できる課題

  • 時間範囲を何度も手動で指定する手間
  • ネストされた勘定科目を横断する取引のフィルタリング
  • マイナス残高や異常を迅速に検出したい

✨ カスタムサイドバーリンク

まずは、シンプルなサイドバーショートカットで日々の作業を改善しましょう。これらのリンクは Fava の左サイドバーに表示され、今月の取引や先月の収入といったフィルタビューへ直接ジャンプできます。

Beancount ファイルに以下の行を追加します。

2021-01-01 custom "fava-sidebar-link" "Current Month" "/jump?time=month"
2021-01-01 custom "fava-sidebar-link" "Last Month" "/jump?time=month-1"
2021-01-01 custom "fava-sidebar-link" "Clear All" "/jump?account=&time=&filter="

動作概要

  • Current Month:現在の月にフィルタされた取引ビューを開く
  • Last Month:前月に即座にジャンプ(月末レビューに最適)
  • Clear All:フィルタをリセットし、全エントリを再表示

これらのショートカットにより、手動で時間を入力する手間が省け、Fava の操作感がより流動的かつパーソナライズされます。

🔍 カスタム SQL クエリ

さらに深い洞察が必要な場合は、Fava の SQL インターフェースが非常に強力です。以下は、特定パターンにマッチする勘定科目の マイナス残高 をすべて抽出するクエリ例です。異常取引のフラグ付けに最適です。

SELECT account, units(sum(position)), sum(position)
WHERE number(units(position)) < 0
AND account '.*:BCM:.*'
AND date >= DATE(2021,12,9)
AND date < DATE(2022,1,9)

クエリの構成要素

  • account '.*:BCM:.*':名前に :BCM: を含む勘定科目をフィルタ
  • number(units(position)) < 0:マイナス残高(例:予算超過)を検出
  • 日付条件で 1 カ月間に絞り込み

活用例

  • 重複経費や誤った仕訳のエラー検出
  • 特定ベンダーやカテゴリの監査
  • 予算策定のための実用的インサイト抽出

🛠 プロのコツ:リンクとクエリを組み合わせる

Fava ではカスタムクエリへの直接リンクは作れませんが、以下の手順で月次レビュー習慣を構築できます。

  1. 「Current Month」リンクでレビューを開始
  2. 別ペインで保存済みクエリタブを開く
  3. まずフィルタを適用し、次にクエリで詳細分析

この組み合わせにより 異常を早期に捕捉 し、Ledger のクリーンさを維持 できます。

最後に

Beancount はミニマル設計ですが、こうした小さな拡張で効率は飛躍的に向上します。予算の見直し、奇妙な残高のデバッグ、クリック数の削減など、カスタムリンクと SQL クエリは「パワー」を増し「摩擦」を減らします。

ボーナス:もし Fava のカスタムレポート を利用しているなら、個人のファイナンス習慣に合わせたダッシュボードも構築可能です。

さあ、コントロールを手に入れましょう!

まずは小さく始めてみてください。 「Current Month」リンクを追加し、次に自分だけのクエリを作成。将来の自分が感謝するはずです。

もっとこうしたヒントが欲しいですか? ニュースレターに登録するか、Beancount.io で他のレシピを探索してください。

Beancount における将来取引の予測

· 約1分
Mike Thrift
Mike Thrift
Marketing Manager

Beancount には将来の定期取引を予測するプラグインがあります。beancount.io での適用方法は?以下の内容をあなたの元帳ファイルに貼り付けてください。

; import the plugin
plugin "fava.plugins.forecast"

; add a monthly HOA fee
2022-05-30 # "HOA fee [MONTHLY]"
Expenses:Hoa 1024.00 USD
Assets:Checking -1024.00 USD

予測プラグインのスクリーンショット

2022-05-30-予測プラグイン

すると、純利益チャートに予測が表示されます。

予測プラグイン

上記のタグ [MONTHLY] は永遠に繰り返すことを意味します。さらに条件を設定したい場合は、[MONTHLY UNTIL 2022-06-01][MONTHLY REPEAT 5 TIMES][YEARLY REPEAT 5 TIMES]、または [WEEKLY SKIP 1 TIME REPEAT 5 TIMES] を試してください。

Beancountで請求書の作成と追跡

· 約7分
Mike Thrift
Mike Thrift
Marketing Manager

プレーンテキストテンプレート、繰り返し可能なワークフロー、そして「まだ支払われていないのは誰?」という単一クエリ


2022-02-12-crafting-tracking-invoices-with-beancount

請求書作成は、完了した仕事と待っている支払いの間に挟まれた面倒な作業に感じられることがあります。しかし、優れた請求書プロセスは健全なキャッシュフローの根幹です。請求書は二重の役割を果たします。クライアントに何をいつ支払うべきかを明確に伝えると同時に、会計システムに必要な確固たる事実を提供します。

専用の SaaS アプリは洗練された自動 PDF を送信できますが、月額料金がかかり、データがプロプライエタリなサイロにロックされがちです。Beancount を使った軽量なプレーンテキストアプローチは、強力な代替手段を提供します。各請求書を明確な会計エントリのセットに変換でき、バージョン管理、豊富なメタデータ、即時クエリのすべての利点を享受できます—サブスクリプションは不要です。


最低限必要な請求書(絶対に省いてはいけない項目)

帳簿に手を付ける前に、プロフェッショナルな請求書が必要です。フォーマットはシンプルでも、内容は正確でなければなりません。長年の中小企業の実務から借用したこれらの項目は交渉の余地がありません。

  • 販売者情報: 事業者名と所在地。
  • 顧客情報: 顧客名と(可能であれば)住所。
  • 請求書番号: 再利用されない一意の連番 ID。INV-045INV-044 の次です。
  • 発行日・支払期日: 請求書の発行日と支払期日を明記。
  • 明細項目: サービスまたは製品の明確な説明、数量、単価、合計金額。
  • 小計・税金・合計: 計算式を示し、顧客が容易に追跡できるように。
  • 任意の備考: 感謝の言葉、振込指示、顧客が提供した発注書番号など。

開始にあたって、これらすべての項目を含む編集可能なテンプレートを用意しました。スプレッドシート版は合計金額を自動計算します。

注: 請求書テンプレートは近日公開予定です!それまでの間は、上記項目を使って Google Docs、Word、Sheets、Excel、または任意の文書形式で独自に作成してください。


請求書を帳簿に記録する

クライアントに PDF 請求書を送付したら、Beancount に記録する必要があります。これは、収益が「発生した」時点で認識し、支払われた時点だけでなく、会計上重要なステップです。プロセスは 2 つの取引に分かれます。

1. 請求書を発行したとき:

総額を Income 勘定から Assets:AccountsReceivable に移す取引を作成します。これにより帳簿上にデジタル IOU が生成されます。

; 2025‑07‑21 Invoice #045  Web design sprint for Acme Corp.
2025-07-21 * "Acme Corp" "INV-045 Web design sprint"
Assets:AccountsReceivable 3500.00 USD ; due:2025-08-04
Income:Design:Web
invoice_id: "INV-045"
contact_email: "[email protected]"
link: "docs/invoices/2025-07-21_Acme_INV-045.pdf"

ここでは AccountsReceivable を借方、Income 勘定を貸方にしています。メタデータとして支払期日、固有の invoice_id、送付した PDF への直接 link: が含まれています。

2. クライアントが支払ったとき:

入金が銀行口座に届いたら、IOU を「決済」する第 2 の取引を記録します。AccountsReceivable からチェック口座へ金額を移動します。

2025-08-01 * "Acme Corp" "Payment INV-045"
Assets:Bank:Checking 3500.00 USD
Assets:AccountsReceivable
invoice_id: "INV-045"

Assets:AccountsReceivableINV-045 の残高はゼロになり、帳簿は完全にバランスします。

PDF を添付: link: メタデータキーは、Beancount のウェブインターフェースである Fava と組み合わせると特に威力を発揮します。Fava は取引ビューにクリック可能なリンクを直接表示し、元文書がワンクリックで参照できます。このワークフローは 2016 年の機能要望で既に提案されていました(GitHub)。


未回収請求書を一覧表示するクエリ

それでは、まだ支払われていないのは誰でしょうか?このシステムなら、メールやスプレッドシートを探し回る必要はありません。シンプルなクエリ一つで済みます。

open-invoices.sql という名前で以下を保存してください。

SELECT
meta('invoice_id') AS id,
payee,
narration,
date,
number(balance) AS outstanding
WHERE
account = "Assets:AccountsReceivable"
AND balance != 0
ORDER BY
date;

コマンドラインから実行します。

bean-query books.beancount open-invoices.sql

数秒で、未回収請求書の最新エイジングレポートが取得できます。請求書 ID、顧客、発行日、未払金額が一覧表示され、追加ソフトは不要です。


面倒な作業を自動化する

プレーンテキストの最大の魅力はスクリプト化です。このワークフローの手間のかかる部分を自動化できます。

  • テンプレート + Pandoc = PDF: 請求書テンプレートを Markdown で管理し、Python スクリプトで変数(顧客名、明細、請求書番号)を埋め込み、コマンドラインツール Pandoc で即座にプロフェッショナルな PDF に変換。
  • Git プレコミットフック: Ledger を Git 管理している場合、シンプルなプレコミットフックで保存前にチェックを実行。新しい invoice_id が一意であるか、取引の貸借がゼロになるか、link: で参照したファイルが実在するかを検証。
  • Cron ジョブ: 定期タスク(cron)で open-invoices.sql クエリを毎晩実行し、サマリーをメール送信。毎朝、誰にリマインドが必要かが一目で分かります。

現実的な注意点

Beancount は会計ツールであり、請求書 サービス ではありません。クライアントへの支払リマインダー送信やクレジットカード決済の自動処理は行いません。ワークフローは次の通りです。好きな方法(上記テンプレートなど)で請求書を作成・送付し、帳簿にエントリを記録します。

フリーランサーや小規模事業者にとって、この手作業は、完全に所有・管理できる、監査可能で無料の会計システムを手に入れるための小さな代価です(beancount.io)。


次のステップ

請求書管理を自分の手に取り戻す準備はできましたか?以下の手順で始めましょう。

  1. テンプレートをダウンロードし、次の実際の請求書を作成。連番の請求書番号を必ず使用。
  2. 送付した PDF を docs/invoices/ などの専用フォルダに保存し、Beancount 取引の link: メタデータで参照。
  3. open-invoices.sql クエリを保存し、週次の財務レビュー時に実行する習慣をつける。

プレーンテキスト会計は、洗練さやコントロールを犠牲にするものではありません。データベースが grep 可能になるだけです。シンプルなテンプレートと上記スニペットで、支払いをより早く受け取り、帳簿を完璧に保ちましょう。

Beancount の調整仕訳:月末のチューニング

· 約6分
Mike Thrift
Mike Thrift
Marketing Manager

会計は最後の売上が銀行に入金された時点で完了するわけではありません。事業の健全性を正確に把握するためには、月末のチューニングが必要です。各期間の締め時に adjusting entries(調整仕訳)を行い、収益と費用を適切な期間に配置し、貸借対照表の正確性を保ちます。

プレーンテキストの Beancount 元帳では、これらの重要な仕訳は透明性が高く、バージョン管理され、監査もしやすいため、面倒な作業が明確で繰り返し可能なプロセスへと変わります。

2022-01-25-Beancount-調整仕訳-月末チューニング


調整仕訳が重要な理由

これらの調整は健全な会計の基礎です。財務諸表の正確性と信頼性を確保します。

  • Accrual Accuracy(発生主義の正確性): 調整仕訳は発生主義会計のエンジンです。現金の受払時期に関わらず、収益や費用を実際に発生した期間へ移動させます。これは、現代会計の基礎を成す revenue-recognition(収益認識)matching principles(費用配分原則) を満たします(AccountingCoach.com)。

  • Reliable KPIs(信頼できるKPI): 主要業績評価指標は、その背後にあるデータの質に依存します。粗利益、純利益、キャッシュフロー予測などの指標は、繰延、発生、見積もりが正しく計上されて初めて正確な情報を提供します(Corporate Finance Institute)。

  • Clean Audit Trail(クリーンな監査証跡): 明示的な月末調整は、財務上の判断根拠を明確に記録します。これにより、監査人(および将来の自分)が何が変更され、なぜ変更されたかを容易に追跡でき、数値への信頼が高まります(Accountingverse)。


6つの一般的なカテゴリ(Beancount スニペット付き)

ここでは、最も一般的な6つの調整仕訳タイプと、Beancount 元帳での記録例を示します。adj:"accrual" などのメタデータを使うことで、後から検索・分析しやすくしています。

1. 発生収益

これは、すでに獲得したがまだ請求も入金もされていない収益に対する仕訳です。

2025-07-31 * "Consulting—July hours"
Assets:AccountsReceivable 12000.00 USD
Income:Consulting
; adj:"accrual" period:"Jul-25"

2. 発生費用

これは、発生したがまだ支払われていない費用(例:来月届く光熱費請求書)に対する仕訳です。

2025-07-31 * "Attorney—July retainer"
Expenses:Legal 2500.00 USD
Liabilities:AccruedPayables
; adj:"accrual"

3. 繰延(未実現)収益

顧客から前払いで受領した場合に適用します。時間経過に伴い、収益の一部を実現時に認識します。

2025-07-31 * "Annual SaaS prepayment (recognize 1/12)"
Liabilities:UnearnedRevenue 833.33 USD
Income:SaaS
; adj:"deferral"

4. 前払(繰延)費用

費用を前払いで支払った場合(例:年間保険料)、毎月その一部を費用として計上します。

2025-07-31 * "Insurance—1 mo. expense from prepaid"
Expenses:Insurance 400.00 USD
Assets:PrepaidInsurance
; adj:"deferral"

5. 減価償却・償却

この仕訳は、長期資産(例:コンピュータや車両)の費用を耐用年数にわたって配分します。

2025-07-31 * "Mac Studio depreciation"
Expenses:Depreciation 1250.00 USD
Assets:Computers:AccumDepr
; asset_id:"MAC-03" adj:"estimate"

6. 貸倒引当金

回収できないと見込む売掛金の見積もりで、貸倒費用として計上します。

2025-07-31 * "Bad-debt provision (2% of A/R)"
Expenses:BadDebt 700.00 USD
Assets:AllowanceForBadDebt
; basis:"A/R" rate:0.02 adj:"estimate"

繰り返し可能なワークフロー

月末締めを効率的かつミスなく行うために、一定のワークフローを採用しましょう。

  • 別ファイルを使用する。 期間ごとのすべての調整仕訳を adjustments-2025-07.bean のように一つのファイルにまとめます。メイン元帳では include ディレクティブで最後にインポートし、最終レポート生成直前に調整が適用されるようにします。

  • メタデータを標準化する。 常に adj:"accrual|deferral|estimate"period:"Jul-25" のように一貫したキーと値を使用します。これにより、特定の調整タイプの検索やレビューが容易になります。

  • 事前チェックを実行する。 変更を Git にコミットする前に、調整ファイルに対して bean-check を実行し、タイプミスや不均衡な仕訳を検出します。

  • ワンラインのサニティチェックを行う。 以下のクエリで期間中のすべての調整が合計してバランスが取れていることを確認し、エラーが導入されていないことを保証します。

    bean-query main.bean "SELECT account, SUM(number) WHERE meta('adj') AND meta('period') = 'Jul-25' GROUP BY account"

クイックトラブルシューティングのヒント 🤔

  • Liabilities:UnearnedRevenue の残高が増えていませんか? 契約のマイルストーンを確認してください。提供している作業に対して収益認識が遅すぎる可能性があります。

  • Assets:PrepaidInsurance の残高がマイナスですか? 資産のスケジュールよりも早く費用計上している可能性があります。償却スケジュールを再確認してください。

  • 発生後に売掛金回転日数(DSO)が悪化していますか? 発生収益が根本的な回収問題を隠している可能性があります。このKPIを売掛金のエイジングレポートと組み合わせ、遅延顧客を早期に特定し、キャッシュフロー問題になる前に対処しましょう。


終わりに

調整仕訳は面倒に感じることもありますが、"前" と "後" の損益計算書を比較すると、その価値が一目瞭然です。差異はしばしば重要です。Beancount を使えば、これらの調整は小さく検索可能なパッチとなり、コードと同様に自動化・レビューが可能です。

月末の習慣を築けば、数値はエンジニアリングと同様に正確さを保ちます。

バランス調整、楽しんで!