buildrisk-radar

ADR-024 PF 우발채무 — 정기보고서의 부동산 PF 종합요약표 구조화 (R-C06)

배경 채무보증은 ‘타인에 대한 채무보증 결정’ 공시(ADR-016, R-C05)로만 봤다. 이 공시는 건별 · 수시라 회사 전체 PF 보증이 얼마이고 언제 만기가 돌아오는지를 모른다. 금융감독원은 2024년 1월 「건설회사의 건설계약 관련 우발부채 주석공시 모범사례」를 내고 2023년도 재무제표부터 부동산 PF 종합요약표(정비사업 · 기타사업 × 브릿지론 · 본PF, 보증한도 = 최대 노출 · 보증금액 = 현재 노출, 대출잔액의 만기 구간)와 사업장별 세부 내역을 적도록 권고했다. 분기 · 반기 · 사업보고서의 ‘XI-2. 우발부채 등에 관한 사항’에 실린다.

결정

  1. 구간만 스트리밍으로 꺼내 보관 — 정기보고서 본문은 10~15 MB. document.xml(Zip)을 64 KB 씩 풀면서 ASCII 표지 AASSOCNOTE="D-0-11-2-0"(우발부채) ~ D-0-11-3-0(다음 장)만 바이트로 찾아 모은다(SectionScanner, 압축 해제 상한 120 MB · 보관 상한 4 MB). 보관한 구간을 파서 버전과 함께 두어, 파서를 고치면 API 호출 없이 다시 파싱한다(ADR-016 과 같은 원칙). 실측: 472건 약 90초, worker 최대 475 MiB / 1.5 GiB.
  2. 회사 노출 = 단독사업 + 컨소시엄 회사분 — 컨소시엄 전체분은 다른 참여사 몫이 섞여 더하지 않는다. 범위는 표 바로 앞 꼬리표(60자)로, 마지막에 나온 꼬리표를 따르고 ‘컨소시엄 참여사업은 없습니다’ 같은 부정 문장은 꼬리표로 보지 않는다. 회사마다 모양이 달라 다음을 처리한다(모두 실제 보고서 fixture 로 고정).
    • 한 표 안에서 줄마다 ‘전체분 · 당사분’을 나눈 표(금호건설) · 단독 줄과 컨소시엄 줄 · 소계를 한 표에 둔 표(KCC건설) — 줄마다 범위를 매기고 범위별로 더함
    • 회사분 표 없이 ‘컨소시엄(전체)’ 표 하나만 있고 보증금액 열이 ‘보증금액(연결)’(한신공영) — 그 표가 회사 몫
    • 원문 주석이 ‘자체사업 — 회사가 직접 PF 차주’라고 밝힌 행(아이에스동서) — 보증이 아니라 이미 부채라 합계에서 뺌
    • 책임준공 약정만 모은 표, 특수관계자 표(위 내역의 일부), SOC 사업 표, 전기분으로 한 번 더 실린 같은 사업장 표 — 사업장으로 세지 않음
  3. 모르는 값은 비운다 — 만기 구간은 12개월 안의 세 구간(3 · 6 · 12개월)을 모두 알아봐야 쓴다. 이름만으로 누적인지 구간인지 알 수 없는 ‘6개월이내 · 1년이내’ 서식은 모든 줄에서 구간 합 = 대출잔액일 때만 구간으로 인정한다. 여섯 구간이 모두 비면 ‘12개월 내 만기’는 0 이 아니라 없음. 요약표가 없는 보고서(2023년도 이전 · 회사 고유 서식 — 예: 워크아웃 기간의 태영건설)는 NO_STANDARD 로 두고 추정하지 않는다. 비울 때는 사유를 message 에 남긴다.
  4. 두 가지 독립 대조 — ① 사업장별 보증금액 합 ≈ 요약표 합계(±1%) ② 본문 서술 ‘…PF와 관련하여 총 N백만원의 신용보강’ ≈ 요약표 합계. 어긋나도 값을 바꾸지 않고 요약표를 기준으로 쓰되 화면과 R-C06 경보 문장에 함께 보인다.
  5. 지표 · 규칙 — PF_GUARANTEE_TO_EQUITY · PF_DUE_12M_TO_EQUITY · PF_BRIDGE_SHARE(분모 = 같은 분기 자본총계, 연결 우선). standardizeMetricJob 의 pfMetricStep 이 PF 지표만 지우고 다시 쓴다(옛 값이 남지 않게). R-C06 PF 우발채무 과다: 보증/자기자본 ≥ 100% 또는 12개월 내 만기/자기자본 ≥ 50% (이 프로젝트의 첫 값 — 업계 표준이 아님, 파라미터로 바꿈). 경보 성적표(ADR-023)에 넣되 관측 시작은 PF 지표가 처음 생긴 2024-03-14 부터.
  6. 사업장의 사업지역을 시군구로 해석해(AddressRegionMatcher) 그 지역의 최신 천 가구당 미분양과 잇는다. 원문이 ‘서울시’처럼 시도만 적은 곳이 많아 시군구 해석은 34%(876 / 2,608).

실데이터 결과 (2026-10-08, 유니버스 43개사 · 2023Q4~2026Q2 정기보고서 472건)

상태 건수 기업
PARSED (요약표 · 사업장 구조화) 252 26
NO_STANDARD (요약표 없음) 194 20
NONE (PF 신용보강 없음) 22 5
NO_SECTION (구간 없음) 4 4

고려했지만 하지 않은 것

한계

덧붙임 (2026-10-09, VERIFICATION 155) 표를 격자로 펼칠 때 한 줄 2,000열 · 표 하나 20만 칸을 넘으면 펼치지 않고 그 표를 건너뛴다(PF 표가 아님) — 칸 하나의 병합 수만 자르면(132) 작은 원문으로도 한 줄 1억 칸을 만들 수 있었다. 보관한 468개 구간의 표는 최대 20열 · 약 1,410칸이라 결과는 같다.