2026年9月、米国の消費者物価は前年同月比で3.7%、前月比で0.6%上昇しました。どちらの率も同じ式、最新の指数を以前の指数で割って1を引く計算で求まり、インフレーションのエンドポイントは計算済みの値を返します。
APIでCPIの変化率を取得する
- APIキーを設定 無料のキーを取得し、
NARWHAL_API_KEYという環境変数に保存してください。リクエストはベースURLhttps://api.narwhalapi.comとヘッダーAuthorization: Bearer YOUR_KEYを使います。RESTとMCPで同じキーを共有します。 - 計算済みのインフレ率を読み取る
year_over_year、month_over_month、year_to_date、released_onには、インフレーションのエンドポイントを使います。率はパーセントで表した10進数の文字列なので、その期間の見出しの数値が必要なときは、返された率をそのまま使えます。curl -s -H "Authorization: Bearer $NARWHAL_API_KEY" \ "https://api.narwhalapi.com/v1/economics/USA/inflation" - 指数水準から変化率を計算する CPI観測値のエンドポイントは、
periodとvalueの行を返し、index_baseは1982-84=100に設定されています。このスクリプトは、前月と前年同月を period で探し、必要な観測値がそろっていれば変化率を計算します。import os import requests r = requests.get( "https://api.narwhalapi.com/v1/economics/USA/cpi/observations", params={"start": "2025-09", "limit": 24}, headers={"Authorization": f"Bearer {os.environ['NARWHAL_API_KEY']}"}, timeout=10, ) r.raise_for_status() cpi = {o["period"]: float(o["value"]) for o in r.json()["observations"]} latest = max(cpi) # "2026-09" year, month = latest.split("-") prev_month = f"{year}-{int(month) - 1:02d}" if month != "01" else f"{int(year) - 1}-12" prev_year = f"{int(year) - 1}-{month}" print("MoM %.2f%%" % ((cpi[latest] / cpi[prev_month] - 1) * 100)) print( "YoY %.2f%%" % ((cpi[latest] / cpi[prev_year] - 1) * 100) if prev_year in cpi else "year-ago month not in range" ) - 返された期間を確認する すべてのアカウントで全履歴を取得できます。最初に返された期間が、系列の開始点と、計算を始められる位置を示します。
前月比は、今月のCPIを先月のCPIで割り、1を引いて100を掛けます。前年比は、1年前の同じ月を分母にします。インフレーションのエンドポイントは、どちらの総合の変化率もyear_over_yearとmonth_over_monthで計算済みの値として返します。
3か月間や特定の日付からの変化など、任意の期間では、終点の指数を起点の指数で割って1を引きます。パーセントにするには100を掛けます。比較したい期間に合わせて起点の期間を選んでください。計算済みの月次や年次の率がその期間に合わないときは、指数水準を使います。
シートでCPIの変化を計算する、またはコードなしで率を読む
Googleスプレッドシートでは、期間を貼り付ける前に、A列の書式を「書式」「数字」「書式なしテキスト」の順で書式なしテキストにします。スプレッドシートは 2026-09 を日付に変えてしまうことがあり、その場合はテキストの検索が一致しなくなります。A列に期間のテキスト、B列にそのCPI値を入れます。Excelの数式でも、同じ期間と値の並びを使います。
=VLOOKUP("2026-09",A:B,2,FALSE)/VLOOKUP("2026-08",A:B,2,FALSE)-1結果はパーセントで表示します。隣り合う行が隣り合う月だと決めつけず、期間で各月を引いてください。観測値が1つ欠けると、比較がずれるおそれがあります。前年比には1年前の同じ月が必要なので、少なくとも13か月分の水準をリクエストするか、計算済みのyear_over_yearの値を使ってください。Narwhalのインフレーションのページでも、各国の変化率を確認できます。
シートで2026年9月の年初来を計算するには、2026年9月と2025年12月を period で探し、その水準を同じ割り算に使います。分母は12月の水準に変わりますが、引き算とパーセント表示は同じです。
計算に使うCPIの方法を選ぶ
| 状況 | 適した方法 | 理由 |
|---|---|---|
| 見出しのインフレ率が必要 | インフレーションのエンドポイント | year_over_yearとmonth_over_monthを計算済みの値で返します |
| 3か月間や特定の日付からの率が必要 | CPIの指数水準 | 期間の始めと終わりの水準を使います |
計算したCPIが公表値と違うのはなぜですか?
公表機関は指数と変化率を別々に丸めるため、指数水準からの計算では小数第2位が異なることがあります。2026年9月については、336.940を334.980で割ると、計算例の月次の率になります。Pythonの計算は小数第2位まで表示し、APIの月次の率は小数第1位です。これらを比べるときは、計算値と返された率の精度の違いに注意してください。
CPIの月が欠けている場合は?
欠けている月を補間してはいけません。2026年9月の例では、米国の系列は2025年11月に始まり、2025年10月の観測値は系列に含まれていません。レスポンスに13か月分の連続した月次の行があるとは考えないでください。範囲を広げても、存在しない観測値は得られません。必要な期間にひもづけて検索してください。
2026年9月の例では、Pythonスクリプトが月次の変化率と前年比を小数第2位まで表示します。総合の年率は、インフレーションのエンドポイントを使って取得してください。
月次のCPI上昇率を年率換算できますか?
はい。月次の率を年率にするには、MoMを小数で表して (1 + MoM)^12 - 1 を使います。2026年9月については、計算例の月次の計算から、そこに示した年率換算の結果が得られます。前年同月比は前年の同じ月の実際の指数を使うので、月次の率の年率換算とは別に計算してください。
計算例:2026年9月の米国CPI
2026年9月のCPI 336.940と2026年8月のCPI 334.980から始めます。9月の水準を8月の水準で割り、1を引いて100を掛けると前月比になります。年初来では、分母に2025年12月のCPI 324.054を使い、同じ式を適用します。
2026年9月のインフレーションのレスポンスでは、released_on が 2026-10-14 に設定されています。年間の見出しの率には year_over_year フィールドを読みます。上の12月との比較は年初来です。選んだ期間でCPIが下がれば、計算した率はマイナスになり、物価の下落を表します。
| 2026年9月の指標 | 計算または返されたフィールド | 結果(パーセント) |
|---|---|---|
| 指数水準からの前月比 | (336.940 / 334.980 - 1) × 100 | 0.585(表示は0.59) |
| 指数水準からの年初来 | (336.940 / 324.054 - 1) × 100 | 3.98 |
| 月次の率の年率換算 | ((336.940 / 334.980)^12 - 1) × 100 | 7.25 |
| 公表された前月比 | month_over_month | 0.6 |
| 公表された年初来 | year_to_date | 4.0 |
| 公表された前年同月比 | year_over_year | 3.7 |
公開。