기사에 쓸 경제지표 발표 일정과 최신 수치 찾기

뉴스룸이 API에서 필요로 하는 것은 두 가지입니다. 이번 주에 발표될 지표 캘린더와, 기사에 쓰이는 시리즈의 가장 최근 발표 수치입니다. 캘린더는 각 발표를 UTC 시각과 함께 보여 줍니다. 국가별 엔드포인트는 최신 수치를 period, released_on과 함께 반환하므로 기사에 올바른 기준 월을 쓸 수 있습니다.

기사에 쓸 최신 수치 가져오기

각 시리즈에는 국가별 엔드포인트가 있습니다. /v1/economics/{country}/inflation, /cpi, /unemployment, /gdp-growth입니다. period 매개변수를 생략하면 가장 최근 기간이 반환됩니다. 이 요청은 미국 인플레이션을 조회합니다.

curl, 미국 인플레이션 최신 수치
curl -s -H "Authorization: Bearer $NARWHAL_API_KEY" \
  "https://api.narwhalapi.com/v1/economics/USA/inflation"
응답
{
  "country": "USA",
  "period": "2026-09",
  "year_over_year": "3.7",
  "month_over_month": "0.6",
  "year_to_date": "4.0",
  "released_on": "2026-10-14"
}

이 응답에는 의미가 다른 두 날짜가 있습니다. period는 수치가 측정하는 기준 월로 2026-09, 즉 9월입니다. released_on은 수치가 발표된 날로 2026-10-14입니다. 10월에 송고하는 기사는 물가가 9월까지 1년간 3.7퍼센트 올랐다고 씁니다. 10월 발표일을 따르면 잘못된 달이 됩니다.

세 가지 변화율 필드는 서로 다른 지표입니다. year_over_year는 3.7, month_over_month는 0.6, year_to_date는 4.0이며 모두 퍼센트 단위입니다. 각각 답하는 질문이 다르므로 인용하는 지표를 문장에서 밝혀 주세요.

다른 시리즈에도 같은 호출

시계열엔드포인트반환되는 필드periodreleased_on
인플레이션/v1/economics/USA/inflationyear_over_year, month_over_month, year_to_date2026-092026-10-14
소비자물가지수/v1/economics/USA/cpivalue 336.940, 기준 index_base 1982-84=1002026-092026-10-14
실업률/v1/economics/USA/unemploymentrate 4.22026-092026-10-02
GDP 성장률/v1/economics/USA/gdp-growthyear_over_year 2.1, quarter_over_quarter 0.8322026-Q32026-10-29

GDP 성장률은 period에 분기를 쓰므로 2026-Q3은 3분기를 뜻합니다. 직전 분기 대비 성장을 쓸 때는 quarter_over_quarter를, 1년 전 같은 분기와 비교할 때는 year_over_year를 사용하세요.

새 수치를 이전 수치 옆에 두기

캘린더의 각 발표에는 values[].previous가 있으며, 새 발표와 비교되는 이전 수치입니다. 발표 당일 기사는 캘린더의 previous 값과, 발표 후 국가별 엔드포인트에서 받은 새 값을 함께 인용할 수 있습니다. 두 수치가 같은 종류가 되도록 캘린더 값의 transformation(예: year_over_year)을 확인하세요.

브리핑 만들기: 이번 주 발표와 최신 수치

