メインコンテンツへスキップ

ホステッド元帳がマネージド価格インクルードを解決できるようになりました

公開日 最終更新 約2分Mike ThriftMike Thrift
ホステッド元帳がマネージド価格インクルードを解決できるようになりました
このページの見出し

率直に言いましょう。あなたの保有資産はすでに元帳に完璧に記録されています。あなたを終わりのない再入力のループに縛り付けているのは、価格のほうです。

この非対称性は、プレーンテキスト会計における最も古く、最も苛立たしい雑用です。購入を一度書けば、それは永遠に確定します。120 NWRB {41.80 USD, 2024-03-12} は数量、原価、日付を永久的に固定します。その後何が起きても、これらの事実は変わりません。しかし、価格は正反対です——それはちょうど一日の間だけ正しく、その後静かに間違いになります。さらに悪いことに、残高チェックでは決して検出できない形で間違います。なぜなら、古い価格を含む元帳も完璧に貸借が一致するからです。

これまでBeancount流の対処法は、スクリプトで価格を取得してその出力をコミットすることでした。それは機能しますし、多くの人が自動化しています。しかし結局のところ、それは監視し続けなければならないスクリプトであり、維持しなければならないcronジョブであり、絶えずマージしなければならないファイルです。

もう終わりです。 beancount.ioでホストされている元帳では、私たちのエンジンがこの解決をネイティブに処理するようになりました。この記事では、今回実際にリリースされたもの、意図的に手を付けなかったもの、そして——同じくらい重要なことですが——まだ構築していないものを正確に説明します。


リリースされた内容​

ホステッドbeancount.io元帳は、ローカルのファイル名ではなくURLを指すincludeディレクティブを持てるようになりました:

; main.bean, in a hosted beancount.io ledger.
;
; This page is Japanese, so the quote currency is JPY. On another language of
; this site, use the currency in the list under the fence.
 
option "title" "Taxable brokerage"
option "operating_currency" "JPY"
 
; Only the hosted engine resolves the URL form, and upstream `include` takes a
; file glob — so the line is shown commented out here and this file still
; loads if you copy it to your own machine. Uncomment it in a hosted ledger.
; include "https://beancount.io/prices/AAPL-JPY"

ご注意: そのURLにアクセスする前にサインインする必要があります。匿名リクエストはログインページにリダイレクトされます。このページは日本語なので、サンプルでは日本円を引用しています——ここの読者が最もよく記帳に使う通貨です。認証が完了したら、https://beancount.io/prices/AAPL-JPY を開き、標準のpriceディレクティブが表示されていることを確認してください。そしてその行をホステッド元帳に追加してください。

他の言語をお読みの方は、その言語で通常使われる通貨を代わりに使用し、カタログに引用として掲載されている場合にのみ使用してください:

  • English: USD, https://beancount.io/prices/AAPL-USD
  • 中文: CNY、https://beancount.io/prices/AAPL-CNY。このURLは掲載されたペアではありません。これはDatabentoの未調整のAAPL-USD終値に、ECBのUSD-CNYを掛け合わせたものです。
  • 日本語: JPY、https://beancount.io/prices/AAPL-JPY
  • 한국어: KRW、https://beancount.io/prices/AAPL-KRW
  • Deutsch、Français、Español、Italiano、Nederlands、Català、Português、Slovenčina、Български: EUR、https://beancount.io/prices/AAPL-EUR。今年開設されたブルガリアの帳簿はユーロ建てです。古いファイルがまだ使用している場合、カタログにはBGNも掲載されています。
  • فارسی、Русский、Українська: カタログにはIRR、RUB、UAHがないため、開くべきペアがありません。掲載されている引用を選んでください。

https://beancount.io/prices/ のカタログも同じログインの背後にあります。AAPL-USD自体はDatabentoの直接引用であり、クロスではありません。他のティア1銘柄も同じように機能します——ティッカーを入れ替え、あなたの言語の引用通貨を保つだけです。ACME-USDは404を返します。

