对照两个国家的通胀,检查加薪是否跑赢通胀

加薪幅度不低于 CPI 同比变化时,加薪就跑赢了物价。Narwhal 提供各国的通胀率,下面的 Python 把加薪幅度和通胀率换算成实际变化;对大多数国家,它没有工资基准数据。

读取各国的通胀率

通胀端点返回一个国家最新的年度和月度价格变化。下面这两个请求获取的是德国和日本。

curl,德国的通胀率
curl -s -H "Authorization: Bearer $NARWHAL_API_KEY" \
  "https://api.narwhalapi.com/v1/economics/DEU/inflation"
响应
{
  "country": "DEU",
  "period": "2026-09",
  "year_over_year": "3.3",
  "month_over_month": "0.6",
  "year_to_date": "3.2",
  "released_on": "2026-10-13"
}
curl,日本的通胀率
curl -s -H "Authorization: Bearer $NARWHAL_API_KEY" \
  "https://api.narwhalapi.com/v1/economics/JPN/inflation"
响应
{
  "country": "JPN",
  "period": "2026-09",
  "year_over_year": "2.1",
  "month_over_month": "0.0",
  "year_to_date": "1.3",
  "released_on": "2026-10-23"
}

year_over_year 是消费者价格指数相对一年前同月的变化百分比,在最新月份 period,德国为 3.3,日本为 2.1。month_over_month 是相对上个月的变化,year_to_date 是相对 12 月的变化。released_on 是发布日期。这些值是以百分比表示的十进制字符串。

与指数交叉验证

同样的比率可以用指数重新算出来。observations 端点返回月度 CPI,下面的响应只保留了德国返回的 13 个月中的第一个月和最后一个月。

curl,德国过去 12 个月的 CPI 指数
curl -s -H "Authorization: Bearer $NARWHAL_API_KEY" \
  "https://api.narwhalapi.com/v1/economics/DEU/cpi/observations?start=2025-09&end=2026-09"
响应,已精简
{
  "country": "DEU",
  "as_of": "2026-10-13T00:00:00Z",
  "index_base": "2020=100",
  "observations": [
    {
      "period": "2025-09",
      "value": "122.6"
    },
    {
      "period": "2026-09",
      "value": "126.6"
    }
  ],
  "next_cursor": null
}

126.6 除以 122.6 等于 1.0326,所以指数在 12 个月里上涨了 3.26%,四舍五入就是 year_over_year 中的 3.3。对日本做同样的检查,由 102.2 和 100.1 得到 2.10%。

把加薪与物价对比

Narwhal 对大多数国家没有薪资或工资基准数据,所以本页只写物价这一侧。加薪幅度由你自己提供。实际变化等于一加加薪幅度除以一加通胀率,再减一。结果为正,说明薪水比一年前能买到更多东西;结果为负,说明能买到的更少。

  1. 取得加薪幅度 使用两个时期之间薪酬的百分比变化,两次要采用相同的口径,例如税前月薪。
  2. 读取通胀率 请求该国的通胀率,保留 period 和 year_over_year。
  3. 计算比值 用一加加薪幅度除以一加通胀率,减去一,再乘以 100。
  4. 报告结果 写明国家、通胀数据所属的月份以及结果的正负。
python,加薪幅度与同比通胀率的对比
import json
import os
import urllib.request
from decimal import Decimal

def get(path):
    req = urllib.request.Request(
        "https://api.narwhalapi.com" + path,
        headers={"Authorization": "Bearer " + os.environ["NARWHAL_API_KEY"]},
    )
    with urllib.request.urlopen(req, timeout=30) as r:
        return json.load(r)

def check_raise(country, raise_percent):
    latest = get(f"/v1/economics/{country}/inflation")
    period = latest["period"]
    year, month = period.split("-")
    prior = f"{int(year) - 1}-{month}"
    index = get(f"/v1/economics/{country}/cpi/observations?start={prior}&end={period}")
    values = {o["period"]: Decimal(o["value"]) for o in index["observations"]}
    from_index = (values[period] / values[prior] - 1) * 100
    inflation = Decimal(latest["year_over_year"])
    raise_ = Decimal(raise_percent)
    real = ((1 + raise_ / 100) / (1 + inflation / 100) - 1) * 100
    print(f"{country} {period}: inflation {inflation}% (from index {from_index:.2f}%), "
          f"raise {raise_}%, real change {real:+.2f}%")

check_raise("DEU", "3.0")
check_raise("JPN", "2.5")
国家月份通胀加薪实际变化
德国(DEU)2026-093.3%3.0%-0.29%
日本(JPN)2026-092.1%2.5%+0.39%

德国 3.0% 的加薪低于 3.3% 的通胀率,所以薪水损失了 0.29% 的购买力。日本 2.5% 的加薪高于 2.1%,所以购买力增加了 0.39%。脚本还会在公布的比率旁边打印用指数重新算出的比率。

这里的通胀数字是全国的总体 CPI。它衡量的是平均一篮子商品,所以不会与某个家庭实际感受到的价格变化吻合,而且只涉及价格。与通胀持平的加薪,平均而言能让购买力保持不变,但它并不能说明原来的薪水是否足够。

环比和年初至今提供了什么信息?

month_over_month 反映最近单月的变化,在物价快速波动时很有用。year_to_date 是相对上一年 12 月的变化。德国为 3.2,与 126.6 对比 2025 年 12 月指数 122.7 的结果一致。如果薪酬每年 1 月调整一次,想知道本年度的涨价已经发生了多少,就可以用它。

为什么用除法而不是减法?

薪水和物价都是复利变化,所以精确的实际变化是比值。对德国来说,3.0 减去 3.3 是 -0.30 个百分点,而用比值算出来是 -0.29%。在这样的比率下差距很小,比率越高差距越大。

应该和哪个时期的通胀率对比?

使用在加薪生效时结束的那 12 个月。通胀端点返回最新的月份;要看更早的月份,可以带上 start 和 end 调用 /v1/economics/{country}/inflation/observations,它会为每个 period 返回 year_over_year、month_over_month 和 year_to_date。例如,2026 年 7 月生效的加薪,就与 2026 年 7 月那一行对比。

薪资这一侧的数据从哪里来?

来自你自己。使用工资记录、录用通知或你信任的调查,把加薪幅度按百分比填入。API 只有价格这一侧。对加拿大来说,any-series 路由可以检索有关工资的表格,any-series 文档里有说明,本页没有使用。

这种对比能跨国使用吗?

每一次加薪都与它所在国家自己的物价、以该国货币来对比,所以各国的实际变化可以并排放在一起看。这种对比对两国的薪资水平都没有说明,也不做货币换算。如果需要各国通胀率的排名,比较各国通胀率的指南介绍了请求方式。

发布于。

后续步骤