4장. 엔진의 현금흐름 추정#

이 장에서 배우는 것

  • 엔진이 계산하는 두 개의 축: 모델포인트와 시간

  • 한 달 동안 현금흐름이 발생하는 순서

  • 보유계약 재귀가 엔진의 중심축인 이유

  • 엔진이 만들어 내는 여섯 갈래의 현금흐름

3장에서 입력(모델포인트와 산출기초)와 계산의 뼈대(시간축, 보유계약, 부호 규약)를 갖췄습니다. 이제 엔진이 그것들을 어떻게 굴려 현금흐름을 만들어 내는지를 볼 차례입니다. 1.6절에서 measure 한 줄 안에서 무엇이 어떤 순서로 계산되는지를 끝까지 펼쳐 보이겠다고 했죠. 이 장이 그 펼침의 시작입니다.

4.1 두 개의 축#

엔진의 계산은 두 축 위에서 일어납니다. 모델포인트 축과 시간 축인데, 성격이 정반대입니다.

모델포인트 축

계약들은 서로 독립입니다. 한 계약의 현금흐름은 다른 계약에 영향을 주지 않습니다. A 계약자가 사망해도 B 계약의 보험료는 그대로죠. 그래서 모델포인트끼리는 서로 기다릴 필요가 없고, 한꺼번에 계산할 수 있습니다.

시간 축

정반대입니다. 이번 달의 상태가 다음 달의 출발점입니다. 50개월 차의 보유계약을 알려면 49개월 차를 먼저 알아야 하고, 그러려면 48개월 차를 알아야 하고, 결국 0개월까지 이어집니다. 시간은 건너뛸 수 없습니다. 0개월부터 보험기간 끝까지 순서대로 밟아야 합니다.

그래서 엔진은 이렇게 돕니다. 시간 축을 따라 한 달씩 전진하면서, 각 달마다 모든 모델포인트의 그 달치를 한꺼번에 계산합니다. 계약을 하나씩 골라 보험기간 끝까지 돌리고 다음 계약으로 넘어가는 방식이 아닙니다.

이 구조가 곧 속도다

모델포인트가 서로 독립이라는 점이 엔진을 빠르게 만듭니다. 수백만 건의 계약이 서로를 기다리지 않으므로, 한 달치 계산을 모든 계약에 대해 한꺼번에 처리할 수 있습니다. 순서를 지켜야 하는 것은 시간 축뿐입니다.

4.2 월 단위 처리 순서#

엔진이 한 달을 처리할 때, 그 안에서 현금흐름은 정해진 순서로 발생합니다. 한 달을 월초(달의 시작)와 월중(달의 도중)으로 나눠 보겠습니다.

월초에 일어나는 일

  • 이번 달 보유계약이 확정됩니다. 지난 달 재귀의 결과죠(4.3절).

  • 보유 중인 계약에서 보험료를 받습니다.

  • 연금 상품이라면 생존연금을 지급합니다.

월중에 일어나는 일

  • 사망이 발생합니다. 보유계약에 사망률을 곱한 만큼이 그 달의 사망자이고, 그들에게 사망보험금이 나갑니다.

  • 해지가 발생합니다. 해지율만큼 계약자가 이탈합니다.

  • 건강 사고가 나면 건강 급부가 나갑니다.

  • 계약을 유지·관리하는 유지비가 나갑니다.

특수한 시점

  • 0개월: 계약을 체결하는 데 드는 신계약비가 한 번 나갑니다.

  • 보험기간 끝: 만기까지 생존한 계약에 만기보험금이 나갑니다.

이 순서에서 기억할 것이 하나 있습니다. 보험료는 월초에 들어오고, 보험금은 월중에 나갑니다. 받는 시점과 주는 시점이 어긋나죠. 이 시점 차이는 5장에서 현금흐름을 할인할 때 다시 중요해집니다. 월초의 현금흐름과 월중의 현금흐름은 서로 다른 시점으로 할인되기 때문입니다.

사망과 해지의 순서도 짚어 둡니다. 엔진은 먼저 사망자를 덜어 내고, 살아남은 계약에서 해지자를 덜어 냅니다. 이 순서가 다음 절의 재귀 식에 그대로 담깁니다.

