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

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

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

あなたの保有資産はすでに元帳にあります。あなたが何度も入力し直しているのは、その価格の部分です。

この非対称性は、プレーンテキスト会計における最も古い雑用です。購入は一度書けば永遠に真実です。120 NWRB {41.80 USD, 2024-03-12} は数量、コスト、日付を記録し、その後何が起きてもこの3つのいずれも変わりません。価格はその逆で、ある一日については正しく、その後静かに間違いになります。しかも残高チェックでは決して捉えられない形で間違います。なぜなら、古い価格でも完璧に貸借が一致するからです。Beancount自身の答えは常に、ツールで取得してその出力をコミットするというものでした。それは機能しますし、多くの人が自動化しています。しかしそれは依然として、あなたが所有するスクリプトであり、あなたが保守するcronエントリーであり、あなたがマージするファイルです。

beancount.ioの元帳エンジンが、私たちとともにホストしている元帳に対して、その解決を自ら行うようになりました。この記事では、実際に出荷されたもの、意図的に触れていないもの、そして同じくらい重要なこととして、まだ作られていないものについて説明します。

出荷されたもの

ホストされたbeancount.ioの元帳は、ファイル名ではなくURLをターゲットとするincludeを持つことができます:

; main.bean, in a hosted beancount.io ledger.
;
; The managed line is shown commented out on purpose: upstream `include` takes a
; file glob, so this file still loads if you copy it to your own machine. Only
; the hosted engine resolves the URL form.
 
option "title" "Taxable brokerage"
option "operating_currency" "USD"
 
include "accounts.bean"
; include "https://beancount.io/prices/ACME-USD"
 
include "transactions/purchases.bean"
include "transactions/sales.bean"

上流のBeancountのincludeはファイル名を取ります —「指定されたパスは絶対ファイル名または相対ファイル名にすることができます」が仕様のすべてです — したがって、URLインクルードはプレーンなBeancountではなく、そのふりをすることも決してありません。これはホステッドエンジンの挙動であり、エンジンがそれに対して何をするかを正確に示します:

  • フィードを読み取り専用の仮想ファイルとして実体化します。 URLはエンジン自身のインクルード解決パスを通じて解決され、ローカルファイルが置かれたはずのまさにその場所に配置されます。したがって、すべてのディレクティブは実際のソース位置を保ちます。あなたのバイト列が書き換えられることは決してありません。 あなたが書いたファイルは、あなたが書いたファイルのままです。
  • 取得された本体は価格専用として検証されます。 priceディレクティブ、コメント、そして4つの許可されたメタデータキー — price-sourceprice-kindobserved-atprovisional — のみで、それ以外は何もありません。これを超えるものは本体全体を拒否します。部分的な取り込みは存在しないため、フィードがあなたの帳簿にトランザクションを密輸することは決してできません。
  • フィードは不変のリビジョンと可動ポインタとしてキャッシュされます。 更新はキャッシュの期限切れではなくタイムスタンプによって駆動されるため、上流の障害が最後の正常なリビジョンを持ち去ることはありません。失敗した更新が、正常なリビジョンを何もない状態に置き換えることは決してありません。
  • 鮮度は元帳が読まれるときに計算され、保存されるのではありません:recentstaleunavailable、およびフィード自体が報告した観測時刻とともに。日付を特定できない価格は、監査できない価格です。
  • マネージドエントリは読み取り専用です。 編集や削除はマネージドソースを名指しするエラーで拒否され、ディレクティブの制限にはカウントされません — フィードがあなたの元帳の予算を消費することは許されません。

このリストのすべては、ホストされた元帳サービス内で実行されます。これらのいずれもpriceディレクティブの意味を変えません:それは言語リファレンスが定義する通り、基軸コモディティとクォートコモディティの間の為替レートを確立するだけです。エンジンの仕事は、正しく、日付が付き、出所が明示されたものをローダーの前に配置することだけです。

あなた自身の価格が常に優先されます

これは、自分の元帳を真剣に扱う人にとってフィードが使えるかどうかを決める部分なので、正確に述べます。

同じ日付と同じコモディティペアについて — そしてその逆ペアについて — あなた自身が書いた価格は、インクルードの順序に関係なく、マネージドフィードより優先されます。

「たいてい」でもなく、「インクルードを最後に置けば」でもありません。シャドーイングの決定は価格マップが構築される前に行われるため、ファイル内でインクルードがどこにあるかに依存しません。先頭に移動しても、末尾に移動しても、3つのファイルに分割しても、答えは同じです。

; include "https://beancount.io/prices/ACME-USD"   ; hosted-engine form, again shown commented
 
; A price you wrote yourself, for the same date and pair.
; This one wins — above the include or below it, it makes no difference.
2026-09-16 price ACME 93.40 USD

ACMEは、後述のサンプル元帳に出てくる架空の発行体です。数値は創作であり、市場の観測値ではありません。)

なぜもう一方のルールではなくこのルールなのか:あなた自身のファイル内の価格は決定です。それは、あなたが照合している明細書にブローカーが印字した終値かもしれず、薄商いのポジションに対する同時点の気配値かもしれず、あるいは会計士が使うよう求めた数値かもしれません。フィードはそれらのどれも知りませんし、人間が書いた数値を黙って上書きするシステムは、元帳であることをやめて意見になり始めています。フィードは隙間を埋めるものであり、あなたを訂正するものではありません。

価格が動かすのは評価だけであり、それ以外は何も動かしません

