보험계약 전환일 CSM 재계산 점검 — IFRS 17 최초 적용 전환일의 CSM·손실요소·부채·이익잉여금 조정을 다시 계산해 장부와 맞춰 보는 화면
전환 방식 3종 · 소급 롤포워드 · 공정가치법의 CSM과 손실요소 · 이행현금흐름과 합한 부채 · 이익잉여금 조정 · 장부와의 차이를 가르는 점검 코드 6종 — 소개 영상과 실제 화면 8종, 그리고 CDS 코드까지
소개 영상블로그 목차 순서대로 · 자막 포함9개 장면도입 포인트 → 실행 화면 → 표준 연계 → CDS → 검증
도입 포인트 — 이 앱을 사용해야 하는 이유
보험회사가 IFRS 17(K-IFRS 제1117호)을 처음 적용할 때 가장 오래 남는 질문은 “전환일의 계약서비스마진(CSM)이 맞게 잡혔나” 입니다. 같은 계약집합이라도 완전소급법이면 최초 인식 시점부터 다시 굴려야 하고, 수정소급법이면 단위 비율을 가정해 굴리며, 공정가치법이면 공정가치와 이행현금흐름의 차이로 갈립니다. 방식마다 산식이 다르고, 그 결과는 보험계약부채와 이익잉여금 조정으로 이어져 개시 재무상태표에 그대로 남습니다. 이 앱은 그 계산을 한 화면에서 다시 해 보고, 원장에 올린 금액과 얼마나 다른지를 계약집합 한 건씩 보여 줍니다.
핵심 포인트 여덟 가지
| 포인트 | 고객이 얻는 것 | 지금 방식이라면 |
|---|---|---|
| ① 세 가지 전환 방식을 한 표에서 | 완전소급법 · 수정소급법 · 공정가치법 집합을 한 목록에 두고 방식별 합계까지 나란히 봅니다. 방식이 섞여 있어도 같은 열에서 비교됩니다. | 방식마다 엑셀 파일이 따로 있고, 합계는 사람이 모읍니다. |
| ② 소급 롤포워드를 연도별로 | 발행 연도마다 기초 · 이자 부리 · 해제 · 기말이 한 줄씩 나옵니다. 마지막 줄의 기말이 전환일 CSM 이 됩니다. | 연도별 시트가 길게 이어지고, 중간 값이 어디서 바뀌었는지 찾기 어렵습니다. |
| ③ 공정가치법의 CSM 과 손실요소 구분 | 공정가치가 이행현금흐름보다 크면 CSM, 작으면 손실요소로 갈라 보입니다. 둘 중 하나만 0 이 아닌 값으로 나옵니다. | 차이의 부호만 보고 CSM 을 음수로 두거나 손실요소를 놓칩니다. |
| ④ 부채와 이익잉여금 조정까지 한 번에 | 이행현금흐름에 CSM 을 더해 전환일 부채를 만들고, 종전 기준 부채와의 차이를 이익잉여금 조정으로 냅니다. | CSM 을 구한 뒤 부채와 조정 분개는 다른 파일에서 다시 계산합니다. |
| ⑤ 장부와의 차이를 다섯 곳에서 | CSM · 손실요소 · 부채 · 이익잉여금 조정 · 전환일, 다섯 군데를 장부와 맞춰 차이를 부호와 함께 보여 줍니다. | 장부 잔액만 확인하고 어디서 어긋났는지는 따로 추적합니다. |
| ⑥ 점검 코드로 원인을 바로 | 전환 방식 근거 미기재, 전환일 불일치, CSM · 손실요소 · 부채 · 조정 차이를 여섯 코드로 나눠 어디부터 볼지 알려 줍니다. | “차이가 있다” 까지만 알고 원인은 건건이 열어 봅니다. |
| ⑦ 스스로 하는 검산 14종 | 롤포워드 항등식 · 해제 비율 · 부채 합산 · 포트폴리오 합계 같은 내부 정합성 8종과 장부 대사 6종이 매번 같이 돕니다. | 산식이 맞는지는 담당자의 기억과 눈에 맡깁니다. |
| ⑧ 서비스와 화면의 분리 | 화면은 OData V2 서비스만 부릅니다. 운영에서는 서비스 뒤의 데이터 출처만 바꾸면 되고, 화면 코드는 그대로입니다. | 화면과 샘플 데이터가 섞여 있어 운영 연결 때 다시 만듭니다. |
사례로 보는 효과 — 9.7억 손실요소가 장부에 없었다
24개 계약집합 가운데 6개가 점검 필요로 걸렸습니다. 금액이 가장 큰 것은 공정가치법을 쓴 한 집합입니다. 전환일 공정가치는 378.0억 원인데 이행현금흐름은 387.7억 원이라, 공정가치가 더 작아 CSM 은 0, 손실요소가 9.69억 원으로 나와야 합니다. 그런데 장부에는 손실요소 구분 없이 CSM 만 올라가 있어 손실요소 차이가 −9.69억 원으로 찍혔습니다. 같은 자료에서 다른 집합은 1.25백만 원 정도의 CSM 차이, 0.83백만 원의 부채 차이, 0.41백만 원의 이익잉여금 조정 차이처럼 작은 금액이었습니다. 큰 차이만 보면 작은 어긋남을 놓치고, 작은 것만 맞추면 구조적 누락을 놓칩니다. 이 앱은 둘을 같은 표에 놓고 코드로 가릅니다.
공정가치법
CSM = max(공정가치 − 이행현금흐름, 0) · 손실요소 = max(이행현금흐름 − 공정가치, 0)
소급 롤포워드(연도 k)
이자 부리 = 기초 × 고정 할인율 ÷ 100 · 해제 = (기초 + 이자 부리) × 제공 단위 ÷ (제공 단위 + 잔여 단위) · 기말 = 기초 + 이자 부리 − 해제
부채와 조정
전환일 부채 = 이행현금흐름 + CSM · 이익잉여금 조정 = 종전 기준 부채 − 전환일 부채
산식은 단순합니다. 어려운 것은 방식이 섞인 계약집합 수십 건이 같은 규칙으로 계산됐는지 확인하는 일입니다. 그래서 이 앱은 롤포워드 항등식을 매번 검산하고, 마지막 연도의 기말 CSM 이 전환일 CSM 과 같은지, 포트폴리오별 합계가 집합 합계와 같은지를 같이 돌립니다.
도입하면 달라지는 것
- 개시 잔액 점검 시간 — 방식별 파일을 열어 합계를 모으던 일이 한 화면의 탭 이동으로 바뀝니다.
- 감사 대응 — 어느 집합이 어느 방식으로 계산됐고, 근거가 적혀 있는지가 한 열에서 보입니다.
- 원인 추적 — 차이가 CSM 인지 손실요소인지 부채인지 조정인지를 코드가 먼저 알려 줍니다.
- 다음 결산으로 이어지는 기준 — 개시 잔액이 확정되면 이후 CSM 해제가 같은 기준 위에서 계산됩니다.
이런 회사에 맞습니다
IFRS 17 최초 적용을 앞두었거나 막 적용해 전환일 잔액을 감사인과 함께 확인해야 하는 보험회사, 계약집합이 수십 개 이상이라 방식별 시트로는 합계 대사가 버거운 결산팀, 그리고 보험 업무 시스템과 SAP 원장 사이의 개시 잔액이 맞는지 따져야 하는 재무회계 조직에 맞습니다. 이 글의 계약집합 자료는 가상의 검증용 샘플입니다.
숫자를 믿을 수 있는가 — 검증 결과
이 화면에서 가장 비싼 질문은 “이 숫자 맞아?” 입니다. 그래서 만드는 쪽에서 먼저 대사식을 세우고 전수로 돌렸습니다. 위쪽 여덟 줄은 산식끼리의 정합성이라 차이가 0 이어야 하고, 아래쪽 여섯 줄은 장부와의 대사라 의도적으로 심어 둔 예외가 걸립니다.
| 대사식 | 검사 건수 | 차이 건수 |
|---|---|---|
| CSM 롤포워드 항등식(기말 = 기초 + 이자 부리 − 해제) | 49 | 0 |
| 해제액 단위 비율 대사 | 49 | 0 |
| 롤포워드 마지막 기말 = 전환일 CSM | 17 | 0 |
| 공정가치법 CSM − 손실요소 = 공정가치 − 이행현금흐름 | 7 | 0 |
| IFRS 17 부채 = 이행현금흐름 + CSM | 24 | 0 |
| 이익잉여금 조정 = 종전 기준 부채 − IFRS 17 부채 | 24 | 0 |
| 포트폴리오 합계 = 계약집합 합계 | 4 | 0 |
| 전환 방식 합계 = 계약집합 합계 | 3 | 0 |
| 장부 CSM 대사 | 24 | 1 |
| 장부 손실요소 대사 | 24 | 1 |
| 장부 IFRS 17 부채 대사 | 24 | 2 |
| 장부 이익잉여금 조정 대사 | 24 | 3 |
| 장부 전환일 대사(기대 전환일 2022-01-01) | 24 | 1 |
| 방식 선택 근거 기재 대사(수정소급법 · 공정가치법) | 18 | 1 |
내부 정합성 여덟 줄이 모두 0 이므로, 장부 쪽에서 걸린 차이는 재계산이 틀려서가 아니라 장부가 다르기 때문이라고 읽을 수 있습니다. 화면 쪽은 이와 별도로 브라우저 자동화로 확인했습니다 — 조회 뒤 요약 숫자, Enter 로 조회, 계약집합 상세 대화상자의 롤포워드 줄 수, 좁은 화면 배치를 매번 다시 잽니다.
도입 후 쓰는 순서
- 기준 연월을 넣고 조회를 누릅니다. 필요하면 포트폴리오 · 전환 방식 · 점검 코드 · 점검 결과로 범위를 좁힙니다.
- 맨 위 요약 숫자로 계약집합 건수, 종전 기준 부채 합계, 재계산 전환일 CSM, 손실요소, 이익잉여금 조정, 점검 필요 건수를 한눈에 봅니다.
- 계약집합 명세에서 점검 필요 줄을 찾아 눌러 상세를 열고, 점검 내용과 전환 방식 근거를 읽습니다.
- 소급 방식 집합은 CSM 롤포워드 탭에서 연도별 기초 · 이자 부리 · 해제 · 기말을 따라갑니다.
- 포트폴리오별 · 전환 방식별 집계로 차이가 어디에 몰려 있는지 봅니다.
- 대사 결과 탭에서 내부 정합성이 모두 0 인지, 장부 대사에서 어떤 항목이 걸렸는지 확인하고 CSV 로 내려받아 결산 자료에 붙입니다.
실행 화면
실제로 돌아가는 화면 8종을 순서대로 싣습니다. 그림을 누르면 크게 볼 수 있고, 화면마다 무엇을 하는 자리이고 왜 그렇게 두었는지를 아래에 적었습니다. 숫자는 모두 같은 자료에서 나온 것이라 화면끼리 서로 맞춰 보셔도 됩니다.
처음 열었을 때
조회조건 아래에 요약 숫자가 먼저 서고, 그 아래로 탭과 표가 이어집니다. 숫자를 먼저 보고 표로 내려가는 순서로 읽도록 만들었습니다. 요약의 일곱 숫자는 계약집합 24건, 종전 기준 부채 합계 약 1조 3,809억 원, 재계산 전환일 CSM 약 904억 원, 재계산 손실요소 9.69억 원, 이익잉여금 조정 −12.7억 원, 점검 필요 6건, 정합성 대사 차이 0건입니다.

