CPI 年增率與月增率怎麼計算

2026年9月,美國消費者物價年增 3.7%,月增 0.6%。兩個比率用同一公式得出,即最新指數除以較早指數再減 1,通膨端點回傳的就是已經算好的結果。

用 API 取得 CPI 比率

  1. 設定你的 API 金鑰 取得免費金鑰,並存放在名為 NARWHAL_API_KEY 的環境變數中。請求使用基礎 URL https://api.narwhalapi.com 和標頭 Authorization: Bearer YOUR_KEY;REST 和 MCP 共用同一組金鑰。
  2. 讀取現成的通膨率 year_over_year、month_over_month、year_to_date 和 released_on 使用通膨端點取得。比率是以百分比表示的十進位字串,需要對應期間的頭條數字時,直接使用回傳的比率即可。
    curl,現成的比率
    curl -s -H "Authorization: Bearer $NARWHAL_API_KEY" \
      "https://api.narwhalapi.com/v1/economics/USA/inflation"
  3. 用指數水準計算比率 CPI 觀測值端點回傳 period 和 value 列,index_base 為 1982-84=100。這個腳本依 period 查找上個月和去年同月,在所需觀測值都有的情況下計算比率。
    Python,用指數水準計算月增率
    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"
    )
  4. 檢視回傳的期間 所有帳戶都可讀取完整歷史。回傳的第一個期間顯示序列從何時開始,以及您的計算可以從何處開始。

計算月增率:用本月 CPI 除以上月 CPI,減去 1 後乘以 100。計算年增率:以一年前的同一個月作為分母。通膨端點也會在 year_over_year 和 month_over_month 中直接回傳這兩個整體比率。

對於自訂區間,例如 3 個月或自某個日期以來,用期末指數除以期初指數再減 1,乘以 100 得到百分比。請選擇與你要比較的區間相符的起始期間;現成的月度或年度比率與該區間不符時,就使用指數水準。

在試算表中計算 CPI 變化,或不寫程式直接讀取比率

在 Google 試算表中,貼上期間之前,先透過「格式」「數字」「純文字」把 A 欄設為純文字。試算表可能會把 2026-09 變成日期,導致文字查找失敗。A 欄放期間文字,B 欄放對應的 CPI 值。Excel 中的公式也使用同樣的期間加數值的排列。

2026年9月月增率
=VLOOKUP("2026-09",A:B,2,FALSE)/VLOOKUP("2026-08",A:B,2,FALSE)-1

將結果格式化為百分比。請依期間查找各月,而不要假定相鄰的列就是相鄰的月份:否則缺少一個觀測值就可能使比較發生錯位。年增率需要一年前的同一個月,因此請至少請求 13 個月的水準值,或使用現成的 year_over_year 值。Narwhal 通膨頁面也會顯示各國的比率。

要在試算表中計算2026年9月的年初至今,依 period 查找2026年9月和2025年12月,並在同樣的除法中使用這兩個水準。分母換成12月的水準,減法和百分比格式維持不變。

選擇適合你計算的 CPI 方式

情況最適合的方式原因
需要頭條通膨率通膨端點直接回傳現成的 year_over_year 和 month_over_month
需要 3 個月或自某個日期以來的比率CPI 指數水準使用區間起點和終點的水準

為什麼我算出的 CPI 與公布的比率不同?

發布機構對指數和比率分別四捨五入,所以由指數水準算出的結果在小數點後第二位可能不同。就2026年9月而言,336.940 除以 334.980 得到範例中的月增率。Python 計算顯示兩位小數,而 API 的月增率為一位小數。比較這些數字時,請留意計算值與回傳比率的精度差異。

如果缺少某個月的 CPI 怎麼辦?

不要對缺漏的月份做插補。以2026年9月的範例來說,美國序列始於2025年11月,序列中沒有2025年10月的觀測值。不要假定回應包含連續13個月的資料列。把請求範圍放寬並不會讓缺漏的觀測值出現,請依你需要的期間來查找。

在 2026 年 9 月的範例中,Python 指令碼會將月增率和年增率列印到小數點後兩位。整體年度通膨率請使用通膨端點。

可以把月度 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) × 1000.585,顯示為 0.59
由指數水準算出的年初至今(336.940 / 324.054 - 1) × 1003.98
年化後的月度比率((336.940 / 334.980)^12 - 1) × 1007.25
公布的月增率month_over_month0.6
公布的年初至今year_to_date4.0
公布的年增率year_over_year3.7

發布於 。

後續步驟