2つ目の安心材料はポリシーの選択ではなく構造的なものであり、断言するよりも実際の数値で示す価値があります。こちらは暗号資産のサンプル元帳です — 日付付きロット、ステーキング、マイニング、DeFiポジション、エアドロップ:

新しいタブで 暗号資産の会計例 — 日付付きロット、ステーキング、DeFi、エアドロップ を開く

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

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についての事実です。元帳内のすべてのpriceディレクティブ — マネージド、手書き、あるいは完全に欠落しているもの — はそのどちらにも触れません。価格は市場価値を変えるだけで、数量、取得原価、キャッシュフロー、手数料、実現利益は決して変えません。だからこそ、価格フィードはそもそも助けを受け入れるのに安全なものなのです:間違った価格がしうる最悪のことは、あるポジションが今日いくらの価値があるかを誤って報告することであり、税務申告書に載せる数値を汚染することは決してできません。

間違った価格モデルが実際にあなたを誤らせる場所

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

新しいタブで 株式・ETF の取得原価の例 — 識別可能なロット、4対1の株式分割、特定ロットの売却 を開く

これは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ドルです。市場価値は分割を通じて変わりません — 前日に62.00ドルで120株、翌日に15.50ドルで480株、いずれも7,440.00ドル — そして中括弧内の取得日は生き残り、それがこれらの株式の2026年の売却を長期保有に保ちます。

よくある間違いは、分割を代わりに価格のイベントとして記録し、「分割調整済み」系列に頼って評価が正しく出るようにすることです。それは、あなたが見るすべての価格が同じ方法で調整されている限りにおいてのみ機能します。調整されていない数値が到着した瞬間 — 古い確認書、スクリーンショット、何も再表明しない第三者系列 — ポジションはその価値の4倍で評価され、元帳内の株数はブローカーの明細書ともはや一致しなくなり、それを捉えたはずの年末のアサーションは発火できなくなります。

これこそが、宣言されたソース、宣言された種類、可視の観測時刻を持つ価格フィードの本当の論拠です:利便性ではなく、あなたが今インポートした数値がどのような慣習の下で計算されたかを知ることです。サンプル元帳自身の価格ファイルは意図的に未調整であり、そう明記されており、分割をまたぐ2つのディレクティブは目で検証できるチェックとして書かれています。

どちらの埋め込みをクリックするかについての正直な注記:ホストされた元帳ビューアは口座残高を取得原価で表示し、ページ上に評価のコントロールを提供しません。上記の元帳は、あなたに元帳を見せるためにあります — ロット、分割、個別ロット売却 — ビューアが現在描画しない市場評価ではありません。どちらも公開されており、どちらもクローンしてローカルで実行できます。

まだここにないもの

チェンジログのエントリは、真実でないことを信じさせてしまうなら、無価値以下です。ですからここに、残りの半分を明白に、そしてそのいずれにも日付を付けずに示します。

  • 価格エンドポイントは公開されていません。 https://beancount.io/prices/<ALIAS>への匿名リクエストはログインページにリダイレクトされます。公開エイリアスカタログはありません。
  • したがって、これは今日あなた自身のファイルに貼り付けられるものではありません。 エンジンはインクルードを解決しますが、それが解決するルートはまだ開かれていません。開かれたときには、それはそれ自身のチェンジログエントリとなるでしょう。
  • ローカルのbea CLIはURLインクルードを解決しません。 それはディスクからファイルを読むため、URLインクルードはローカルではどのファイルにもマッチしないファイルグロブとして失敗します。CLIでのローダーサポートは明示されたフォローアップです。
  • APIサーフェスはありません。 マネージド価格のためのREST、GraphQL、MCPフィールドはありません。
  • ダッシュボードサーフェスはありません。 フィード接続画面もUIの鮮度ラベルもありません。エンジンが計算する鮮度は、まだ表示される場所がありません。
  • スナップショットとエクスポートは作られていませんし、商品カタログや手動更新エンドポイントも同様です。

出荷されたのはエンジン層です:インクルード解決、検証、リビジョンキャッシュ、優先順位ルール、そして鮮度計算。それは他のすべてがその上に立たなければならない部分であり、後から変更するのが最も難しい部分です。だからこそ最初に進められたのです。

次に見るべき場所

上記の両方の元帳はサンプルギャラリーの一部で、クローンしてローカルで実行できる6つの実例パターンです — この2つはどちらも意図的に静的でチェックイン済みの価格ファイルを同梱しており、2年後にクローンしても今日と同じレポートを生成します。私たちが出荷する他のすべてはチェンジログに掲載されます。

もしあなたがまだ自前のフェッチャーで価格を最新に保っているなら、それはローカル元帳にとって依然として正しい答えであり、Beancount自身の価格取得のドキュメントとメンテナンスされているbeanpriceツールが出発点です。

退屈な部分を退屈なままに

価格を自動化する価値があるのは、それがプレーンテキスト元帳の中でただ一つ自力で劣化する部分だからです。Beancount.ioはあなたのものであり続けるプレーンテキスト会計を提供します — 監査可能で、バージョン管理され、あなたの背後で書き換えられることは決してありません。それはまさに、私たちがマネージドフィードを出荷する前にそれらが満たさなければならなかった基準です。無料で始めるそしてあなたの帳簿を読めるファイルに保ちましょう。

この記事を共有

このトピックをフォロー

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

公開日: 2026年9月17日