조회 직후에는 계약집합 24건이 번호순으로 놓입니다. 점검 결과 열은 정상과 점검 필요를 색으로 가르고, 금액 열은 오른쪽 맞춤에 천 단위 쉼표를 둡니다. 차이 열은 부호가 보이도록 − 와 + 를 모두 표시합니다.
점검 코드로 좁혀 보기
점검 필요가 6건이라면 코드별로 한 건씩입니다. 코드를 고르면 표와 요약이 같은 범위로 바뀌므로, 어느 코드가 몇 건이고 금액이 얼마인지를 바로 읽습니다.

R01 방식 근거 미기재, R02 전환일 불일치, R03 CSM 차이, R04 손실요소 누락, R05 부채 차이, R06 이익잉여금 조정 차이 — 여섯 코드가 서로 겹치지 않게 정의되어 있어, 한 건에는 가장 먼저 걸린 코드 하나가 붙습니다.
소급 롤포워드를 연도별로
완전소급법과 수정소급법 집합은 최초 인식 연도부터 전환일 직전까지 한 해씩 굴립니다. 줄마다 이자 부리와 해제가 따로 있어, 어느 해에 해제 비율이 달랐는지 바로 보입니다.

해제 비율은 제공 단위 ÷ (제공 단위 + 잔여 단위) 입니다. 이 표의 마지막 연도 기말이 계약집합 명세의 재계산 전환일 CSM 과 같아야 하고, 그 등식이 대사 결과의 세 번째 줄입니다.
포트폴리오별로 모으면
계약집합이 24건이라도 경영진이 보는 단위는 포트폴리오입니다. 네 줄로 합친 표에서 점검 건수가 있는 포트폴리오를 먼저 찾고, 계약집합 명세로 내려갑니다.