이 스크립트는 캘린더에서 11월 9일부터 13일까지의 미국 일정을 가져와 각 발표를 뉴욕 시간으로 출력합니다. 그다음 인플레이션, 실업률, GDP 최신 수치를 가져와 기준 기간을 문장으로 풀어 씁니다.

  1. API 키 받기 가입에서 API 키를 받아 NARWHAL_API_KEY에 보관하세요.
  2. 이번 주 일정 나열하기 GET /v1/economics/calendar는 발표를 시간순으로 반환하지 않습니다. 스크립트는 at 시각이 있는 항목만 남겨 정렬한 뒤 발표 기관의 timezone으로 변환합니다.
  3. 각 최신 수치 가져오기 시리즈마다 한 번씩 호출합니다. say 함수는 2026-09를 2026년 9월로, 2026-Q3를 2026년 3분기로 바꾸므로 문장에는 period가 쓰이고 released_on의 달은 쓰이지 않습니다.
    Python, 기사용 주간 브리핑
    import os
    from datetime import datetime
    from zoneinfo import ZoneInfo
    import requests
    
    API = "https://api.narwhalapi.com"
    HEADERS = {"Authorization": f"Bearer {os.environ['NARWHAL_API_KEY']}"}
    MONTHS = ["January", "February", "March", "April", "May", "June", "July",
              "August", "September", "October", "November", "December"]
    QUARTERS = {"Q1": "first", "Q2": "second", "Q3": "third", "Q4": "fourth"}
    
    
    def get(path, **params):
        r = requests.get(f"{API}/v1/economics/{path}", headers=HEADERS, params=params, timeout=10)
        r.raise_for_status()
        return r.json()
    
    
    def say(period):
        year, part = period.split("-")
        if part in QUARTERS:
            return f"the {QUARTERS[part]} quarter of {year}"
        return f"{MONTHS[int(part) - 1]} {year}"
    
    
    week = get("calendar", countries="USA", start_date="2026-11-09", end_date="2026-11-13", limit=100)
    for x in sorted((x for x in week["releases"] if "at" in x), key=lambda x: x["at"]):
        local = datetime.fromisoformat(x["at"].replace("Z", "+00:00")).astimezone(ZoneInfo(x["timezone"]))
        print(local.strftime("%a %d %b %H:%M"), x["name"], "|", x.get("period", "no period"))
    
    for series in ("inflation", "unemployment", "gdp-growth"):
        d = get(f"USA/{series}")
        figures = {k: v for k, v in d.items() if k not in ("country", "period", "released_on")}
        print(series, figures, "for", say(d["period"]), "released", d["released_on"])
스크립트 출력
Mon 09 Nov 10:00 Wholesale trade | 2026-09
Tue 10 Nov 08:30 Wages and earnings | 2026-10
Tue 10 Nov 08:30 Consumer prices | 2026-10
Thu 12 Nov 08:30 Jobless claims | 2026-11-07
Thu 12 Nov 12:00 Petroleum inventories | no period
Thu 12 Nov 14:00 Public finances | 2026-10
Fri 13 Nov 08:30 Producer prices | 2026-10
inflation {'year_over_year': '3.7', 'month_over_month': '0.6', 'year_to_date': '4.0'} for September 2026 released 2026-10-14
unemployment {'rate': '4.2'} for September 2026 released 2026-10-02
gdp-growth {'year_over_year': '2.1', 'quarter_over_quarter': '0.832'} for the third quarter of 2026 released 2026-10-29

11월 10일 화요일의 소비자물가 발표는 2026-10을 다루므로 10월 수치입니다. 발표 전까지 가장 최근 인플레이션 수치는 released_on이 2026-10-14인 9월 수치입니다. 발표 후에는 요청을 바꾸지 않아도 엔드포인트가 새 기간을 반환합니다.

기준 기간을 정확하게 쓰기

최신 수치period표현 방법
인플레이션 3.7퍼센트2026-09물가는 9월까지 1년간 3.7퍼센트 올랐다
실업률 4.2퍼센트2026-099월 실업률은 4.2퍼센트였다
GDP 성장률 2.1퍼센트2026-Q33분기 경제는 전년 동기 대비 2.1퍼센트 성장했다
  • 월이나 분기는 period에서 가져오고 released_on에서는 가져오지 마세요. 인플레이션 수치는 10월에 나왔지만 9월을 설명합니다.
  • 어떤 비교를 인용하는지 밝혀 주세요. year_over_year, month_over_month, year_to_date, quarter_over_quarter 중 하나이며 필드 이름이 곧 라벨입니다.
  • 해당 날짜에 발표된 수치라는 식의 문장에는 released_on을 사용하면 독자가 수치가 얼마나 최신인지 알 수 있습니다.

캘린더의 기간이 최신 수치와 다른 이유는 무엇인가요?

캘린더의 period는 해당 발표가 다루게 될 달이고, 최신 수치는 이미 발표된 가장 최근 발표입니다. 브리핑 출력에서 캘린더는 소비자물가를 2026-10으로 나열하지만 인플레이션 엔드포인트는 2026-09를 반환합니다. 어떤 수치가 가장 최신이라고 쓰기 전에 둘 다 확인하세요.

inflation과 cpi 엔드포인트는 어떻게 다른가요?

/inflation은 퍼센트 단위의 변화율을 반환합니다. /cpi는 지수 수준을 value에, 기준을 index_base에 반환합니다. 헤드라인에는 변화율을 인용하고, 지수 수준은 기사가 지수 자체를 다룰 때만 인용하세요.

모든 국가가 같은 종류의 기간으로 실업률을 발표하나요?

아니요. 미국의 실업률은 월 단위인 2026-09로 반환됐지만 독일은 분기 단위인 2026-Q2로 반환됐습니다. 한 문장에서 수치를 비교하기 전에 국가마다 period를 확인하세요.

에 게시되었습니다.

다음 단계