アップストリームのBeancountのincludeは技術的にはファイル名を期待するため、URLインクルードは厳密にホステッドエンジンの動作です。それがプレーンなBeancountのふりをすることは決してありません。私たちのエンジンが内部的に何をするかを正確に説明します:

  • フィードを読み取り専用の仮想ファイルとして実体化します。 URLはエンジン自身のinclude解決パスを通じて解決され——ローカルファイルが置かれたであろう場所に正確に着地するため——すべてのディレクティブが実際のソース位置を保持します。元のバイト列は決して書き換えられません。あなたが書いたファイルは、あなたが書いたファイルのままです。
  • 厳格なペイロード検証。 取得された本文は価格のみとして検証されます。私たちはpriceディレクティブ、コメント、および4つの特定のメタデータキー(price-source、price-kind、observed-at、provisional)を厳格に許可します。それ以外は本文全体を拒否します。部分的な取り込みはなく、悪意のあるフィードがあなたの帳簿に取引を密輸することは決してできません。
  • スマートキャッシング。 フィードは移動ポインタ付きの不変リビジョンとしてキャッシュされます。更新サイクルはキャッシュの有効期限ではなくタイムスタンプによって駆動され、アップストリームの障害が最後の正常なリビジョンを消し去らないことを保証します。
  • 監査可能な鮮度。 鮮度は元帳が読み取られるときに動的に計算され(recent、stale、またはunavailable)、フィードが報告する観測時刻と並んで表示されます。日付を特定できない価格は、監査できない価格です。
  • 厳密に読み取り専用。 マネージドエントリは編集も削除もできません(試みるとソースを名指しするエラーが発生します)。さらに、それらはあなたのディレクティブ制限にカウントされません——フィードがあなたの元帳の予算を食いつぶすことは許しません。

これらのいずれも、Beancountにおける価格ディレクティブの根本的な意味を変えるものではありません。エンジンの唯一の仕事は、正確で、日付が付き、出所が明確な価格をローダーの前に置くことです。


あなた自身の価格が常に優先される​

これは自分の元帳を真剣に扱う人にとって決定的な条件なので、はっきりさせておきましょう:

同じ日付と同じ商品ペア(その逆数を含む)について、あなた自身が書いた価格は常にマネージドフィードより優先されます。

「たいてい」でもなく、「includeを最後に置いた場合のみ」でもありません。このシャドーイングの決定は価格マップが構築される前に行われるため、includeがファイル内のどこにあるかから完全に独立しています。先頭に置いても、末尾に置いても、3つのファイルに分割しても——あなたの手書きの価格が常に優先されます。

逆数のルールは見落としやすいですが重要です。AAPL-USDのフィードは、USD建てのAAPLの価格です。もしあなたが逆方向——同じ日付でAAPL建てのUSD——の価格を手書きしていたなら、あなたのエントリはそれでもフィードに勝ります。これは、あなたがインクルードした引用通貨、CNYであれJPYであれ、同じことが当てはまります。

なぜこのルールなのか? あなた自身のファイル内の価格は意識的な決定だからです。それは、あなたが照合している明細書にブローカーが印字した正確な終値かもしれず、取引の薄い資産の同時点の引用かもしれず、あるいは会計士が要求した特定の数値かもしれません。フィードはあなたの文脈を知りません。人間が書いた数値を静かに上書きするシステムは、もはや元帳ではなくなり、意見になります。フィードは隙間を埋めるためにあり、あなたを訂正するものではありません。


価格は評価額を動かし、それ以外は何も動かさない​

次の安心材料は方針の選択というよりも構造的なものであり、実際の数値で示すのが一番です。日付付きロット、ステーキング、DeFiポジション、エアドロップを特徴とする私たちの暗号資産のサンプル元帳を見てください:

特定のエントリを一つ取り上げましょう。ガバナンストークンのエアドロップが到着し、それが届いた日の公正市場価値で収入として記録されます:

2024-03-20 * "Uniswap" "Receive UNI governance token airdrop"
  Assets:Crypto:Wallet:MetaMask:UNI       50.00 UNI {12.50 USD, 2024-03-20}
  Income:Crypto:Airdrops                -625.00 USD
 

その625.00ドルの収入と、そのロットに付随する1単位あたり12.50ドルの原価基準は、今や2024-03-20に関する不変の事実です。元帳内のすべての価格ディレクティブは——マネージドであれ、手書きであれ、あるいは完全に欠けていても——両方に一切触れません。

価格は市場価値を変えます。数量、取得原価、キャッシュフロー、手数料、実現損益を変えることは決してありません。これこそが、価格フィードが頼るのに安全なツールである理由です。悪い価格ができる最悪のことは、あるポジションが今日いくら価値があるかを一時的に誤って表示することだけです。税務申告書に載せる固い数値を汚染することは決してできません。


誤った価格モデルが実際にあなたを誤らせる場面​

株式とETFのサンプル元帳は、まさにこの点のより鋭いバージョンを示しています:

