[실무 일기] XBRL 쪼개기 ⑥ : XBRL 특수관계자 및 기타 복합 주석의 설계
이제 눈이 침침해지는 단계를 넘어 손가락 마디마디가 뻐근해지는 시점이다. 일반적인 유형자산이나 재고자산 주석 태깅이 끝났다고 안심하기엔 이르다. 우리를 기다리고 있는 것은 주석 공시의 '끝판왕'이라 불리는 특수관계자 거래와 금융상품 공정가치 주석이다.
이 항목들은 단순한 숫자 나열을 넘어, 기업 지배구조와 리스크 관리 체계를 여실히 드러낸다. 금융감독원 가이드 제7장에서 강조하는 복합 구조의 주석은 단순한 상세 태깅(Detailed Tagging)을 넘어선 입체적 설계(Dimensional Modeling) 역량을 요구한다. 오늘은 이 복잡한 실타래를 어떻게 풀어나갔는지 복기해본다.

1. XBRL 특수관계자 주석: 인맥 지도의 디지털화
(1) 왜 특수관계자가 가장 까다로운가
특수관계자 주석은 단순히 ‘누구와 얼마를 거래했나’를 보여주는 표가 아니다. 지배기업, 종속기업, 관계기업, 그리고 주요 경영진이라는 다양한 주체(Entity)가 얽혀 있고, 그 안에서 매출, 채권, 채무, 배당 등 수많은 거래 성격이 교차한다.
XBRL 구조에서는 이를 표현하기 위해 특수관계자 차원(Related Party Axis)을 사용한다. 엑셀에서는 한 줄로 표현되던 거래처 명칭이 XBRL에서는 ‘멤버(Member)’라는 고유의 좌표값이 되어야 한다. 이 과정에서 거래처의 성격(종속기업인지 관계기업인지)을 표준 택사노미의 계층 구조에 맞게 배치하는 것이 핵심이다.
(2) 거래와 잔액의 이중 구조 설계
특수관계자 주석은 크게 두 가지로 나뉜다. ‘당기 중 거래‘와 ‘기말 현재 잔액‘이다.
- 거래 내역: 수익, 비용, 자산 취득 등 기간(Period) 개념의 데이터
- 잔액 내역: 채권, 채무 등 시점(Instant) 개념의 데이터
실무적으로 가장 빈번한 오류는 거래 내역 요소에 잔액 숫자를 태깅하거나 그 반대의 경우다. 가이드 제7장에서 경고하는 속성(Attribute) 불일치를 피하려면, 요소를 선택할 때 반드시 해당 요소가 ‘기간‘용인지 ‘시점‘용인지 확인해야 한다.
2. [전략 1] 특수관계자 태깅의 입체적 배치법
(1) 멤버(Member) 구성의 논리
특수관계자 주석을 설계할 때 가장 먼저 해야 할 일은 우리 회사의 특수관계자 명단을 표준 택사노미의 멤버와 매칭하는 것이다.
- 지배기업: 상위 지배기업 멤버에 매핑
- 종속기업: 종속기업 도메인 하위의 개별 멤버로 생성
- 주요 경영진: 보상 내역과 별개로 거래가 있다면 별도 멤버 지정
만약 표준 택사노미에 우리 회사의 종속기업 이름이 없다면? 이때가 바로 사용자 정의 멤버(Extension Member)를 생성해야 하는 시점이다. 단, 이때도 부모 역할을 하는 도메인(Related Parties Domain) 안에서 질서 있게 생성해야 데이터의 계층 구조가 깨지지 않는다.
(2) [실무 예제] 거래처별 채권·채무 태깅 맵
복잡한 특수관계자 주석을 처리할 때 다음과 같은 오프라인 설계도를 먼저 그리는 것을 추천한다. 작성기에서 직접 작업하면 십중팔구 거래처가 뒤섞이기 때문이다.
| 거래처명 | 관계 성격 | XBRL 멤버 ID | 적용 축(Axis) | 비고 |
| (주)에이치디 | 종속기업 | Subsidiary1Member | 특수관계자 축 | 매출/채권 태깅 |
| (주)삼송 | 관계기업 | Associate1Member | 특수관계자 축 | 매입/채무 태깅 |
| 김철수 대표 | 주요경영진 | KeyManagementMember | 특수관계자 축 | 대여금 내역 |
3. [전략 2] 금융상품 공정가치와 위험관리 주석
(1) 서열체계(Level 1, 2, 3)의 차원 설계
금융상품 주석의 꽃은 공정가치 서열체계다. 활성시장의 공시가격(Level 1)부터 관측 가능한 변수(Level 2), 관측 불가능한 변수(Level 3)까지 쪼개지는 이 표는 그 자체로 3차원 구조다.
여기서는 공정가치 서열체계 차원(Measurement Hierarchy Axis)을 사용한다.
- 행(Line): 금융자산, 금융부채 등 계정과목
- 축(Axis): 서열체계 축
- 멤버(Member): 수준 1, 수준 2, 수준 3
실무 포인트는 수준 3의 변동내역이다. 기초잔액에서 시작해 당기손익, 기타포괄손익, 취득, 처분을 거쳐 기말잔액으로 이어지는 이 ‘수량적 변동 내역’은 상세 태깅의 난이도가 가장 높다. 각 변동 사유별로 표준 요소가 세분되어 있으므로, 가이드 제6장에 나온 변동내역 표준 요소 리스트를 옆에 띄워두고 작업해야 한다.
(2) 범주별 분류와 장부금액 대조
금융자산은 ‘상각후원가측정(AC)’, ‘당기손익-공정가치측정(FVPL)’, ‘기타포괄손익-공정가치측정(FVOCI)’으로 분류된다. 이 범주별 합계가 재무상태표의 본문 숫자와 일치하는지 확인하는 것이 상호 참조(Cross-referencing) 검증의 핵심이다. 주석에서는 100억인데 본문에서는 101억이라면, 그 1억의 차이가 미수이자인지 혹은 태깅 누락인지 끝까지 추적해야 한다.
4. [전략 3] 텍스트 중심 주석의 상세 태깅 범위
(1) 우발부채와 약정사항: 핵심 키워드를 잡아라
모든 주석이 표로 이루어지지는 않는다. 우발부채나 주요 약정사항은 텍스트 비중이 높다. 2025년 가이드는 여기서 핵심 수치(Key Quantitative Info)를 골라낼 것을 요구한다.
- 소송 사건: 피고/원고 여부, 소송가액, 충당부채 설정액
- 담보 및 보증: 담보 설정 자산의 장부금액, 보증 한도액, 실제 실행액
이러한 수치들은 문장 속에 숨어 있어 놓치기 쉽다. 나는 주석 원고를 형광펜으로 칠해가며 태깅할 숫자를 먼저 확정한다. 이때 숫자의 단위(원, 천원, 백만원)가 문맥에 따라 다를 수 있으므로, 태깅 시 단위 설정(Unit)을 번거롭더라도 하나하나 수동으로 확인하는 과정을 거친다.
5. 실무 포인트: 왜 특수관계자 주석에서 ‘검증 에러’가 쏟아지는가
다 입력 후 작성기 하단에 수십 개의 빨간색 에러 메시지가 떴다면 십중팔구 차원 불일치(Dimensional Inconsistency)다.
(1) 디폴트(Default) 멤버의 누락
앞서 3편에서 설명했듯이, 전체 합계는 축을 지정하지 않은 ‘디폴트’ 값이어야 한다. 하지만 특수관계자 주석에서는 종종 ‘전체 특수관계자’라는 별도의 멤버를 만들어 숫자를 넣는 실수를 범한다. 이렇게 되면 시스템은 “축이 없는 디폴트 값(1,000)”과 “네가 만든 합계 멤버 값(1,000)이 왜 중복되냐고 항의한다.
해결: 합계 수치(1,000)는 축(Axis)을 아예 설정하지 않은 상태로 태깅해야 한다. 그래야 시스템이 하위 멤버들(700+300)의 합이 디폴트 값(1,000)과 맞는지 스스로 검증한다.
| 항목 | XBRL 축(Axis) 설정 | XBRL 멤버(Member) 설정 | 데이터 값 | 결과 |
| 종속기업A 매출 | 특수관계자 축 | 종속기업A 멤버 | 700 | 정상 |
| 관계기업B 매출 | 특수관계자 축 | 관계기업B 멤버 | 300 | 정상 |
| 특수관계자 합계 | 특수관계자 축 | 전체 합계 멤버(신설) | 1,000 | [에러] |
(2) 계산 관계(Calculation)의 부재
특수관계자별 매출액을 다 더했을 때 주석 상의 ‘합계’와 맞아야 한다. 하지만 XBRL에서는 축(Axis)이 걸린 멤버들 간의 합산은 계산 탭에서 자동으로 이뤄지지 않는다. 이는 ‘차원 검증(Dimensional Validation)‘이라는 별도의 로직을 통해 확인해야 하므로, 실무자는 수동으로 엑셀을 돌려 합계를 재차 확인해야 한다.
| 주석 내용 | 사용한 XBRL 요소 (Element) | 요소 속성 | 데이터 값 | 결과 |
| 당기 매출액 | RevenueFromRelatedParties | Duration(기간) | 500 | 정상 |
| 기말 채권잔액 | RevenueFromRelatedParties | Duration(기간) | 200 | [에러] |
오류 설명: 기말 잔액은 특정 시점(Instant)의 숫자다. 그런데 이를 매출액과 같은 ‘기간(Duration)’ 속성의 요소에 태깅하면 기계는 “200이라는 숫자가 1년 동안 발생한 매출인지, 기말의 잔액인지 알 수 없다”며 에러를 낸다.
해결: 반드시 잔액용 요소인 ReceivablesFromRelatedParties (속성: Instant)를 찾아 매핑해야 한다. 표준 ID 명칭 뒤에 ‘잔액’이나 ‘현재’의 의미가 포함되어 있는지 반드시 확인하자.
6. 결산 현장의 디테일: 시니어의 최종 검수 리스트
공시팀에 파일을 넘기기 전, 나는 나만의 최종 5계명을 체크한다.
- 특수관계자 명칭이 전년도 공시 및 사업보고서의 다른 파트(임원 현황 등)와 일치하는가?
- 부호(Sign) 설정이 논리적인가? (특히 자본변동이나 현금흐름과 연계된 주석)
- 단위(Scale) 오류로 인해 자산 규모가 조 단위에서 경 단위로 바뀌지는 않았는가?
- 필수 태깅 항목 중 ‘해당 사항 없음’으로 기재된 부분에 누락된 태깅은 없는가?
- 본문 4표의 합계와 주석 상세 내역의 합계가 1원 단위까지 일치하는가?
7. 실무자의 요약 및 조언
특수관계자 주석은 다양한 거래 주체와 성격이 얽혀 있으므로 특수관계자 차원(Axis)을 활용해 멤버별로 정교하게 설계해야 한다.특히 기간 개념의 거래액과 시점 개념의 잔액 요소를 혼동하지 않도록 유의해야 한다.
금융상품 공정가치 주석은 서열체계(Level 1, 2, 3)를 축으로 구성하되, 주석 내 상세 합계가 본문 재무상태표의 장부금액과 일치하는지 상호 참조 검증을 철저히 수행해야 한다.
텍스트 내에 숨겨진 핵심 수치(이자율, 소송가액 등)도 상세 태깅의 대상이므로 누락 없이 골라내야 한다.
또, 마감 전 차원 불일치와 단위 설정 오류를 집중적으로 점검하여 데이터의 무결성을 확보하는 것이 공시 담당자의 최종적인 책임이다. 전문적인 설계 리스트와 타임라인 관리를 통해 결산 마감의 마지막 고비를 성공적으로 넘기기를 바란다.
