본문 바로가기

방법론 · 버전 1.5

수치를 만드는 규칙 28개와 점검 26개

방법론 1.5, 2026-11-02 · 이 쪽의 규칙별 효과는 릴리스 20261102.2에서 코드가 기록한 값이다

규칙 문장과 코드는 한 레지스트리(config/method.yaml)에서 나온다. 규칙에 구현 함수나 테스트가 없거나, 함수가 등록되지 않은 규칙을 가리키면 빌드가 멈춘다. 규칙이 바뀌면 방법론 버전이 오르고, 모든 릴리스와 인용이 그 버전을 기록한다.

방법론 인용

datasteg (2026), 「money-flow 방법론」, 버전 1.5, datasteg money-flow, 2026년 11월 2일, https://money-flow.datasteg.com/ko/method?v=1.5.

PDF인쇄판

규칙

R1단위

모든 포지션은 미국 달러 billion 단위로 계산한다(1 billion은 10억이다). 한국어 화면에는 억 달러 단위로 보인다. 발표기관이 환산한 경우(BIS, IMF, TIC) 그 달러 값을 쓴다. 각국 자료는 BIS 환율로 환산한다. 잔액은 기말 환율, 기간 평균은 평균 환율을 쓴다. 쓴 환율은 출처 정보에 밝힌다. 다른 나라 통화를 쓰는 경제(달러를 쓰는 에콰도르, 엘살바도르, 동티모르, 파나마, 유로를 쓰는 코소보, 안도라, 몬테네그로, 산마리노, CFA 프랑을 쓰는 기니비사우, 셰켈을 쓰는 요르단강 서안·가자)는 그 통화의 환율로 환산하고, 기간이 정해진 체제(2009년 2월부터 2019년 6월까지 달러를 쓴 짐바브웨)도 같다. 출처가 나중에 바꾼 단위로 앞부분이 적힌 시계열(2015년 이전 옛 레온 단위의 시에라리온 광의통화)은 정해 둔 배율로 먼저 고친다. 환율이 없는 값은 채워 넣지 않고 뺀다. 방법론 페이지에 어느 경제의 어느 달인지 밝힌다. IMF의 통화동맹 집계(동카리브 통화동맹, 서아프리카 경제통화동맹)는 그리지 않고 따로 적는다.

이유: 출처를 가로지르는 합계에는 단위가 하나여야 한다. 잔액을 평균 환율로 바꾸면 값이 틀어진다. 2026년 10월 31일 검증에서 환율 없는 값 6,331개 가운데 짐바브웨의 539개월은 달러 사용기에 들었고, 요르단강 서안·가자의 1,206개월은 다른 코드 아래 셰켈 환율이 있었다.

  • 릴리스 20261102.2: 551 converted at a period-average rate
  • 릴리스 20261102.2: 293,522 converted at a period-end rate
  • 릴리스 20261102.2: 9,370 converted at one, a dollarised economy or a dollar regime (currency map, dated regimes)
  • 릴리스 20261102.2: 36 of which BRA: no BIS rate for its currency, 1950-01-31 to 1952-12-31
  • 릴리스 20261102.2: 365 of which GIN: no BIS rate for its currency, 2021-08-31 to 2025-12-31
  • 릴리스 20261102.2: 28 of which LBR: no BIS rate for its currency, 2025-11-30 to 2026-05-31
  • 릴리스 20261102.2: 56 of which MOZ: no BIS rate for its currency, 2025-11-30 to 2026-06-30
  • 릴리스 20261102.2: 30 of which MWI: no BIS rate for its currency, 2024-12-31 to 2025-04-30
  • 릴리스 20261102.2: 20 of which PNG: no BIS rate for its currency, 2026-03-31 to 2026-07-31
  • 릴리스 20261102.2: 70 of which SLE: no BIS rate for its currency, 2025-07-31 to 2026-04-30
  • 릴리스 20261102.2: 372 of which SOM: no BIS rate for its currency, 2018-01-31 to 2026-03-31
  • 릴리스 20261102.2: 91 of which SSD: no BIS rate for its currency, 2025-08-31 to 2026-08-31
  • 릴리스 20261102.2: 36 of which TZA: no BIS rate for its currency, 2025-07-31 to 2026-06-30
  • 릴리스 20261102.2: 210 of which ZWE: no BIS rate for its currency, 2024-03-31 to 2026-08-31
  • 릴리스 20261102.2: 3,234 of which an IMF currency-union aggregate (ECCU, WAEMU: never drawn)
  • 릴리스 20261102.2: 38 of which economies with fewer than 20 such values (the newest months, before the BIS rate file reaches them)
  • 릴리스 20261102.2: 4,586 stock values without a rate, left out

코드: scripts/sitebuild/rules.py · r1_units · 테스트: test_r1_stock_at_period_end_average_at_average, test_r1_dollarised_economy_converts_at_one, test_r1_dated_currency_regime

R2총계만

리본은 총계 행만 읽는다. 전 부문, 전 통화, 경로마다 한 상품이다. 세부 항목은 툴팁과 표에만 나오고 합계에는 들어가지 않는다.

이유: links 표에는 총계 옆에 세부 행이 함께 있다.

  • 릴리스 20261102.2: 1,661,960 breakdown rows left out of sums (sector or currency)

코드: scripts/sitebuild/rules.py · r2_totals_only · 테스트: test_r2_takes_total_not_breakdowns