합계 열은 계약집합 명세의 같은 열을 포트폴리오별로 더한 값입니다. 대사 결과의 일곱 번째 줄이 이 합계가 집합 합계와 같은지를 매번 확인합니다.
전환 방식별로 모으면
방식별 합계는 감사인이 가장 먼저 묻는 표입니다. 수정소급법과 공정가치법은 소급이 어려웠던 사유가 필요한 방식이라, 어느 방식에 몇 건이 있고 금액이 얼마인지가 곧 설명 범위가 됩니다.

공정가치법 줄에는 공정가치 합계 열이 따로 붙습니다. 소급 방식에는 공정가치가 없으므로 0 으로 둡니다.
한 건을 열어 보면
표에서 줄을 누르면 상세가 열립니다. 위쪽에는 재계산과 장부 값을 열 단위로 나란히 두고, 아래쪽에는 그 집합의 롤포워드 줄을 둡니다. 차이가 난 열과 그 원인이 되는 입력을 한 자리에서 봅니다.

공정가치법 집합이면 롤포워드 대신 공정가치와 이행현금흐름이 나오고, 방식 근거 문장이 함께 실립니다. 닫으면 보던 표 위치로 돌아갑니다.
스스로 하는 검산
마지막 탭이 이 화면의 신뢰를 만듭니다. 좌변과 우변, 검사 건수, 차이 건수, 최대 차이, 그리고 대사식 문장이 한 줄에 있어 숫자를 읽는 사람이 산식까지 같이 읽습니다.