それは4対1の株式分割を含み、正しい方法——収入勘定に触れることなく総原価基準を維持する数量変更——で記録されています:

2025-07-15 * "Broker" "NWRB 4-for-1 share split — quantity change, not income"
  Assets:Brokerage:NWRB                   -120 NWRB {41.80 USD, 2024-03-12}
  Assets:Brokerage:NWRB                    480 NWRB {10.45 USD, 2024-03-12}
 

両側とも5,016.00ドルで等しくなります。市場価値は分割を通じて変わらず(どちらでも7,440.00ドル)、中括弧内の取得日が生き残ります——これが、それらの株式の2026年の売却を長期として分類し続けるものです。

よくある罠は、分割を代わりに価格イベントとして記録し、「分割調整済み」価格シリーズに大きく依存して計算を合わせることです。それは、あなたがこれまでに見るすべての価格がまったく同じ方法で調整されている限りにおいてのみ機能します。未調整の数値があなたの元帳に到達した瞬間——古い確認書、スクリーンショット、または履歴を再表示しない第三者フィード——ポジションは突然、実際の価値の4倍に評価されます。さらに悪いことに、元帳内の株式数がブローカーの明細書と一致しなくなり、年末の残高アサーションが静かに失敗することを意味します。

これが、宣言されたソース、宣言された種類、可視の観測時刻を持つ価格フィードに頼る本当の論拠です。それは単に便利さの問題ではなく、インポートした数値が正確にどの数学的慣習を使っているかを知ることです。

(埋め込みに関する簡単な注記:ホステッド元帳ビューアは勘定残高を原価で表示し、現在ページ上の評価コントロールを提供していません。上記の元帳は基礎となる仕組み——ロット、分割、売却——を紹介するためのものです。両方とも公開されており、クローンしてローカルで実行できます。)


まだここにないもの​

変更履歴は過大な約束をすると無用以下になると私たちは考えています。ですから、私たちがまだ構築していないものについて、タイムラインを添えずに率直な真実をここに示します:

  • 認証は必須です。 https://beancount.io/prices/<ALIAS>への匿名リクエストはログインページに飛ばされます。
  • ローカルCLIサポートはありません。 ローカルのbea CLIはディスクからファイルを読み取るため、URLインクルードは一致しないファイルglobとしてローカルで失敗します。CLIへのローダーサポート追加は私たちのロードマップにあります。
  • APIサーフェスはありません。 現在、マネージド価格のためのREST、GraphQL、またはMCPフィールドはありません。
  • UIダッシュボードはありません。 「フィードを接続」画面も、UIに鮮度ラベルもまだありません。(私たちのエンジンが計算する鮮度データは現在、表示される場所がありません)。
  • スナップショット、エクスポート、手動更新エンドポイントはありません。

今日リリースしたものは厳密にエンジン層です:include解決、検証、リビジョンキャッシング、優先順位ルール、および鮮度計算。それは他のすべてがその上に立たなければならない基盤インフラであり、まさにそれが私たちが最初にそれを構築した理由です。


次に見るべき場所​

上記で埋め込まれた両方の元帳は、私たちのサンプルギャラリーの一部です——クローンしてローカルで実行できる、完全に作り込まれた6つのパターンです。(両方とも意図的に静的でチェックインされた価格ファイルを同梱しており、2年後にクローンしても今日と同じレポートが生成されることを保証します)。私たちがリリースする他のすべては、直接私たちの変更履歴に掲載されます。

自分のフェッチャーで価格を最新に保つことに完全に満足しているなら、それを続けてください。それは厳密にローカルな元帳にとって依然として最良の答えです。Beancount自身の価格取得ドキュメントと保守されているbeanpriceツールが出発点として最適です。

退屈な部分は退屈なままに​

価格は、プレーンテキスト元帳の中で時間とともに腐敗する唯一の部分だからこそ、自動化する価値があります。Beancount.ioは、あなたのものであり続けるプレーンテキスト会計を提供するために構築されています——監査可能で、バージョン管理され、あなたの背後で決して書き換えられることのないものです。それは、私たちがマネージドフィードをリリースする用意ができる前に、それが満たさなければならなかった基準でした。

無料で始めて、実際に読めるファイルにあなたの帳簿を保ちましょう。

出典: https://beancount.io/ja/blog/2026/09/17/managed-price-includes-hosted-ledgers

公開日: 2026年9月17日

最終更新: 2026年9月19日