R3기간마다 한 주기

같은 12월에 반기 값과 연간 값이 함께 있으면 반기 값을 쓴다. 두 값이 다르면 표시한다.

이유: CPIS(PIP)는 12월마다 반기(S)와 연간(A) 행을 함께 싣는다.

  • 릴리스 20261102.2: 882,327 annual rows dropped where a half-yearly row exists
  • 릴리스 20261102.2: 0 pairs flagged (annual and half-yearly differ)

코드: scripts/sitebuild/rules.py · r3_one_frequency · 테스트: test_r3_prefers_half_yearly

R4짝마다 한 보고

직접투자는 짝마다 보고 주체 하나를 전 기간에 걸쳐 쓴다. 보고 연도가 가장 많은 쪽을 고르고, 같으면 투자 대상국의 자체 보고, 투자국의 보고, 상대국 자료로 만든 미러 순이다. 보고 주체를 표시하고, 다른 쪽 보고가 있으면 툴팁에 그 값을 보인다. 음의 포지션(역투자, 상계된 계열사 간 채무)은 보고된 대로 두고 사다리에 음의 부분으로 넣는다. 비공개 셀은 IMF 파일에 값이 없어 보고하지 않은 해와 구별되지 않는다.

이유: DIP에는 짝마다 보고가 최대 셋 있다. 모두 더하면 같은 포지션을 세 번까지 센다. 미러는 상대국 보고의 복사본이다(2026년 10월 29일 기준 329,399개 짝에서 차이 0). 해마다 고르면 2,027개 짝이 보고 주체 사이를 오가며 50% 넘게 뛰었다. 투자 대상국 보고보다 가장 긴 시계열을 고르는 까닭은, 보고 주체가 바뀌지 않는 시계열이 몇 해의 투자 대상국 평가보다 값지기 때문이다. 양쪽이 보고한 11,051개 짝 가운데 3,869개가 그래서 투자국 보고를 쓴다(2026년 10월 31일).

  • 릴리스 20261102.2: 684,911 direct investment pair reports dropped (the pair's chosen reporter is another)
  • 릴리스 20261102.2: 475,839 pair-periods with a second report kept as context (alt)
  • 릴리스 20261102.2: 15,449 pairs drawn from the investor's report (the host reports fewer years or none)

코드: scripts/sitebuild/rules.py · r4_one_report_per_pair · 테스트: test_r4_takes_host_report, test_r4_one_reporter_per_series, test_r4_negative_position_handling

R5한 상품은 한 경로로

은행 경로는 BIS LBS의 대출과 예금만 쓴다. 다른 상품은 나누어 두고 은행 리본에 넣지 않는다. 은행이 보유한 채권은 증권투자(채권)에 남기고 참고로 보인다. 다른 어느 경로에도 없는 파생상품·기타는 별도 풀로 그리고 IIP 파생상품 항목과 견준다. 상대국별 상품 구분을 내지 않는 보고국(일본, 독일)은 미확인 노드에 이름을 적고 추정하지 않으며, 포괄률 패널에 전체 보고국 합계 가운데 그 비중을 보인다(태국 채권의 26%, 영국의 28%, 2026년 10월 31일). 신호판이 읽는 BIS 전체 보고국 집계(R17)에는 이미 상품별로 배분돼 있어 A1과 B1에는 들어 있다.

이유: BIS 은행 채권은 모든 상품을 포함하고, CPIS가 채권을 다시 센다. 세계 전체로 은행의 파생상품·기타 7.8조 달러가 어느 경로에도 없었다(2026년 10월 29일).

  • 릴리스 20261102.2: 478,267 LBS all-instrument rows kept as context, out of the bank ribbon
  • 릴리스 20261102.2: 25,534 LBS debt-securities rows kept as context (counted in portfolio debt)
  • 릴리스 20261102.2: 24,634 LBS derivatives-and-other rows drawn as their own pool, never in the bank ribbon

코드: scripts/sitebuild/rules.py · r5_bank_loans_and_deposits · 테스트: test_r5_bank_channel_is_loans_and_deposits, test_r5_three_way_split, test_r5_no_split_reporters_disclosed

R6전체와의 차이

사다리는 경로별 총계와 맞아떨어진다. 짝 자료로 확인되지 않는 부분은 '미확인' 노드가 되고, 확인된 비율을 포괄률로 보인다. IMF가 비공개 집단으로 내는 준비자산 운용기관·국제기구(SEFER, SSIO) 보유분은 확인된 보유자로서 노드 하나로 그리고 순위에는 넣지 않는다. 직접투자 총계는 DIP에 그 해가 있으면 DIP 자체의 전체 투자국 합계를 써서 부분과 총계의 평가 기준을 맞춘다. IIP 항목은 국경에 둔다. 짝 자료가 총계를 넘으면 초과분을 그대로 보이고 표시하며, 포괄률은 100%에서 자른다.

이유: 보고하지 않는 보유국이 있고, 일부 BIS 보고국은 전체 국가 합계만 낸다. 세계 '미확인' 22.5조 달러 가운데 5.0조 달러는 준비자산 운용기관 보유분이었다. DIP는 큰 투자 대상국에서 장부가치라(미국 5,708 대 IIP 13,060) IIP와 견주면 평가 차이가 빠진 투자국처럼 보였다(2026년 10월 29일).

코드: scripts/sitebuild/rules.py · r6_gap_to_total · 테스트: test_r6_gap_and_excess, test_r6_reserves_group_and_cap

R7기간

수치는 같은 기간 안에서만 더한다. 정렬 설정(기본값)에서는 증권과 은행을 둘이 공유하는 가장 최근 기간에 맞춘다. 연간 자료인 직접투자는 그 기간 이전의 자기 최신 연도에 두고 연도를 표시하며, 다른 경로와 더하지 않는다. 최신 설정에서는 경로마다 자기 최신 기간을 쓰고 기간을 넘는 합계는 그리지 않는다. IIP도 정렬에 들어간다. 국경 총계는 정렬 기간 자체의 IIP 항목이며, IIP가 연간인 경제는 연말에 맞춘다. 최신 설정에서는 최신 증권투자 기간의 IIP 항목을 보이고 없으면 비운다.

이유: 은행은 분기, CPIS는 반기, DIP는 연간 자료다. DIP 연도가 정렬 분기와 같아지기를 기다리느라 324개 사다리 가운데 289개에서 직접투자 리본이 나뉘지 않았다(2026년 10월 29일).

코드: scripts/sitebuild/rules.py · r7_periods · 테스트: test_r7_aligned_shares_one_period, test_r7_fdi_own_period, test_r7_iip_border_period

R8흐름

발표된 흐름(BIS 조정 변동, TIC 순매입, BOP 거래, 펀드 흐름)은 발표된 그대로 쓴다. 두 시점 포지션의 차이로 구한 흐름에는 '평가 변동과 단절 포함'을 붙인다. 두 종류는 서로 더하지 않는다.

이유: 포지션 변화에는 거래와 함께 가격·환율 변동이 섞인다.

코드: scripts/sitebuild/rules.py · r8_flow_kinds · 테스트: test_r8_never_adds_published_and_derived

R9층위

본원통화(0층: 중앙은행 대차대조표, 현금, 지급준비금)와 은행 통화(1층: 예금, 출처마다 정한 광의통화)는 누구에게 무엇이 돈인지의 층위이지 더하는 항목이 아니다. 지급준비금은 은행 통화의 뒷받침 안에 있으므로 층을 나란히 그리고 어떤 화면도 합치지 않는다. 2층(L, MMF, 스테이블코인)은 참고 정보이며 이와 더하지 않는다. 국경 간 포지션은 창출된 돈에 더하지 않는다. 국경 간 은행 대출은 대출 은행에 예금을 만들고(역외 통화 창출), 채권시장과 비은행 대출은 있는 돈을 옮긴다. 은행 통화는 발표기관의 광의통화(IMF), M2(미국, 한국), M2와 M3(유로지역)이며 타일마다 이름을 적는다.

이유: 은행 대출은 돈을 만들고, 채권시장과 비은행 대출은 돈을 옮긴다. 본원통화와 예금은 겹치므로(미국 지급준비금만 약 3조 달러) 더하면 이중 계산이 된다.

코드: scripts/sitebuild/rules.py · r9_layers · 테스트: test_r9_layers_not_added, test_r9_layers_not_summed_anywhere

R10기준

기본은 거주지 기준이다. 국적 기준은 은행 경로(BIS CBS)에만 적용하고, 다른 경로는 거주지 기준임을 밝힌다.

이유: 금융중심지가 대외 포지션의 약 4분의 1을 차지한다. 국적 기준은 포지션을 모회사 국가로 옮겨 잡는다.

  • 릴리스 20261102.2: 215,815 ultimate-risk rows not drawn

코드: scripts/sitebuild/rules.py · r10_basis · 테스트: test_r10_nationality_only_bank

R11집계 단위

출처의 집계 단위(BIS 전체 보고국, 유로지역, TIC 총계)는 총계로만 쓰고 그 구성국과 더하지 않는다.

이유: 표에는 집계와 구성국이 나란히 있다.

  • 릴리스 20261102.2: 416,122 rows whose counterparty is an aggregate (used as totals, never as parts)

코드: scripts/sitebuild/rules.py · r11_aggregates · 테스트: test_r11_aggregate_not_a_holder

R12중복

키와 값이 같은 행은 하나만 남긴다. 키가 같고 값이 다른 행이 있으면 빌드를 멈춘다.

이유: 일부 원자료 파일은 같은 시계열을 두 번 싣는다(IMF IRFCL).

  • 릴리스 20261102.2: 0 border_flows: exact repeats written once
  • 릴리스 20261102.2: 0 border_flows: keys with conflicting values
  • 릴리스 20261102.2: 0 links: exact repeats written once
  • 릴리스 20261102.2: 0 links_0: keys with conflicting values
  • 릴리스 20261102.2: 0 signals: exact repeats written once
  • 릴리스 20261102.2: 0 signals: keys with conflicting values
  • 릴리스 20261102.2: 0 stocks: exact repeats written once
  • 릴리스 20261102.2: 0 stocks: keys with conflicting values
  • 릴리스 20261102.2: 0 totals: exact repeats written once
  • 릴리스 20261102.2: 0 totals: keys with conflicting values

코드: scripts/sitebuild/rules.py · r12_duplicates · 테스트: test_r12_exact_repeat_dropped_conflict_stops

R13정밀도

전체 정밀도로 계산하고 표시할 때만 반올림한다. 금액은 억 달러 단위 정수(영문은 0.1 bn), 비율은 0.1%다. 합계는 반올림 전에 구하므로 표의 행 합과 합계가 반올림만큼 다를 수 있으며, 표에 그렇게 밝힌다. 브라우저는 더하지 않는다.

이유: 합계가 표시 반올림에 좌우되면 안 된다.

코드: scripts/sitebuild/rules.py · r13_precision · 테스트: test_r13_totals_before_rounding

R14상업 자료 미사용

사이트의 모든 수치는 공식 통계나 공개 자료에서 나온다. 상업 자료(펀드 자금흐름·시장 데이터 공급사)는 집계치로도 싣지 않으며, 검증은 공개 파일마다 공급사 이름과 펀드 단위 필드를 찾는다. 공급사 집계치는 2026년 10월 29일부터 11월 1일까지 보였다가 내렸다.

이유: 2026년 11월 1일 결정. datasteg 사이트에는 상업 자료를 쓰지 않고, 파일은 작업 컴퓨터에만 둔다.

코드: scripts/sitebuild/rules.py · r14_no_commercial_data · 테스트: test_r14_no_commercial_data

R15수정

릴리스는 빌드 시점에 각 자료의 최신 판을 쓴다. 표시값은 출처의 판이 바뀔 때만 바뀐다.

이유: 발표기관은 과거 기간을 수정한다. 2025~26년 IIP는 잠정치다.

코드: scripts/sitebuild/rules.py · r15_revisions · 테스트: test_r15_change_needs_new_vintage

R16격리

월·분기·연간 잔액 관측치는 원자료 통화 기준으로 직전 값보다 10배 넘게 움직이면 심사한다. 두 기간 안에 옛 수준으로 돌아오는 변동(급등락)은 빼고 빈자리를 표시한다. 비율이 10의 거듭제곱이면(원자료의 단위 오류) 새 수준의 값을 모두 그 거듭제곱으로 되돌려 앞 수준에 맞추므로 시계열이 멈추지 않고 이어진다. 앞부분을 믿되, 앞부분이 틀린 경우는 이 규칙 전에 정해 둔 단위 보정(R1)으로 고친다. 새 수준이 불가능하거나 비현실적이면(비거주자 채권·채무가 그 일부인 그쪽 IIP 총계를 초과) 그 값과 같은 수준의 뒤 값을 모두 빼서 시계열이 튀지 않고 멈추게 한다. 실제 변동은 남긴다. 점검 V13은 모든 구간을 원값과 함께 보이고, 정해 둔 화폐 단위 변경일(config/redenominations.csv)의 한 달 안에 시작하는 구간을 표시한다. 출처가 환산을 멈추면 그런 모양이 된다.

이유: 릴리스 20261029.2에는 포르투갈 은행의 비거주자 채권이 100만 배, 스위스 중앙은행의 채무가 218배, 우루과이 본원통화가 1,000배로 실려 있었다. IMF 파일의 오류를 경고만 하는 점검이 그대로 통과시켰다(docs/DATA-AUDIT.md F7). 단위 오류를 빼기만 하니 우루과이 본원통화가 2018년 9월에서 영영 멈췄고(94개월) 시에라리온 광의통화는 틀린 쪽이 남았다. 2026년 10월 31일 검증에서 구간 가운데 화폐 단위 변경은 없었다. IMF 파일은 환산돼 있다.

  • 릴리스 20261102.2: 56 observations quarantined as source errors (spikes, implausible levels)
  • 릴리스 20261102.2: 98 observations rescaled by a power of ten (unit errors in the source)
  • 릴리스 20261102.2: 15 series affected

코드: scripts/sitebuild/rules.py · r16_quarantine · 테스트: test_r16_quarantine_spike_unit_and_bound, test_r16_keeps_real_moves, test_r16_unit_error_rescaled_not_dropped, test_r16_redenomination_guard

R17신호판 지표

차입 경제를 그 경제 쪽에서 읽는다. 점수에 넣는 노출: A1은 비은행 외화신용을 GDP로 나눈 값이며 차입자 거주지 기준이다. 거주 비은행에 대한 미 달러·유로·엔화 표시 국경 간 대출·예금(BIS LBS)에, 그 경제가 LBS에 보고하는 경우 국내 은행의 거주 비은행에 대한 외화 채권(국내 포지션, 전체 외화, 전체 상품. 부문 구분이 있는 유일한 공개 셀이며 신호판 36곳 중 26곳이 보고하고 나머지는 표시한다)과 같은 통화의 거주 비은행 발행 국제채권(BIS DSS 거주지 기준)을 더하고 자국 통화는 뺀다. 분모는 BIS 총신용에서 구한 4분기 GDP이며 최신 분기는 직전 분기 값을 쓴다. A2는 잔존만기 1년 이하 BIS CBS 국제 은행채권(직접 상대방, 전체 보고 은행)을 순준비자산으로 나눈 값이다. 순준비자산은 IMF IRFCL 공식 준비자산(I부)에 1년 안의 예정된 순유출(II부: 만기가 오는 선물환·스와프, 예정된 채무 상환)을 더한 분기 말 월 값이며, 총준비자산의 10분의 1 아래로는 내리지 않는다(튀르키예의 순준비자산은 2023년 2분기에 0 아래였다. 하한에 걸린 분기는 표시한다). 준비자산이 외화 유동성의 마지막 보루인 경제에만 점수로 넣는다. 유로 회원국, 준비통화 발행국(일본, 영국), 연준 상설 무제한 스와프 경제(캐나다)는 넣지 않는다. 완충: 순대외금융자산/GDP(IMF IIP)와 4분기 경상수지/GDP(IMF BOP). 분기 자료가 있으면 그것을, 없으면 4분기 이내의 최신 연간 값을 쓴다. 보이되 점수에 넣지 않는 것: 총준비자산 기준 A2, 발행자 국적 기준 A1(국경 간 거주지 기준 값보다 GDP의 5%p 이상 크거나 두 배이면 역외 발행 표시), A3(국적 기준 국제채권 / 그것과 LBS 국경 간 대출·예금의 합), 순대외채무(IIP 채무상품 부채 − 준비자산을 포함한 채무상품 자산)/GDP. 흐름: B1은 국경 간 대출·예금 전체 부문·전체 통화의 환율·단절 조정 변동(은행 간 자금을 포함한다. 2008년 한국의 경로였다), B2는 국적 기준 국제채권 순발행이다. 자금흐름 점수는 (B1+B2)를 직전 분기 두 잔액의 합으로 나누고 4를 곱한 백분율이며 부호를 살린다. 0 아래는 비거주 은행과 채권 보유자가 채권을 줄인 것(채권자 이탈)이지, 거주자의 자산 이동까지 포함하는 국제수지의 순유출이 아니다. B2와 그 잔액이 국적 기준인 까닭은 신흥국 기업이 역외 계열사로 발행하기 때문이고, B1과 그 잔액이 LBS 거주지 기준인 까닭은 조정 변동이 거기에만 있기 때문이다. 흐름마다 자기 잔액으로 잰다.

이유: 1.2는 기준을 섞었고(국적 기준 채권을 국내 GDP로 나눠, 달러 수입으로 갚는 미국 금융 자회사를 모회사 본국 GDP에 셌다), 검증과 방향이 어긋나는 채권 비중을 점수로 넣었으며, 통화동맹 안에서 단기 은행부채를 국가 준비자산과 견줬고, 완충이 없었다. 그래서 경상흑자를 내는 순채권국이 1위가 됐다. 거주지 기준이면 분자와 GDP의 범위가 같다. 완충은 IMF 자신의 대외부문 지표이며 자료 저장소에 이미 있었다. 거주지·국적 기준 A1의 검증 결과는 같았다(docs/methodology/vulnerability-v1.3.md). 1.4는 2026년 10월 31일 검증 뒤의 개정이다. 총준비자산은 튀르키예와 아르헨티나의 처지를 가렸고(최신 분기 예정된 유출이 총준비자산의 40%와 32%, 위기 시점에는 순준비자산이 0 아래), BIS 세계 유동성 정의의 외화신용에는 LBS가 이미 싣고 있던 국내 외화대출이 들어간다(튀르키예의 A1은 이를 더하면 두 배다). 둘 다 미러에 있었다(docs/methodology/vulnerability-v1.4.md).

  • 릴리스 20261102.2: 36 economies drawn in the newest quarter
  • 릴리스 20261102.2: 0 economies dropped in the newest quarter (a component missing)

코드: scripts/sitebuild/rules.py · r17_indicators · 테스트: test_r17_indicators_and_drop_reason, test_r17_own_currency_not_foreign, test_r17_residence_buffers_and_a2_scope, test_r17_a2_uses_net_reserves, test_r17_a1_includes_local_fx_credit, test_r17_flow_components_share_basis, test_r17_offshore_gap_flag, test_r17_a1_break_marker_on_adoption

R18취약성 점수

점수 = ½ × 노출 + ½ × 완충 약점, 0–100. 노출은 점수에 넣는 노출 지표(A1, 그리고 넣는 경우 A2) 신호의 평균이다. 신호마다 ½ × 수준 + ½ × 자기 과거다. 수준: 이 분기까지 관측된 신호판 모든 경제·분기(전 경제를 모은 것) 가운데 이 값 이하인 비율. 자기 과거: z = (값 − 그 경제 자신의 중앙값) / max(1.4826 × MAD, 하한). 2000년(또는 첫 분기)부터 이 분기까지의 분기로 재며, ±3에서 잘라 0–100으로 옮긴다(50 = 자기 중앙값). 하한은 A1이 GDP의 1%p, A2가 준비자산의 10%p다. 좁은 이력에서 작은 움직임이 극단값이 되지 않는다. 완충 약점: 순대외금융자산/GDP와 경상수지/GDP 각각의 100 − 수준을, 그 분기에 공표된 것끼리 평균한다. 완충은 수준으로만 읽는다. 검증에서 완충의 자기 과거는 정보가 없었고, IMF의 대외부문 평가도 완충의 수준을 읽는다. A2 모음에는 점수에 넣는 A2만 든다. 유로 회원국, 일본, 영국, 캐나다의 A2는 누구의 순위도 정하지 않는다. 지표는 8개 분기, 모음은 40개 관측치가 쌓여야 쓴다. 창은 모두 누적이다. 과거 분기의 점수는 그 분기까지의 자료만 쓴다(자기 것이든 다른 경제 것이든). 점수는 순위가 아니다. 자금흐름 점수는 변환하지 않는다.

이유: 1.2는 지표마다 그 경제 자신의 과거와만 비교했다. 크기를 무시했고(한국과 이탈리아는 A2가 거의 같았지만 백분위는 97과 6이었다), 조용하고 좁은 이력은 작은 움직임을 극단으로 밀었으며, 점수는 충격 사례와 평온한 분기를 우연보다 낫게 가르지 못했다(이름 붙은 27개 사례에서 ROC 곡선 아래 면적 0.51, 기계적 통화 폭락 시점에 대해 0.45). 다른 경제와 비교한 수준, 하한 있는 자기 과거, 완충을 함께 쓰니 0.67과 0.60으로, 시점 기준으로 시험한 12개 후보 가운데 가장 좋았다. 후보 전부와 결과는 결정 메모에 있다.

코드: scripts/sitebuild/rules.py · r18_signals · 테스트: test_r18_robust_z_floor, test_r18_level_signal_pooled, test_r18_score_arithmetic, test_r18_no_look_ahead, test_r18_snapshot_2026q2, test_r18_buffer_uses_configured_measure, test_r18_pool_excludes_unscored_a2

R19신호판의 경제

BIS 총신용에 GDP 분모가 있는 모든 경제다. 다만 미국(중심축이지 이 의미의 차입국이 아니다), BIS 역외 금융중심지(홍콩, 싱가포르), 이미 표시한 펀드 소재지(룩셈부르크, 아일랜드, 네덜란드, 스위스), 유로지역 집계(회원국을 따로 보인다)는 뺀다. 유로는 도입한 날부터 회원국 자신의 통화로 본다. 일본과 영국은 준비통화를 발행하고 캐나다는 연준 상설 무제한 스와프가 있다. 이들은 신호판에 있되 A2는 보이기만 하고 점수에 넣지 않는다(R17). 점수에 넣는 요소, 완충 하나, 두 흐름 중 하나라도 없는 경제·분기는 그리지 않고 이유를 기록한다(V18). 그래서 신호판은 36개 경제, 곧 BIS 총신용이 다루는 선진국과 큰 신흥국이다. 프런티어 차입국(이집트, 파키스탄, 스리랑카, 가나, 케냐)은 밖에 있다. 펀드 소재지 제외는 감사의 FD 표시(R10)를 따른다. 결제 중심지인 벨기에는 남는다. 유로 도입일은 config/economies.csv에서 온다(크로아티아 2023-01-01, 불가리아 2026-01-01). 신호판 파일은 회원국마다 그 날을 적어 페이지가 A1의 단절을 표시할 수 있게 한다.

이유: IMF WEO는 자료 저장소에 없다. BIS 총신용은 43개 경제의 분기 GDP를 지표와 같은 출처 계열에서 준다.

  • 릴리스 20261102.2: 36 economies on the board
  • 릴리스 20261102.2: 8 economies with a GDP denominator left out (hub, offshore centre, fund domicile, aggregate)

코드: scripts/sitebuild/rules.py · r19_economy_set · 테스트: test_r19_exclusions, test_r19_euro_adoption_dates

R20맥박과 변화는 한 번만

세계 맥박과 변화 목록은 릴리스를 만들 때 한 번만 계산한다. 릴리스에 담긴 신호판 이력에서 구해 파일(world/global의 pulse, changes/global)로 낸다. 어떤 페이지도, 뒤에서 읽는 어떤 사이트도 다시 계산하지 않는다. money-flow든 global-network든 기사든 같은 릴리스를 보는 독자는 같은 타일과 같은 목록을 본다. 변화 목록은 신호판의 최신 분기를 직전 분기와 경제별로 견준다. 위험 구석(점수 60 이상에 채권자 이탈, 곧 자금흐름 0 미만)에 들어오거나 나간 경제, 자금흐름 점수의 부호가 바뀐 경제(새 분기의 B1·B2와 함께), A2가 순준비자산의 100%를 넘나든 경제(기준과 함께), 점수가 10점 넘게 움직인 경제를 적는다. 값은 신호판이 낸 열 그대로라 목록과 신호판이 어긋날 수 없다.

이유: 2026년 11월 2일까지 global-network가 money-flow 파일에서 맥박과 변화를 다시 계산했다(개편 계획 WP1). 같은 릴리스를 두고 두 사이트가 다른 말을 할 수 있었고, 한쪽에서 반올림이나 기준을 바꿔도 다른 쪽에는 드러나지 않았다.

  • 릴리스 20261102.2: 15 changes listed (newest board quarter against the one before)

코드: scripts/sitebuild/rules.py · r20_changes · 테스트: test_r20_changes_kinds, test_r20_changes_published_once

R21대출자 하나를 끊으면

발표된 수치로 하는 1차 계산이며 신호판의 모든 경제에 대해 BIS 최신 분기에 한다. 그 경제에 대한 전체 보고국 대출·예금 채권(BIS LBS, 거주지 기준, R5가 은행 경로로 정한 대출·예금) 가운데 보고 은행 체계 각각의 비중을 전체 보고국 합계 대비 백분율로 구한다. 0.05 billion 달러 미만을 보유한 보고국은 빼고, BIS 집계는 대출자로 세지 않는다(R11). 어느 대출자가 채권의 일부를 끊을 때의 손실은 끊는 비율 × 대출자 비중 × 은행 채권이며 단위는 10억 달러다. 이를 그 경제의 순준비자산, 곧 신호판 A2의 분모(R17. 신호판에 없으면 비운다)와 견준다. 다른 것은 움직이지 않는다. 가격도, 대체 대출자도, 2차 효과도 없다. 릴리스에는 비중, 채권, 순준비자산을 싣고 브라우저는 고른 비율을 곱하기만 한다.

이유: 대출자 끊기 시나리오(S4)는 2026년 11월 2일까지 global-network에서 money-flow 자료만으로 돌아갔다. 돈 쪽의 셈법이라 은행 행렬 옆이 제자리다(개편 계획 WP4). 양자 합계가 아니라 전체 보고국 합계 대비 비중을 쓰므로, 대출자가 대부분 미배분인 경제는 부풀린 비중이 아니라 작은 비중으로 보인다.

  • 릴리스 20261102.2: 36 borrowing economies with lender shares
  • 릴리스 20261102.2: 623 lender positions listed

코드: scripts/sitebuild/rules.py · r21_lender_cut · 테스트: test_r21_lender_cut_shares_and_loss

R22국가 재정 1. 국가채무 수준

일반정부 총부채를 GDP로 나눈 값이다. IMF 세계경제전망(WEO, GGXWDG_NGDP) 최신 판, 1990년부터 해마다 한 값이다. GDP의 90% 이상이면 켜진다. 페이지에서 30부터 200까지 5 단위로 바꿀 수 있다. 기준값은 관행(라인하트와 로고프로 널리 알려진 수준)이지 넘으면 안 되는 선이 아니다.

이유: 빚이 많을수록 해마다 차환할 돈이 많고 충격을 버틸 여력이 준다. WEO는 36개 경제 모두에 1990년까지 같은 정의로 값을 주는 유일한 출처다.

코드: scripts/sitebuild/sovereign.py · r22_debt_level · 테스트: test_r22_r23_pass_through_and_threshold

R23국가 재정 2. 재정적자

일반정부 순대출(+)·순차입(−)을 GDP로 나눈 값이며 이자가 들어 있다. IMF WEO(GGXCNL_NGDP)다. GDP의 −5% 이하면 켜진다. −15부터 0까지 0.5 단위로 바꿀 수 있다. EU 마스트리히트 기준은 −3%이고, −5%는 큰 적자를 가리킨다.

이유: 적자는 빌려서 메워야 하므로 크면 빚이 빨리 는다.

코드: scripts/sitebuild/sovereign.py · r23_deficit · 테스트: test_r22_r23_pass_through_and_threshold

R24국가 재정 3. 채무 눈덩이

채무 비율을 그대로 두는 데 필요한 기초재정수지에서 실제 기초재정수지를 뺀 값이며 단위는 GDP의 %p다. WEO 비율과 GDP 수준값으로 구한다. 이자 지급 = (기초수지 − 통합수지) / 100 × GDP. 실효금리 i = 이자 / 지난해 채무(지난해 비율 × 지난해 GDP). 명목 성장률 g = GDP / 지난해 GDP − 1. 채무 안정 기초수지 pb* = 지난해 채무 비율 × (i − g) / (1 + g). 차이 = pb* − 기초수지. GDP의 1%p 이상이면 켜진다. −2부터 6까지 0.5 단위로 바꿀 수 있다. 입력 하나라도 없으면 값이 없다.

이유: 금리가 성장률을 앞서면 이자 전 예산에서 저축하지 않는 한 빚은 저절로 는다. 해마다 GDP의 1% 차이는 10년이면 채무를 GDP의 10%p쯤 늘린다. 2009년 그리스를 손으로 계산하면 i 4.52%, g −1.85%, pb* 7.20%, 차이 17.5%p다(tests/test_sovereign.py).

  • 릴리스 20261102.2: 1,214 economy-years with a debt-stabilising gap

코드: scripts/sitebuild/sovereign.py · r24_debt_snowball · 테스트: test_r24_snowball_round_numbers, test_r24_snowball_greece_2009_by_hand, test_r24_snowball_missing_input

R25국가 재정 4. 경상수지

경상수지를 GDP로 나눈 값의 3년 평균이다. 해마다 신호판이 그 해를 가진 경우 4분기 시점의 4분기 경상수지(R17, IMF BOP)를, 없으면 WEO 연간 값(BCA_NGDPD)을 쓰고 어느 쪽을 썼는지 적는다. 평균은 세 해가 모두 있을 때만 있다. GDP의 −4% 이하면 켜진다. −12부터 0까지 0.5 단위로 바꿀 수 있다(EU 거시경제 불균형 절차의 기준값).

이유: 지속되는 적자는 해외에서 메운다. 3년 평균은 원자재 가격의 출렁임을 고른다. 둘 다 값이 있는 해에는 국가 재정 부문과 신호판이 같은 숫자를 읽도록 신호판 값을 먼저 쓴다.

  • 릴리스 20261102.2: 642 economy-years read from the Signal Board's current account

코드: scripts/sitebuild/sovereign.py · r25_current_account · 테스트: test_r25_current_account_three_year_average

R26국가 재정 5. 순대외금융자산

연말 순대외금융자산을 GDP로 나눈 값이다. 신호판이 그 해를 가지면 4분기 시점의 신호판 순대외금융자산(R17, IMF IIP를 BIS에서 구한 GDP로 나눈 값)을, 없으면 IMF IIP 총자산에서 총부채를 뺀 값을 WEO의 달러 표시 GDP(NGDPD)로 나눈 값을 쓰고 어느 쪽인지 적는다. 전망 연도는 비운다. GDP의 −35% 이하면 켜진다. −150부터 0까지 5 단위로 바꿀 수 있다(EU 거시경제 불균형 절차의 기준값).

이유: 큰 순채무 포지션은 과거 적자가 남긴 것이다. 신호판도 읽는 완충(R18)이며 여기서는 고정된 선에 견준 수준으로 본다.

  • 릴리스 20261102.2: 713 economy-years read from the Signal Board's net IIP

코드: scripts/sitebuild/sovereign.py · r26_net_iip · 테스트: test_r26_net_iip_board_first_then_imf

R27국가 재정 6. 유동성(A2)

4분기 시점의 신호판 A2다. 잔존만기 1년 이하 BIS CBS 국제채권을 순준비자산(IRFCL I부 + II부, 하한 적용. R17, 방법론 1.4)으로 나눈 백분율이다. 신호판이 A2를 점수에 넣지 않는 경제(유로 회원국, 일본, 영국, 캐나다)에는 해당하지 않고, 최신 분기가 점수 밖인 경제는 전 기간을 흐리게 둔다. 2005년 전과 전망 연도에는 값이 없다. 100% 이상이면 켜진다. 25부터 400까지 5 단위로 바꿀 수 있다(그린스펀·기도티 규칙. 준비자산은 1년 안에 만기가 오는 채무를 덮어야 한다).

이유: 준비자산을 넘는 단기 외화 채무는 전형적인 인출 노출이다(1997년 한국, 2018년 튀르키예). 신호판이 이미 순준비자산 기준으로 만들므로 국가 재정 부문은 같은 열을 읽는다.

  • 릴리스 20261102.2: 12 economies with A2 not applicable (unscored on the board)

코드: scripts/sitebuild/sovereign.py · r27_liquidity · 테스트: test_r27_liquidity_not_applicable_where_unscored

R28국가 재정 7. 스프레드

10년 만기 국채 수익률에서 기준국 수익률을 뺀 값이다. OECD 장기금리를 FRED 경유로 읽는다(IRLTLT01{iso2}M156N, 월 평균). EU 회원국의 기준은 독일, 나머지는 미국이며 기준국 자신에게는 해당하지 않는다. 연간 값은 두 계열이 모두 있는 달의 월간 스프레드 평균이며 여섯 달은 있어야 한다. 최신 값은 마지막 열두 달 평균이며, 계열이 어느 경제의 최신 달에서 두 달 안에 끝나야 쓴다. 스프레드만 내고 수익률 계열은 내지 않는다. 4%p 이상이면 켜진다. 1부터 10까지 0.5 단위로 바꿀 수 있다(400bp, 흔히 쓰는 위기 표지).

이유: 시장이 매기는 국가 위험의 값이며, 재정 자료가 연간일 때 달마다 있다. 러시아의 계열은 2018년에 멈추므로 오래된 스프레드는 평온이 아니라 없음으로 보인다.

  • 릴리스 20261102.2: 25 economies with a yield spread

코드: scripts/sitebuild/sovereign.py · r28_spread · 테스트: test_r28_spread_needs_six_months_and_benchmark

대조 예시: 한국, 유입

정렬 설정의 최신 사다리(증권 2025년 말, 은행 2025년 4분기)를 IIP 총계부터 따라간다.

R6, 증권투자. IIP 증권투자 부채 13,646억 달러 = 확인된 10,640억 달러(보고 보유국 9,944억 달러, 그중 유형 미보고 212억 달러, 그리고 준비자산 운용기관·국제기구 집단 696억 달러) + 어느 보유국도 보고하지 않은 3,006억 달러. 포괄률 78.0%. 보고 보유국 확인분 가운데 주식 7,052억 달러, 채권 2,680억 달러. IMF가 낸 파생 부채 10,640억 달러와 확인분이 같다(V16).

R6, R5, 은행 채권. BIS 전체 보고국의 한국 대출·예금 채권 1,585억 달러 = 개별 보고국 852억 달러 + 미확인 732억 달러(포괄률 53.8%; 그중 상품 구분이 없는 보고국 DEU 102억 달러, JPN 272억 달러). 전 상품 기준 3,813억 달러 = 대출·예금 + 채권 1,679억 달러(증권투자에서 센다) + 파생상품·기타 549억 달러(별도 풀, IIP 파생상품 472억 달러). IIP 대출 1,532억 달러, 예금 430억 달러(V15).

R7, R4, R6, 직접투자. DIP 2024년 말 전체 투자국 합계 2,552억 달러(투자 대상국 평가 기준) = 투자국 확인 2,552억 달러 + 미확인 0억 달러. IIP 직접투자 부채 2,963억 달러(시장가치)는 국경에 둔다.

세계 화면이 볼 수 있는 것과 없는 것

국적·최종위험 기준으로 바꾼 곳

근거: Aldasoro·Hardy·von Peter·Wooldridge(2026), BIS 분기보고서 2026년 3월

신호판의 경제(36곳)

아르헨티나, 호주, 오스트리아, 벨기에, 브라질, 캐나다, 칠레, 중국, 콜롬비아, 체코, 독일, 덴마크, 스페인, 핀란드, 프랑스, 영국, 그리스, 헝가리, 인도네시아, 인도, 이스라엘, 이탈리아, 일본, 한국, 멕시코, 말레이시아, 노르웨이, 뉴질랜드, 폴란드, 포르투갈, 러시아, 사우디아라비아, 스웨덴, 태국, 튀르키예, 남아프리카공화국.

뺀 경제와 이유

점검

용어

변경 이력

datasteg 흐름 사이트