2026年10月23日、米国10年債利回りが5.00%、インフレ率が3.70%のとき、10年の実質金利は約1.25%でした。実質金利は、名目金利をインフレ率で調整したものです:(1 + 名目金利) / (1 + インフレ率) - 1。すでに発生したインフレ率を使うと、事後的な実質金利が得られます。
APIを使う方法
名目利回りとインフレ率は別々に取得し、同じ計算に入れます。利回りのレスポンスにはdateが、インフレ率のレスポンスにはperiodがあります。実質金利が名目金利とインフレ入力の両方について明確な基準日を持つように、これらの日付を結果と一緒に保持してください。
名目の入力にはGET /v1/economics/USA/yield-curve?maturity=10y、インフレの入力にはGET /v1/economics/USA/inflationを使います。名目のフィールドは年率のパーセント、インフレのフィールドは過去12か月のパーセントです。スクリプトはフィッシャーの式の中で各パーセントを変換し、結果に100を掛けてパーセント表示で出力します。
- 無料のAPIキーを取得 無料キーを作成します。Narwhalはデータ API 全体で1つのアカウントと1つの API キーを使い、RESTとMCPで同じキーを共有します。
- 環境変数を設定する キーを
NARWHAL_API_KEYに保存します。スクリプトはこの変数を読み取り、https://api.narwhalapi.comへの各リクエストでAuthorization: Bearer YOUR_KEYとしてキーを送信します。 - 入力を取得して金利を計算する Pythonスクリプトで、
maturity=10yを指定した米国のイールドカーブと米国のインフレ率を取得します。yields配列からyield_percentを、インフレのレスポンスからyear_over_yearを読み取り、引き算の結果とフィッシャーの結果を出力します。import os import requests H = {"Authorization": f"Bearer {os.environ['NARWHAL_API_KEY']}"} API = "https://api.narwhalapi.com/v1/economics/USA" curve = requests.get( f"{API}/yield-curve", params={"maturity": "10y"}, headers=H, timeout=10 ).json() inflation = requests.get(f"{API}/inflation", headers=H, timeout=10).json() nominal = float(curve["yields"][0]["yield_percent"]) # percent a year cpi = float(inflation["year_over_year"]) # percent over the last 12 months print(f"nominal {nominal}% inflation {cpi}% ({inflation['period']})") print(f"approximate real rate {nominal - cpi:.2f}%") print( f"exact (Fisher) real rate {((1 + nominal / 100) / (1 + cpi / 100) - 1) * 100:.2f}%" ) - インフレの対象期間を結果と一緒に保持する 入力金利の横に出力されるインフレの対象期間を確認します。スクリプトはインフレのレスポンスをインフレの入力として使います。将来を見据えた計算では、その過去の値の代わりに、自分で想定したインフレ率を入力してください。
スプレッドシートまたはコードを使わずに計算する
名目利回りをB1に、前年比のインフレ率をB2に、どちらもパーセントで表した数値として入力します。数式はフィッシャーの計算の前に各入力を100で割るため、セルの入力はAPIのフィールドと同じ単位にする必要があります。利回りの日付とインフレの対象期間を入力の横に残しておきます。
=(1+B1/100)/(1+B2/100)-1結果をパーセント形式に設定します。割り算の結果はインフレ調整後の金利を小数で表しており、パーセント形式にするとそれが金利として表示されます。ざっくり見たい場合は、代わりに引き算の式を使います。同じパーセントの入力なら、パーセントポイントの差がそのまま返ります。
=B1-B2シートでは、過去のインフレ入力を自分の想定に置き換えることもできます。その選択は入力の横に見える形で残してください。想定インフレ率に基づく結果は、すでに発生したインフレ率に基づく結果とは別の問いに答えるものだからです。
状況に応じた方法の選び方
| 状況 | 適した方法 | 理由 |
|---|---|---|
| 大まかに見る場合 | 名目金利からインフレ率を引く | 2つのパーセント入力から近似の実質金利が得られます |
| 精密な計算や高い金利の場合 | フィッシャーの式 | 簡易式が無視する交差項を含みます |
| 将来を見据える場合 | 自分で想定したインフレ率 | 直近のインフレ発表値ではなく、想定インフレ率を使います |
どのインフレ入力を選ぶかで、計算が過去向きか将来向きかが決まります。フィッシャーの式は、過去のインフレ率にも自分の想定にも使えます。
どの利回りの年限を使えばよいですか?
利回りの年限は自分の投資期間に合わせます。短期なら2y、長期なら10yを使います。maturityパラメータは3m、1y、2y、10y、30yなどの値を受け付けます。付属のスクリプトは10yを選ぶため、結果は米国10年債利回りに基づく実質金利になります。
年限を変更した場合は、結果を説明するときにその年限を明記してください。計算には選んだ名目利回りがそのまま使われるため、投資期間は、得られた実質金利の意味の一部になります。
2つの実質金利の式で結果が違うのはなぜですか?
引き算の簡易式は、フィッシャーの式にある交差項を無視します。2026年10月23日の例では、名目利回り5.00%と2026年9月のインフレ率3.70%から、引き算では1.30%、フィッシャーでは1.25%となり、差は0.05パーセントポイントです。金利が高いほど差は大きくなります。
フィッシャーの式は、名目の成長係数をインフレの成長係数で割ってから、元の金額を引きます。引き算は、金利の差を直接取ります。どちらの計算にも同じ入力を使えますが、この割り算を含むのはフィッシャーの計算だけです。
年率の利回りには、どのインフレ率を使えばよいですか?
事後的な計算には、直近の前年比のヘッドラインインフレ率を使います。APIのフィールドはyear_over_yearです。月次のインフレ率と年率の利回りを混ぜると、入力が異なる期間を表すため、誤った答えになります。
利回りの日付と異なる場合でも、インフレの対象期間は見える形で残してください。2026年10月23日の計算例では、インフレの入力は2026年9月の前年比の数値です。この期間が、計算に使った過去のインフレ率を特定します。
計算例:米国10年債、2026年10月23日
2026年10月23日、米国10年債の名目利回りは5.00%でした。インフレの入力は2026年9月の3.70%です。これらのパーセントの入力から始め、フィッシャーで使う成長係数に変換し、名目の係数をインフレの係数で割ります。
2026年10月23日の入力では、簡易計算は名目利回り5.00%から2026年9月のインフレ率3.70%を引き、1.30%になります。フィッシャーでは、名目の成長係数は1.0500、インフレの成長係数は1.0370で、その比は1.01254です。丸める前の比から1を引いて百分率にすると、表示は1.25%になります。丸めた途中の比が新たな入力にならないよう、数式では最後に表示するまで丸めていない割り算の結果を保持してください。
| 手順 | 2026年10月23日の計算 |
|---|---|
| 名目利回り | 5.00% |
| 2026年9月のインフレ率 | 3.70% |
| 実質金利の近似 | 5.00% - 3.70% = 1.30% |
| 成長係数を割る | 1.0500 / 1.0370 = 1.01254 |
| 1を引いてパーセントで表す | (1.05 / 1.037 - 1) × 100 |
| 表示用に丸めた実質金利 | 1.25% |
公開。