물가 상승 반영해 과거 예산과 계약 금액을 현재 가격으로 환산하기

과거 예산이나 계약 금액을 현재 금액과 비교하는 보고서는 모두를 한 달의 물가 기준으로 환산해야 합니다. 기준월을 고르고, 물가지수를 밝히고, 결과에 표기를 붙입니다. Narwhal은 어느 달이든 소비자물가지수와 가장 최근 발표분을 반환하므로, 각 금액에 최신 지수를 곱하고 해당 금액이 속한 달의 지수로 나눕니다.

환산한 보고서가 반드시 정해야 하는 세 가지 선택

몇 년 전에 체결한 임대 계약을 올해 예산 옆에 놓는 보고서는 서로 다른 가치의 돈을 비교하는 셈입니다. 재무 기획과 계약 담당자는 모든 금액을 한 달의 물가 기준으로 환산해 이를 바로잡으며, 결과를 뒷받침할 수 있는지는 세 가지 선택에 달려 있습니다. 기준월은 모든 금액을 환산해 맞추는 달입니다. 지수는 달 사이를 오가는 데 쓰는 물가 계열입니다. 표기는 독자에게 이 둘을 알려 주는 문장입니다. API는 지수 값을 제공하고, 보고서는 선택한 내용을 밝힙니다.

관측값 엔드포인트는 한 나라의 종합 소비자물가지수를 월별로 반환합니다. 이 요청은 사무실 임대 계약이 있던 2012년 3월의 지수를 읽습니다.

curl, 임대 계약 가격이 정해진 달의 지수
curl -s -H "Authorization: Bearer $NARWHAL_API_KEY" \
  "https://api.narwhalapi.com/v1/economics/USA/cpi/observations?start=2012-03&end=2012-03"
응답
{
  "country": "USA",
  "as_of": "2026-10-14T00:00:00Z",
  "index_base": "1982-84=100",
  "observations": [
    {
      "period": "2012-03",
      "value": "229.392"
    }
  ],
  "next_cursor": null
}

start와 end에는 YYYY-MM을 넣습니다. value는 소수 문자열이고, index_base는 지수 계열의 기준 기간을 나타내며 같은 계열의 두 달 사이 비율에는 영향을 주지 않습니다.

가장 최근 발표된 달을 기준월로 쓰기

period 없이 호출한 CPI 엔드포인트는 가장 최근에 발표된 지수를 반환합니다. 그 달을 보고서 전체의 기준월로 쓰면 모든 줄이 같은 물가 기준으로 환산됩니다.

curl, 최신 지수
curl -s -H "Authorization: Bearer $NARWHAL_API_KEY" \
  "https://api.narwhalapi.com/v1/economics/USA/cpi"
응답
{
  "country": "USA",
  "period": "2026-09",
  "value": "336.940",
  "index_base": "1982-84=100",
  "released_on": "2026-10-14"
}

period는 기준월, value는 지수, released_on은 발표일입니다. 환산한 금액은 보고서를 실행한 날의 물가가 아니라 그 달의 물가 기준으로 표현됩니다. 보고서에 그렇게 밝혀 두세요.

