SAP 매출채권 손실충당금 설정률표 점검 — 연체일수 구간마다 다른 손실율부터 맞춰본다
매출채권 하나하나를 심사하는 대신, 연체일수 구간과 과거손실율표로 손실충당금을 한 번에 맞춰봤습니다
매출채권 대손충당금을 건별로 개별심사하기는 현실적으로 어렵습니다. 그래서 IFRS 9(K-IFRS 제1109호)은 유의적인 금융요소가 없는 매출채권·계약자산에 한해 간편법(충당금 설정률표, provision matrix)을 허용합니다. 연체일수 구간마다 과거손실율에 전방예측 정보를 더한 손실율을 적용하는 방식입니다. 이 방식을 OpenUI5 화면으로 구현했습니다.
연체일수를 미연체·1~30일·31~60일·61~90일·91일 이상 다섯 구간으로 나누고, 구간별로 과거손실율과 전방예측 조정율을 더한 적용손실율을 매출채권 잔액에 곱해 손실충당금을 산출합니다. 구간 단위로 집계한 충당금과 매출채권 건별 명세를 합산한 충당금을 서로 대사해, 구간 배정이나 반올림에서 차이가 나는지도 함께 확인할 수 있게 했습니다. 실제 구동 화면 4종을 함께 공개합니다.
SAP 표준 기능을 그대로 이어받은 부분
- 매출채권 명세 — 고객별 라인아이템 표시(
FBL5N)의 매출채권 조회 구조를 그대로 이어받습니다 - 고객 신용정보 — 신용관리 마스터(
FD32)가 관리하는 고객별 정보를 참고 데이터로 함께 봅니다
| 항목 | 내용 |
|---|---|
| 업무 영역 | 재무회계(FI) · 매출채권 충당금 |
| 관련 기준서 | IFRS 9 금융상품(K-IFRS 제1109호) |
| Namespace | zui5.provmatrix |
| 셸 구조 | 조회조건 영역(우측 조회) + 요약 + 탭 3개, 행 클릭 상세 Dialog |
| 화면 수 | 조회 화면 1개(탭 3개) + 상세 다이얼로그 |
| SAP 표준 T-code | FBL5N · FD32 |
| 데이터 연동 방식 | OData V2 — 화면 블록마다 엔티티셋에 직접 바인딩 |
| 성격 | 조회·점검형 — 손실율 적용과 충당금 인식의 최종 판단은 회사와 감사인이 수행 |
| UI 테마 | sap_horizon 단일 적용 |
실제 화면 4종 둘러보기
기본 조건으로 조회하면 구간별 설정률표가 뜹니다 → 매출채권 명세 탭에서 건별로 확인하고 → 대사 결과 탭에서 구간·명세 충당금을 대사하고 → 행을 클릭해 구간 상세를 봅니다.
아래는 실제로 앱을 실행해 기능을 눌러 가며 캡처한 화면입니다. 이미지를 클릭하면 원본 크기로 확대됩니다.
사용 방법
- 화면에 들어오면 기본 보고기간(예: 2026-08) 기준으로 자동 조회가 1회 실행되어 구간별 설정률표·매출채권 명세·대사 결과가 함께 채워집니다.
- 조회조건 영역에서 보고기간(필수)을 입력합니다.
- 고객코드(선택)를 입력하면 매출채권 명세 탭이 해당 고객으로 좁혀집니다.
- 대사 결과(선택, 기본 전체)를 정상 또는 확인 필요로 선택하면 대사 결과 탭이 그 상태만 남습니다.
- 조회 버튼은 조회조건 입력 필드 줄의 가장 오른쪽에 있습니다. 입력 필드에서 Enter 키를 눌러도 같은 조회가 실행됩니다. 초기화 버튼은 조건을 기본값으로 되돌리고 다시 조회합니다.
- 탭을 옮겨 ① 구간별 설정률표 → ② 매출채권 명세 → ③ 대사 결과 순으로 확인합니다.
- ① 탭에서 행을 클릭하면 해당 구간의 대사 결과와 매출채권 명세를 모은 상세 다이얼로그가 열립니다.
- ① 탭 상단의 CSV 내려받기(UTF-8 BOM)로 구간별 설정률표를 저장합니다.
구간별 손실율 판정 기준
| 판정 조건 | 결과 상태 | 사용자 조치 |
|---|---|---|
| 매출채권의 연체일수가 구간의 시작~종료 범위에 든다 | 해당 구간으로 배정 | 배정 결과는 매출채권 명세의 "구간" 컬럼에서 확인 |
| 적용손실율 = 과거손실율 + 전방예측 조정율 | 구간별 설정률표에 표시 | 조정율 산출 근거는 회사 정책 영역 |
| 구간 집계 충당금과 명세 합계 충당금의 차이가 허용오차 이내 | 정상 | 별도 조치 불필요 |
| 위 차이가 허용오차를 벗어남 | 확인 필요 | 구간 배정·반올림 처리를 재확인 |
설정률표 산출 절차
| 단계 | 내용 |
|---|---|
| 1단계 | 매출채권 건별로 결산일 기준 연체일수를 계산 |
| 2단계 | 연체일수를 5개 구간으로 배정 |
| 3단계 | 구간별 과거손실율에 전방예측 조정율을 더해 적용손실율을 산출 |
| 4단계 | 건별 채권잔액×적용손실율로 명세 충당금을, 구간 총채권잔액×적용손실율로 구간 집계 충당금을 각각 산출 |
| 5단계 | 구간 집계 충당금과 명세 합계 충당금을 대사해 결과를 표시 |
조회조건
| 필드 | 필수 | 설명 |
|---|---|---|
| 보고기간 | 필수 | YYYY-MM — 세 탭 모두에 적용 |
| 고객코드 | 선택 | 매출채권 명세 탭에만 적용, 비우면 전체 고객 |
| 대사 결과 | 선택(기본 전체) | 대사 결과 탭에만 적용 |
결과 컬럼
| 컬럼 | 설명 |
|---|---|
| 구간코드 · 구간(연체일수) | 연체일수 구간 식별자와 명칭 |
| 과거손실율 · 전방예측 조정율 · 적용손실율 | 구간에 적용하는 손실율 구성 요소 |
| 총채권잔액 · 손실충당금 · 건수 | 구간별 설정률표의 집계값 |
| 고객코드 · 고객명 · 송장번호 | 매출채권 명세의 식별 정보 |
| 송장일자 · 만기일자 · 연체일수 | 구간 배정의 산출 기준 |
| 구간 집계 충당금 · 명세 합계 충당금 · 차이 | 대사 결과의 비교값 |
| 대사결과 | 정상 · 확인 필요 |
SAP 표준 기능 매핑
표준 실행은 SAP 표준 T-code 가 담당하고, 이 화면은 그 데이터에 연체일수 구간화·설정률 적용·대사 관점을 더해 확장합니다.
| 표준 T-code | 표준 기능 | 이 화면이 더한 것 |
|---|---|---|
FBL5N | 고객별 라인아이템 표시 | 매출채권 명세에 연체일수·구간·적용손실율·손실충당금을 더합니다 |
FD32 | 신용관리 마스터 | 고객별 신용정보를 참고 데이터로 함께 봅니다 |
IFRS 요구사항 매핑
| 기준서 | 요구사항 | 대응 기능 | 원천 데이터 |
|---|---|---|---|
| IFRS 9(K-IFRS 제1109호) | 매출채권 등 기대신용손실 간편법(설정률표) 적용 | 구간별 설정률표 산출 | 매출채권 라인아이템 |
| IFRS 9(K-IFRS 제1109호) | 전방예측 정보의 반영 | 전방예측 조정율 컬럼 | 회사 내부 지표 |
| IFRS 9(K-IFRS 제1109호) | 손실충당금과 장부금액의 대사 | 대사 결과 탭 | 구간별 설정률표 · 매출채권 명세 |
참고 CDS 뷰
| 원천 테이블 | 주요 필드 | 쓰임 |
|---|---|---|
BSID | KUNNR · BELNR · DMBTR · ZFBDT | 고객 미결 라인아이템 — 매출채권 명세의 원천 |
KNA1 / KNB1 | KUNNR · NAME1 | 고객 마스터 — 고객코드·고객명 |
BSEG / BKPF | BUDAT | 회계전표 명세/헤더 — 송장일자 원천 |
define view entity ZI_ReceivableItem
as select from bsid as Item
inner join kna1 as Customer on Customer.kunnr = Item.kunnr
{
key Item.kunnr as CustomerCode,
key Item.belnr as InvoiceNo,
Customer.name1 as CustomerName,
Item.zfbdt as DueDate,
Item.dmbtr as GrossAmount
}
계정·마스터 구성은 가상 데이터 기준 스케치입니다.
OpenUI5 구성
| 기능 | 사용 컨트롤 · 구성 |
|---|---|
| 화면 골격 | sap.m.Page + 조회조건 패널 · 요약 · IconTabBar 3개 탭 |
| 데이터 연동 | manifest.json dataSources.mainService(OData V2, 상대 경로)로 기본 모델을 만들고 defaultCountMode:"Inline" · useBatch:false 로 구성합니다. 화면 블록마다 해당 엔티티셋에 직접 바인딩합니다 |
| 조회조건 | sap.ui.model.Filter 로 조립해 바인딩에 적용합니다. 전체를 고른 조건은 필터를 만들지 않습니다. 정렬은 Sorter 를 사용합니다 |
| 구간별 설정률표 · 대사 결과 | sap.m.Table — 행 클릭(press)으로 상세 다이얼로그를 엽니다 |
| 매출채권 명세 | sap.ui.table.Table — 컬럼 10개 · 다건 명세를 그리드로 표시합니다 |
| 예외 메시지 | 메타데이터 실패·요청 실패를 구분해 안내하는 전용 처리기 |
파일 구성
| 경로 | 역할 |
|---|---|
index.html | OpenUI5 부트스트랩 — sap_horizon, OData 서비스에 연결 |
Component.js | 모델 초기화, 예외 메시지 처리기 연결 |
manifest.json | 앱 디스크립터 — zui5.provmatrix · ko 로케일, OData 서비스와 모델 선언 |
view/Main.view.xml | 조회조건 · 요약 · 3개 탭 |
view/DetailDialog.fragment.xml | 구간 상세 다이얼로그 |
controller/Main.controller.js | 조회조건 조립 · 바인딩 · 다이얼로그 · CSV |
controller/BaseController.js | CSV 다운로드 공통 처리 |
model/formatter.js · model/ErrorHandler.js | 표시 서식 · 예외 메시지 처리 |
i18n/i18n_ko.properties | 화면 문구 |
검증 결과
검증용 샘플 데이터(매출채권 164건, 구간 5개, 보고기간 2026-08)를 기준으로 대사식을 전수 검증했습니다.
| 검증 항목 | 결과 |
|---|---|
| 적용손실율 = 과거손실율 + 전방예측 조정율 (구간 5개) | 통과(차이 0) |
| 구간 집계 충당금 = 총채권잔액×적용손실율 (구간 5개) | 통과(차이 0) |
| 구간 집계 충당금 vs 매출채권 명세 합계 충당금 대사(허용오차 5원, 구간 5개 · 매출채권 164건) | 통과(차이 0, 의도적 예외 0건) |
| 구간별 총채권잔액 합계 = 매출채권 명세 총채권잔액 합계(378,266,000원) | 통과(차이 0) |
| 조회 조건 전달 — 보고기간·고객코드·대사결과 필터 · 구간코드 정렬 | 확인 |
| 표시 금지 검사 — 커스텀 프로그램ID·앱 식별자·출처 표현 | 0건 |
화면 렌더링 — 조회 버튼 위치 · sap_horizon 테마 · Enter 키 조회 · 서비스 미연결 시 안내 메시지 | 확인 |
모든 데이터는 검증용으로 구성한 가상 데이터입니다. 손실율 적용과 충당금 인식에 대한 최종 회계 판단은 회사와 감사인이 수행합니다.
자주 묻는 질문
이 화면의 적용 대상과 시기는 어떻게 되나요?
IFRS 9(K-IFRS 제1109호)의 기대신용손실 간편법은 유의적인 금융요소가 없는 매출채권·계약자산에 적용하는 방식입니다. 각 회사의 정확한 최초 적용일과 경과규정은 회사별 기준서 적용 계획에 따라 다르며, 이 화면이 적용 시기를 판단하지는 않습니다.
구간 경계와 손실율은 화면에서 직접 수정할 수 있나요?
아닙니다. 이 화면은 조회·점검 화면으로 구간 경계와 손실율은 마스터에 설정된 값을 그대로 보여줍니다. 손실율 산정과 마스터 변경은 회사의 별도 심사·승인 절차를 거칩니다.
대사결과가 "확인 필요"로 표시되면 무엇을 해야 하나요?
구간 집계 충당금과 매출채권 명세 합계 충당금의 차이가 허용오차를 넘었다는 뜻입니다. 구간 배정과 반올림 처리를 다시 확인합니다. 이 화면은 점검 결과만 제공하며, 손실율 적용과 충당금 인식에 대한 최종 회계 판단은 회사와 감사인이 수행합니다.
매출채권 명세 데이터는 실시간 연동인가요?
화면은 OData 서비스 모델에 바인딩되어 연동된 서비스의 데이터를 조회조건에 맞춰 불러옵니다. 이 글에서 공개한 화면은 검증용 샘플 데이터를 기준으로 캡처했습니다.