대사 구분 열에는 내부 정합성이 대사 구분 열에는 내부 정합성이 ‘정합성 대사’, 장부 쪽이 ‘장부 점검 대사’ 로 표시됩니다.lsquo;정합성 대사대사 구분 열에는 내부 정합성이 ‘정합성 대사’, 장부 쪽이 ‘장부 점검 대사’ 로 표시됩니다.rsquo;, 장부 쪽이 대사 구분 열에는 내부 정합성이 ‘정합성 대사’, 장부 쪽이 ‘장부 점검 대사’ 로 표시됩니다.lsquo;장부 점검 대사대사 구분 열에는 내부 정합성이 ‘정합성 대사’, 장부 쪽이 ‘장부 점검 대사’ 로 표시됩니다.rsquo; 로 표시됩니다. 요약의 ‘정합성 대사 차이 건수’ 는 앞의 여덟 줄만 센 값이라 0 이 정상입니다.
좁은 화면에서도
결산 회의에서 휴대폰으로 숫자를 확인하는 일이 흔해서, 좁은 창에서는 요약과 필터를 세로로 쌓고 표는 가로로 밀어 보게 했습니다. 숨기는 정보는 없습니다.

표의 가로 폭은 열 수에 맞춰 늘어나고 첫 열은 머물러 있어 어느 집합의 줄인지 놓치지 않습니다.
SAP 표준 기능 확장 포인트
이 앱은 SAP 표준을 대체하지 않습니다. 표준이 이미 잘하는 일은 표준에 맡기고, 표준이 끊기는 자리만 이어 붙이는 쪽으로 만들었습니다. 어디까지가 표준이고 어디서부터 이 앱인지를 먼저 적습니다.
표준으로 되는 것과 안 되는 것
| 하고 싶은 일 | SAP 표준 | 표준에서 걸리는 자리 | 이 앱이 하는 일 |
|---|---|---|---|
| 장부에 올라간 보험계약부채 · 이익잉여금 분개 확인 | FAGLL03 · FB03 | 전표 단위라 계약집합 합계와 맞춰 보려면 따로 모아야 합니다 | 장부 금액을 계약집합 한 줄로 모아 재계산 값 옆에 놓습니다 |
| 계정 잔액 대조 | FS10N | 계정 단위 잔액이라 계약집합 · 전환 방식 단위로는 갈라 보이지 않습니다 | 포트폴리오 · 전환 방식별 합계를 장부와 나란히 보입니다 |
| 전환일 CSM 재계산 | — | 표준 거래로 풀어 주지 않는 자리입니다. 보험 업무 시스템이나 별도 계산 도구에서 구합니다 | 완전소급 · 수정소급 롤포워드와 공정가치 차이를 같은 화면에서 다시 구합니다 |
| 전환 방식 선택 근거 관리 | — | 문서로 따로 보관되고 숫자와 이어지지 않습니다 | 근거 문장을 집합 줄에 붙여 두고, 비어 있으면 점검 코드를 붙입니다 |
| 개시 잔액 차이 원인 분류 | — | 차이가 있다는 사실까지만 알 수 있습니다 | CSM · 손실요소 · 부채 · 조정 · 전환일을 여섯 코드로 가릅니다 |
T-code 별 연계 지점
이 앱이 표준 거래의 어느 자리를 이어받는지를 적었습니다. 운영에 올릴 때 “기존 조회를 없애야 하느냐” 는 질문이 꼭 나오는데, 없애지 않고 둡니다. 장부 대사와 감사 대응은 표준 거래가 맡는 편이 안전합니다.
| T-code | 이름 | 연계 |
|---|---|---|
FAGLL03 | G/L 계정 개별 항목 조회 | 장부 IFRS 17 부채 · 이익잉여금 조정 분개의 원천 확인. 이 앱의 장부 금액과 건수 · 합계가 같아야 합니다. |
FS10N | G/L 계정 잔액 조회 | 포트폴리오 · 전환 방식별 장부 합계를 계정 잔액과 대조합니다. |
FB03 | 전표 조회 | 차이가 난 계약집합의 조정 전표를 열어 확인합니다. |
기준서 요구사항과 대응 기능
| 요구사항 | 대응 기능 | 비고 |
|---|---|---|
| 전환일의 CSM — 완전소급법 · 수정소급법의 소급 롤포워드 | CSM 롤포워드 탭, 재계산 전환일 CSM | 고정 할인율 · 제공 단위는 회사 입력 가정입니다 |
| 전환일의 CSM — 공정가치법(공정가치와 이행현금흐름의 차이) | 계약집합 명세, CSM · 손실요소 열 | 음수 차이의 세부 처리는 기준서 원문 확인이 필요합니다 |
| 전환일 기준 측정(최초 적용일 직전 연도 개시일) | R02 판정, 전환일 대사 | 기준서 문단 확인이 필요합니다 |
| 전환 방식 선택의 근거 | R01 판정, 전환 방식 근거 열 | 근거 문서의 보존 방식은 회사 정책입니다 |
| 전환일 부채와 종전 기준 부채의 차이를 이익잉여금에 반영 | 이익잉여금 조정 열 | 세후 금액과 기타포괄손익 구분은 이 화면 범위 밖입니다 |
이 화면은 점검용입니다. 계산은 단순화한 모델이며, 회계 처리의 최종 판단은 회사와 감사인이 합니다.
CDS 구성
이 사례의 화면은 계약집합 24건과 롤포워드 49줄을 서비스에서 한 번에 받아 보여 줍니다. 데모라서 되는 일이고, 운영에서는 계약집합 수천 건에 연도별 롤포워드가 붙으므로 계산을 서비스 쪽으로 내립니다. 아래는 그때 만드는 뷰의 스케치입니다.
코드는 스케치입니다. 필드 이름과 표준 뷰 이름은 릴리스 · 환경에 따라 다르고, 계약집합 · 이행현금흐름 · 공정가치 · 제공 단위의 원천은 보험 업무 시스템에서 와서 SAP 표준 원천이 확인되지 않습니다. 확인이 필요한 자리는 주석에 적었습니다. 붙여 넣기 전에 View Browser(F2170)로 실제 이름을 확인해야 합니다.
뷰 레이어 구성
| 레이어 | 뷰 | 하는 일 | 왜 나누나 |
|---|---|---|---|
| 입력 | ZI_CsmTransInput | 계약집합 · 전환 방식 · 이행현금흐름 · 공정가치 · 종전 부채 | 원천이 바뀌어도 이 뷰만 고치면 아래가 그대로입니다. |
| 롤포워드 | ZTF_CsmTransRoll | 소급 집합의 연도별 기초 · 이자 부리 · 해제 · 기말 | 연도가 앞 연도에 이어지는 계산이라 CDS 뷰 한 장으로 쓸 수 없어 테이블 함수로 둡니다. |
| 계산 | ZI_CsmTransGroup | 방식별 CSM · 손실요소 · 부채 · 이익잉여금 조정 | 화면이 하던 계산을 한 곳에서만 정의합니다. |
| 장부 | ZI_CsmTransLedger | ACDOCA 의 장부 부채 · 조정 집계 | 장부 쪽은 표준 원장 위에서 읽어 대사 기준을 흔들지 않습니다. |
| 대사 | ZI_CsmTransCheck | 재계산과 장부의 차이 · 점검 코드 | 점검 코드 판정을 화면이 아니라 여기서 한 번만 합니다. |
| 권한 | ZI_CSMTRANSGROUP (DCL) | 회사코드 | 집계를 읽는 자리에 걸어야 합계로 새지 않습니다. |
① 입력 뷰
원천이 아직 확정되지 않은 자리입니다. 계약집합 한 건에 전환 방식과 이행현금흐름, 공정가치, 종전 기준 부채가 모입니다. 원천은 운영에서 정합니다.
" ────────────────────────────────────────────────────────────────
" ZI_CsmTransInput — 전환일 계약집합 입력
" 원천 : 보험 업무 시스템에서 올린 계약집합 마스터와 전환일 평가 자료
" (SAP 표준 원천은 확인되지 않음 → 운영 연결 때 확인 필요)
" 종전 기준 부채는 ACDOCA 계정 잔액을 계약집합에 배부한 값을 쓴다.
" ────────────────────────────────────────────────────────────────
@AbapCatalog.viewEnhancementCategory : [#NONE]
@AccessControl.authorizationCheck : #CHECK
@EndUserText.label : '전환일 계약집합 입력'
define view entity ZI_CsmTransInput
as select from zcsm_trn_grp as g " 확인 필요 : 실제 원천 테이블
{
key g.period as Period, " 기준 연월(연도+월)
key g.group_no as GroupNo,
g.bukrs as CompanyCode, " 권한 조건에 쓴다
g.portfolio as Portfolio, " LIFE · HLTH · ANNU · GRP
g.cohort as Cohort,
g.approach as Approach, " FRA 완전소급 · MRA 수정소급 · FVA 공정가치
g.trn_date as TrnDate, " 기대 전환일
g.init_date as InitDate,
g.prev_liab as PrevLiab, " 종전 기준 부채
g.fcf_trn as FcfTrn, " 전환일 이행현금흐름
g.fair_value as FairValue, " 공정가치법에서만 값이 있다
g.accr_rate as AccrRate, " 고정 할인율(%) — 최초 인식 시점 곡선
g.basis_note as BasisNote " 방식 선택 근거 문장
}
② 롤포워드 테이블 함수
소급 롤포워드는 앞 연도의 기말이 다음 연도의 기초가 되는 계산입니다. 연도마다 기말 = 기초 × (1 + 이자율) × 잔여 단위 ÷ (제공 단위 + 잔여 단위) 이므로, 연도별 계수의 곱으로 풀면 윈도 함수로 한 번에 구할 수 있습니다.
" ────────────────────────────────────────────────────────────────
" ZTF_CsmTransRoll — 소급 롤포워드(테이블 함수)
" 기말(k) = 기말(k-1) × (1 + 이자율/100) × 잔여단위 ÷ (제공단위 + 잔여단위)
" → 연도별 계수 f 의 누적곱 = EXP( SUM( LN( f ) ) OVER (...) )
" 계수가 0 이하이면 LN 이 실패하므로 입력 단계에서 막아 둔다.
" ────────────────────────────────────────────────────────────────
@EndUserText.label : '전환일 CSM 소급 롤포워드'
define table function ZTF_CsmTransRoll
with parameters p_period : abap.char(6)
returns {
mandt : abap.clnt;
period : abap.char(6);
group_no : abap.char(3);
year_no : abap.char(4);
csm_open : abap.dec(18,0);
csm_accr : abap.dec(18,0);
csm_rel : abap.dec(18,0);
csm_close : abap.dec(18,0);
}
implemented by method zcl_csm_trans_roll=>get_roll;
" AMDP 구현 스케치 (SQLScript)
" f = ( 1 + accr_rate / 100 ) * cu_fut / ( cu_in + cu_fut )
" cum = EXP( SUM( LN( f ) ) OVER ( PARTITION BY group_no ORDER BY year_no ) )
" csm_close = csm_init * cum
" csm_open = LAG( csm_close, 1, csm_init ) OVER ( PARTITION BY group_no ORDER BY year_no )
" csm_accr = csm_open * accr_rate / 100
" csm_rel = ( csm_open + csm_accr ) * cu_in / ( cu_in + cu_fut )
③ 계산 뷰
방식별 CSM · 손실요소를 한 곳에서 정의합니다. 공정가치법은 두 값 중 하나만 0 이 아니고, 소급 방식은 롤포워드의 마지막 기말을 씁니다.
@AbapCatalog.viewEnhancementCategory : [#NONE]
@AccessControl.authorizationCheck : #CHECK
@EndUserText.label : '전환일 계약집합 CSM 재계산'
define view entity ZI_CsmTransGroup
as select from ZI_CsmTransInput as g
association [0..1] to ZI_CsmTransRollLast as _Roll
on _Roll.Period = $projection.Period
and _Roll.GroupNo = $projection.GroupNo
{
key g.Period,
key g.GroupNo,
g.CompanyCode,
g.Portfolio,
g.Approach,
g.PrevLiab,
g.FcfTrn,
g.FairValue,
" CSM : 공정가치법은 공정가치 - 이행현금흐름(양수일 때), 소급은 마지막 기말
case g.Approach
when 'FVA' then
case when g.FairValue > g.FcfTrn
then g.FairValue - g.FcfTrn else 0 end
else coalesce( _Roll.CsmClose, 0 )
end as CsmCalc,
" 손실요소 : 공정가치법에서 공정가치가 더 작을 때만 값이 생긴다
case when g.Approach = 'FVA' and g.FcfTrn > g.FairValue
then g.FcfTrn - g.FairValue else 0 end as LossCalc,
_Roll
}
" 부채 = 이행현금흐름 + CSM, 이익잉여금 조정 = 종전 부채 - 부채 는 이 뷰를 읽는
" 상위 뷰(ZI_CsmTransCheck)에서 계산한다. 기준서 문단 확인이 필요한 부분은 주석으로 남긴다.
④ 장부 뷰와 점검 뷰
장부 쪽 금액은 ACDOCA 에서 읽고, 재계산과 맞춰 차이와 점검 코드를 한 번에 냅니다. 코드 판정이 이 뷰에 있으면 화면은 값을 그대로 보이기만 하면 됩니다.
@AbapCatalog.viewEnhancementCategory : [#NONE]
@AccessControl.authorizationCheck : #CHECK
@EndUserText.label : '전환일 CSM 점검'
define view entity ZI_CsmTransCheck
as select from ZI_CsmTransGroup as c
inner join ZI_CsmTransLedger as l " ACDOCA 장부 집계(계약집합 단위)
on l.Period = c.Period
and l.GroupNo = c.GroupNo
{
key c.Period,
key c.GroupNo,
c.CsmCalc,
l.CsmLedg,
l.CsmLedg - c.CsmCalc as CsmDiff,
c.FcfTrn + c.CsmCalc as LiabCalc,
l.LiabLedg,
l.LiabLedg - ( c.FcfTrn + c.CsmCalc ) as LiabDiff,
c.PrevLiab - ( c.FcfTrn + c.CsmCalc ) as RetCalc,
" 점검 코드 — 앞에서 걸린 하나만 남긴다
case
when c.Approach <> 'FRA' and c.BasisNote = '' then 'R01'
when l.LedgTrnDate <> c.TrnDate then 'R02'
when l.CsmLedg <> c.CsmCalc then 'R03'
when c.LossCalc <> 0 and l.LossLedg = 0 then 'R04'
when l.LiabLedg <> c.FcfTrn + c.CsmCalc then 'R05'
when l.RetLedg <> c.PrevLiab - ( c.FcfTrn + c.CsmCalc ) then 'R06'
else 'I00'
end as CheckCode
}
⑤ 권한 조건(DCL)
집계를 읽는 자리에 권한을 걸어야 합계로 새지 않습니다. 표준 권한 오브젝트 F_BKPF_BUK 의 회사코드로 겁니다.
@EndUserText.label : '전환일 CSM 권한'
@MappingRole : true
define role ZI_CSMTRANSGROUP {
grant select on ZI_CsmTransGroup
where ( CompanyCode ) = aspect pfcg_auth( F_BKPF_BUK, BUKRS, ACTVT = '03' );
" 포트폴리오별로도 나누려면 회사 오브젝트를 따로 만들어 조건을 더한다(운영 정책).
}
뷰 이름은 모두 스케치입니다. 서비스의 실제 구성은 운영 연결 때 확인해야 하며, 보험 업무 시스템 원천은 SAP 표준 원천이 확인되지 않습니다.
자주 묻는 질문
도입 상담과 데모에서 실제로 받을 만한 질문들입니다. 네 묶음으로 나누어 적었습니다.
숫자와 산식
이 화면의 대상은 어떤 회사이고, 적용 시기는 언제입니까?
IFRS 17(K-IFRS 제1117호)을 처음 적용하는 보험회사입니다. 최초 적용일이 2023년 1월 1일이면 전환일은 그 직전 연도 개시일인 2022년 1월 1일이고, 이 화면의 기대 전환일도 그 날짜입니다. 이 글의 24개 계약집합은 가상의 검증용 샘플입니다.
완전소급법 · 수정소급법 · 공정가치법은 무엇이 다릅니까?
완전소급법은 최초 인식 시점부터 IFRS 17 을 처음부터 적용한 것처럼 다시 측정합니다. 수정소급법은 완전소급이 현실적으로 어려울 때 일부 가정을 쓰되 소급 방식에 최대한 가깝게 가는 방법이고, 공정가치법은 전환일 공정가치와 이행현금흐름의 차이로 CSM 을 정합니다. 이 화면에서는 앞의 두 방식을 롤포워드로, 마지막 방식을 차이로 다시 계산합니다. 세부 요건은 기준서와 회사의 경과규정 문서를 확인해야 합니다.
공정가치법에서 CSM 이 0 이고 손실요소가 생기는 경우는 언제입니까?
공정가치가 이행현금흐름보다 작을 때입니다. 이 사례에서도 한 집합이 공정가치 378.0억 원, 이행현금흐름 387.7억 원이라 CSM 0, 손실요소 9.69억 원으로 계산됩니다. 음수 차이의 세부 처리는 기준서 원문을 확인해야 합니다.
이자 부리는 어떤 이율로 합니까?
이 화면은 계약집합마다 고정 할인율 한 값을 입력으로 받습니다. 기준서는 최초 인식 시점의 할인율을 쓰도록 하므로, 운영에서는 그 시점 곡선에서 구한 값을 입력으로 넣어야 합니다. 샘플에서는 2% 안팎의 값을 썼습니다.
해제액은 어떻게 계산합니까?
(기초 + 이자 부리) × 제공 단위 ÷ (제공 단위 + 잔여 단위) 입니다. 그 해에 제공한 보장단위가 남은 보장단위와 합친 전체 중 얼마인지로 CSM 을 당기손익에 해제하는 구조입니다. 제공 단위와 잔여 단위는 회사 입력 가정입니다.
이익잉여금 조정은 어떻게 나옵니까?
종전 기준 부채에서 IFRS 17 부채(이행현금흐름 + CSM)를 뺀 값입니다. 양수면 부채가 줄어 이익잉여금이 늘어나는 방향이고, 음수면 그 반대입니다. 세후 금액과 기타포괄손익으로 갈리는 부분은 이 화면 범위 밖입니다.
재계산 값과 장부 값이 다르면 장부가 틀린 것입니까?
그렇게 단정하지 않습니다. 차이는 재계산 가정이 달라서일 수도, 장부 입력이 달라서일 수도 있습니다. 화면은 차이가 어느 열에서 생겼는지만 정확히 가리고, 판단은 회사와 감사인이 합니다.
요약의 ‘정합성 대사 차이 건수’ 가 0 인데 점검 필요는 6건입니다. 모순 아닙니까?
모순이 아닙니다. 앞의 숫자는 산식끼리의 정합성 여덟 줄에서 걸린 차이 건수라 재계산이 서로 맞는지를 말하고, 점검 필요는 장부와 재계산을 맞춘 결과입니다. 재계산은 맞는데 장부가 다른 집합이 6건이라는 뜻입니다.
금액 단위는 무엇입니까?
원입니다. 화면 값은 서비스가 문자열로 내려주는 소수 없는 정수 금액이고, 이율만 소수 둘째 자리까지 있습니다.
날짜는 전환일 하나만 봅니까?
기대 전환일, 장부 전환일, 최초 인식일 세 가지를 봅니다. 장부 전환일이 기대 전환일과 다르면 R02 가 붙습니다. 기대 전환일은 최초 적용일 직전 연도 개시일로 정하며, 기준서 문단은 확인이 필요합니다.
화면과 조작
조회조건은 어떤 것이 있습니까?
기준 연월, 포트폴리오, 전환 방식, 점검 코드, 점검 결과 다섯 가지입니다. 조회 단추를 누르거나 기준 연월 칸에서 Enter 를 누르면 조회됩니다.
점검 필요로 표시되면 회계 처리가 잘못된 것입니까?
아닙니다. 재계산과 장부가 다르다는 표시일 뿐입니다. 어느 쪽이 맞는지는 입력 가정과 근거 문서를 보고 회사와 감사인이 판단합니다.
요약 숫자는 필터를 따라 바뀝니까?
바뀝니다. 점검 코드로 한 건만 남기면 요약 일곱 숫자도 그 범위로 다시 계산됩니다.
CSV 로 내려받을 수 있습니까?
지금 보고 있는 탭의 표를 CSV 로 내려받습니다. 결산 자료에 붙이거나 감사인에게 줄 때 씁니다.
롤포워드 탭에 공정가치법 집합은 왜 안 나옵니까?
공정가치법은 연도별로 굴리지 않고 전환일 공정가치와 이행현금흐름의 차이로 정하기 때문입니다. 그 집합은 계약집합 명세와 상세 대화상자에서 봅니다.
휴대폰에서도 볼 수 있습니까?
볼 수 있습니다. 창이 좁아지면 필터와 요약이 세로로 쌓이고 표는 가로로 밀어 봅니다. 숨기는 정보는 없습니다.
OData 서비스와 운영 연결
화면은 샘플 데이터를 직접 읽습니까?
아닙니다. 화면은 OData V2 서비스 주소만 부르고, 샘플 데이터는 서비스 뒤에 있습니다. 서비스에 연결되지 않으면 화면은 안내 메시지를 열고 멈춥니다. 운영에서는 서비스 뒤의 출처만 바꾸면 화면 코드는 그대로입니다.
조회조건에 날짜가 들어가면 어떻게 처리합니까?
기대 전환일 · 장부 전환일 · 최초 인식일의 ge · le 조건을 서비스가 직접 처리합니다. 날짜 필터는 구현마다 해석이 갈리기 쉬워 서비스 쪽에서 맞춰 두었습니다.
서비스 이름과 엔티티셋은 무엇입니까?
서비스는 csmtrans_srv 하나이고 GroupSet · LineSet · PortfolioSet · ApproachSet · ReconSet 다섯 엔티티셋이 있습니다. 모두 키가 있고, 조회조건은 표준 $filter 로만 보냅니다.
계약집합이 수천 건이면 느려지지 않습니까?
데모는 24건이라 한 번에 받습니다. 운영에서는 $top · $skip 으로 나누고, 롤포워드와 집계는 CDS · 테이블 함수로 내립니다. 위 CDS 구성이 그 방향입니다.
원천 데이터는 어디서 옵니까?
장부 부채 · 이익잉여금 조정은 ACDOCA 에서 읽습니다. 계약집합 · 이행현금흐름 · 공정가치 · 제공 단위는 보험 업무 시스템에서 오고, SAP 표준 원천이 확인되지 않아 운영 연결 때 확인이 필요합니다.
도입과 운영
도입하려면 무엇부터 해야 합니까?
순서로 적으면 이렇습니다.
① 계약집합 단위와 전환 방식 분류를 확정합니다(보험계리 · 재무회계). ② 방식별 입력(고정 할인율 · 제공 단위 · 이행현금흐름 · 공정가치)의 출처를 정합니다. ③ 장부의 부채 · 이익잉여금 조정 계정을 계약집합에 배부하는 규칙을 합의합니다. ④ 서비스를 운영 출처에 연결하고 샘플과 같은 대사 14종이 도는지 확인합니다.
기존 점검 방식은 없애야 합니까?
없애지 않고 둡니다. 감사 대응과 법정 보고는 표준 거래와 보험 업무 시스템 산출물이 기준이고, 이 화면은 개시 잔액이 서로 맞는지 먼저 걸러 주는 자리입니다.
전환일 이후의 CSM 도 같이 볼 수 있습니까?
이 화면은 전환일 개시 잔액만 다룹니다. 이후 기간의 CSM 증감은 별도 점검 화면의 범위입니다.
고정 할인율이나 제공 단위가 틀리면 어떻게 합니까?
입력이 바뀌면 롤포워드가 바뀌고, 마지막 기말 CSM 이 바뀌어 장부와의 차이가 달라집니다. 화면은 입력을 고치는 자리가 아니라 결과가 장부와 맞는지 보는 자리이므로, 입력의 출처를 먼저 확인해야 합니다.
숫자가 감사인 자료와 다르면 어떻게 확인합니까?
순서가 있습니다.
① 기준 연월과 전환 방식이 같은지 봅니다. ② 같은 집합의 입력(고정 할인율 · 제공 단위 · 이행현금흐름 · 공정가치)이 같은지 봅니다. ③ 롤포워드 줄에서 어느 해부터 값이 갈리는지 찾습니다. ④ 장부 쪽이면 FAGLL03 으로 분개를 열어 봅니다.
이 화면 하나로 개시 재무상태표가 확정됩니까?
확정되지 않습니다. 점검용 화면이라 숫자가 서로 맞는지 보여 줄 뿐이고, 회계 처리의 최종 판단은 회사와 감사인이 합니다.
계약집합 자료는 실제 회사 것입니까?
아닙니다. 가상으로 만든 검증용 샘플입니다. 일부 집합에는 점검 코드가 걸리도록 의도적인 예외를 넣어 두었습니다.
설명서에는 무엇이 있습니까?
앱과 함께 배포되는 설명서에 실행 화면, 재계산 규칙, 점검 코드 판정 규칙, 대사식, 조회조건, 표준 T-code 매핑, 기준서 요구사항 매핑, 원천 테이블과 CDS 스케치, OData 서비스 구성이 정리되어 있습니다.
개시 잔액 점검인데 왜 대사를 14종이나 둡니까?
개시 잔액은 한 번 틀리면 이후 모든 기간으로 번지는 숫자라서, 이 화면에서는 “맞다” 는 말을 사람이 아니라 대사식이 하도록 했습니다. 산식끼리의 정합성 8종이 0 이면 재계산을 믿고 장부 쪽 6종에서 걸리는 것만 보면 됩니다.