계약과 예산 목록을 한 번에 환산하기

  1. 각 금액을 가격이 정해진 달과 함께 나열하기 보고된 연도가 아니라 그 가격이 적용된 달을 쓰세요. 계약이라면 보통 체결한 달이나 물가 연동을 적용한 달입니다.
  2. 계열을 한 번만 읽기 관측값 요청 한 번으로 전체 기간을 다룰 수 있습니다. 스크립트는 limit을 1000으로 두고 2012-01부터 2024-12까지 요청해 period를 키로 하는 딕셔너리를 만듭니다.
  3. Decimal로 곱하고 나누기 각 금액에 기준월 지수를 곱하고 그 금액이 속한 달의 지수로 나눕니다. 센트 단위 반올림은 마지막에 한 번만 합니다.
  4. 표와 함께 표기 출력하기 출력의 첫 줄에 기준월, 나라, 지수 기준을 적어 두므로, 표만 따로 떼어서 읽을 수 없습니다.
    Python, 환산 금액 표
    import json
    import os
    import urllib.request
    from decimal import Decimal, ROUND_HALF_UP
    
    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)
    
    latest = get("/v1/economics/USA/cpi")
    base_month, cpi_base = latest["period"], Decimal(latest["value"])
    series = get("/v1/economics/USA/cpi/observations?start=2012-01&end=2024-12&limit=1000")
    cpi = {o["period"]: Decimal(o["value"]) for o in series["observations"]}
    
    lines = [
        ("Office lease", "2012-03", "480000"),
        ("Software contract", "2018-06", "120000"),
        ("Equipment purchase", "2022-01", "75000"),
    ]
    print(f"All amounts in {base_month} prices, US CPI {cpi_base}, base {latest['index_base']}")
    for name, month, amount in lines:
        restated = (Decimal(amount) * cpi_base / cpi[month]).quantize(Decimal("0.01"), ROUND_HALF_UP)
        print(f"{name:20} {month}  {Decimal(amount):>10,}  index {cpi[month]}  restated {restated:>12,}")

2012년 3월의 임대 계약 480,000은 2026년 9월 물가 기준으로 705,042.90이 됩니다. 기준월 지수를 임대 계약 월 지수로 나누면 1.469이므로, 이 계열의 물가는 그 기간에 46.9% 올랐습니다. 소프트웨어 계약은 33.7%, 장비 구매는 19.8% 올랐습니다.

스크립트 출력
All amounts in 2026-09 prices, US CPI 336.940, base 1982-84=100
Office lease         2012-03     480,000  index 229.392  restated   705,042.90
Software contract    2018-06     120,000  index 251.989  restated   160,454.62
Equipment purchase   2022-01      75,000  index 281.148  restated    89,883.26

환산한 열에 표기를 붙이는 방법

항목보고서 문구
기준월2026년 9월 물가 기준, 보고서를 실행했을 때 발표되어 있던 가장 최근 달
지수미국 소비자물가지수, 종합, 기준 1982-84=100
원래 달원래 금액마다 가격이 정해진 달을 환산한 열 옆 열에 표시하기
반올림마지막에 센트 단위로 한 번만 반올림하고 그 사실을 밝히기

원래 금액과 환산 금액을 나란히 두세요. 그러면 검토자가 곱셈 한 번으로 어느 줄이든 확인할 수 있습니다.

연간 예산에는 하나로 정해진 가격 시점의 달이 없습니다. 예산이 승인된 달처럼 그해의 한 달을 골라 그 예산의 모든 줄에 적용하고, 표기에 그 달을 밝히세요. 대안은 그해 12개월 관측값의 평균이며, 어느 쪽을 쓰든 보고서에 밝혀야 합니다.

계약에는 어느 물가지수를 써야 하나요?

계약에 명시된 지수를 쓰세요. API가 반환하는 것은 한 나라의 종합 소비자물가지수입니다. 임대 계약이나 공급 계약이 근원, 지역, 업종 지수에 연동되어 있다면 환산한 수치는 계약상의 수치와 달라지므로, 보고서를 내보내기 전에 지수를 확인하세요.

한 보고서에서 여러 나라의 금액을 환산할 수 있나요?

환산은 한 번에 한 나라씩 하세요. 각 계열은 고유한 기준이 있고, 한 나라의 지수 값은 다른 나라의 물가에 대해 아무것도 말해 주지 않기 때문입니다. 결과를 한 통화로 보여 주려면, 날짜를 밝힌 환율로 환산한 금액을 별도 단계에서 환전하세요.

필요한 달이 아직 발표되지 않았다면 어떻게 되나요?

발표된 값이 없는 기간을 요청하면 코드 series_not_found와 함께 404 문제 응답이 반환됩니다. 미국의 경우, 작성 시점에 2026년 10월을 요청하면 그렇게 됩니다. CPI 엔드포인트의 period를 기준월로 쓰고 표기에 그렇게 밝히세요.

에 게시되었습니다.

다음 단계