4.3 보유계약 재귀#

3.4절에서 보유계약이 매달 사망과 해지로 줄어든다고 했습니다.

다음 달 보유계약 = 이번 달 보유계약 × (1 - 사망률) × (1 - 해지율)

이 식이 엔진의 중심축입니다. 두 가지 이유에서입니다.

첫째, 이 식이 시간을 순서대로 가게 만듭니다. 0개월의 보유계약은 count(3장)에서 출발하고, 그다음부터는 매달 같은 규칙을 한 번씩 적용합니다. t개월의 보유계약은 오직 t-1개월의 보유계약에서만 나옵니다. 이렇게 앞의 결과가 뒤의 입력이 되는 계산이 재귀이고, 이것이 4.1절에서 본 “시간은 건너뛸 수 없다”의 정체입니다.

둘째, 이 식이 모든 현금흐름의 크기를 정합니다. 보험료는 보유계약에 비례하고, 사망보험금은 그 달 사망자(보유계약 × 사망률)에 비례하며, 유지비도 보유계약에 비례합니다. 보유계약 곡선이 정해지면 그 위에 얹히는 현금흐름의 크기가 따라 정해집니다.

그래서 엔진이 한 달을 처리할 때 가장 먼저 하는 일이 이 재귀를 한 칸 전진시키는 것입니다. 그 달의 보유계약이 정해지고, 그 위에 그 달의 현금흐름이 얹힙니다. 3.4절에서 보유계약이 1.0000에서 0.9702, 0.9413으로 줄어든 예가 바로 이 재귀를 세 칸 돌린 결과입니다.

4.4 현금흐름의 여섯 갈래#

엔진이 각 달에 만들어 내는 현금흐름은 여섯 갈래입니다.

현금흐름

방향

발생 시점

크기

보험료

유입

매월 월초

보유계약 × 보험료 (일시납이면 0개월에 한 번)

사망보험금

유출

매월 월중

그 달 사망자 × 사망보험금

건강 급부

유출

매월 월중

건강 사고 발생 × 급부액

사업비

유출

0개월 + 매월

신계약비(0개월) + 유지비(매 보유 월)

생존연금

유출

매월 월초

보유계약 × 연금액

만기보험금

유출

보험기간 끝

만기 생존자 × 만기보험금

여섯 갈래 가운데 보험료 하나만 유입입니다. 부채를 줄이므로 음(-)이죠. 나머지 다섯은 모두 유출이고, 부채를 늘리므로 양(+)입니다. 3.5절의 부호 규약 그대로입니다.

상품마다 쓰이는 갈래가 다릅니다. 정기보험은 보험료·사망보험금·사업비 세 갈래면 충분하고, 양로보험은 여기에 만기보험금이, 연금보험은 생존연금이 더해집니다. 3.1절에서 모델포인트에 적은 급부가 어느 갈래를 쓸지 정합니다.

사망보험금과 건강 급부를 굳이 따로 다루는 데에는 이유가 있습니다. 6장에서 위험조정이 보험위험(사망)과 발생위험(건강)을 서로 다른 위험으로 값매기기 때문입니다. 엔진은 처음부터 이 둘을 갈라서 쌓아 둡니다.

엔진이 보험기간 끝까지 다 돌고 나면, 모델포인트마다 여섯 갈래 × 개월 수만큼의 현금흐름 표가 손에 들어옵니다. 이것이 BEL·RA·CSM의 원재료입니다.

4.5 다음 장#

엔진은 이제 각 계약의 미래 현금흐름을 월별로 모두 만들어 냈습니다. 하지만 이것은 아직 미래의 금액들이 시점마다 흩어져 있는 상태입니다. 이것을 하나의 부채 숫자로 모으려면 현재가치로 할인해 합쳐야 합니다.

5장에서는 그 작업, 곧 여섯 갈래 현금흐름을 현재가치로 모아 최선추정부채(BEL)를 구하는 과정을 다룹니다. 후방 재귀, 월초·월중 할인, 그리고 손으로 직접 따라 계산해 검증하는 2개월 예제까지 함께 봅니다.