Technical Notes#
Status: Draft, 2026-09-03 (all cited sources accessed 2026-09-03).
Scope note. These notes turn the standardized composite long-term-care insurance
(ganbyeong boheom, 간병보험) of product-spec.md (same directory) into a reference
liability cash-flow projection on paper, and then into LTC_KR_S beside it. They
describe no single insurer’s contract. [S#] and [R#] tags resolve against sources.md,
whose numbering is carried verbatim from _research/long-term-care.md and is frozen;
[REG-R#] tags resolve against the cross-product reference library
references/regulatory-and-actuarial-references.md, whose own R-numbering is separate and
also frozen. std marks a standardization introduced for the reference
implementation, always with a rationale and, where one exists, the observed range;
unverified marks a claim that could not be confirmed against a retrieved document.
Every contractual parameter value here is identical to product-spec.md’s, and
every number in the worked example is read off the shipped model rather than
recomputed by hand.
Seven assumption inputs appear here that product-spec.md does not carry, because
they are modelling constructs rather than contractual terms, and each is introduced below
as such: the certification-prevalence curve by sex and 만나이; the
prevalence-to-incidence conversion and its closing assumption direct_entry_share;
the care-state and light-grade mortality multiples; the sub-65 gradient carried
off the one disclosed 예정위험률; the grade-share vector by age band; the lapse
level; and the expense and commission scales together with the 계약자적립액
reconstruction that drives the surrender-value cliff.
This document’s deltas against the cancer chassis#
This document states its deltas against
the cancer technical notes (암보험), the krlib
fixed-benefit (정액) 제3보험 chassis, whose model is
Cancer_KR_S. That document specifies five mechanics once and in
full — the diagnosis-triggered lump sum on a tier ladder, the 90일 면책기간, the 감액기간,
the 유사암 reduced tier, and a post-diagnosis survival model — and this one does not
restate them. It also settles, for the whole library, the 만나이 projection basis, the
표준약관 furniture (보험나이, 청약철회, 품질보증해지, 계약 전 알릴 의무, 납입최고, 실효,
부활), the statutory 계약자적립액 payable on a death the contract does not cover, the
absence of a policy loan on a 미지급형 form, and the surrender-value regime of 감독규정
제7-65조 through 제7-68조 as extended to 제3보험 by 제7-69조 and 제7-70조 REG-R19.
Six things change, and five of them change the shape of the model rather than a parameter in it.
The trigger is a statute’s, not a classification’s — and it is a state, not an event. The chassis reads a KCD code that a pathologist assigns and an insurer applies. Here a 등급판정위원회 sitting inside 국민건강보험공단 scores an applicant on a 52-item instrument and awards a 장기요양등급, and the 지급사유 is written by reference to that award and to nothing else [S1] [S2] [S3] [S4]. The statutory definition carries its own six-month duration test — 「6개월 이상 동안 혼자서 일상생활을 수행하기 어렵다고 인정되는 자」 REG-R54 제2조제2호 — so the contract needs no persistence clause of its own, and the point thresholds live in a 대통령령 that can be moved without reference to any insurer REG-R55 제7조제1항.
Four compartments, not three, and the middle one is where the claims come from. The chassis carries a never-diagnosed state, a 특정소액암 state that still pays premium and a waived state that does not. This model carries a never-certified state, a light-grade state (3~5등급 and 인지지원등급, below the contractual threshold) that still pays premium and still lapses, and an absorbing care state that pays neither. The parallel is exact and it is not a coincidence: in both products the waiver fires at a threshold above the first insured event, so there is a diagnosed population the contract has not yet started paying for. What is new here is that the middle compartment is the dominant route into the benefit: only 13.3% of current 1등급 certifications arose from a first application, against 69.5% from a renewal, whereas at 인지지원등급 — a grade nobody progresses down into — the first-application share is 69.8% R4 표2-5. Severe-grade lives are, in the main, people who entered the scheme years earlier at a light grade and deteriorated.
The chassis’s incidence basis is sourced; this one’s is a prevalence and has to be converted. 보험개발원 publishes a dated 「기타피부암 및 갑상선암 이외의 암 발생률」 grid by age and sex on its 장기손해보험 참조순보험요율 display REG-R61, so
Cancer_KR_Sreads an incidence directly and spends its judgement on the tier decomposition of it. No Korean body publishes a long-term-care incidence table at all. What is published is the 국민건강보험공단 노인장기요양보험 통계연보’s 연령별 인정률 R4, and an 인정률 is a prevalence — a point-in-time count of people holding a certification. The conversion is the modelling work of this product, it needs the mortality of the care state inside it, and it is done in the open in section (c) below rather than replaced by an assumed incidence rate.The post-onset survival model is the product, not a correction to it. On the chassis, survival after diagnosis decides how long the waiver, the inpatient limb and the treatment limb run — real, but second-order against a lump sum paid on day one. Here the 간병연금 is metered month by month on survival in the care state for up to ten years, the waiver stops the premium for as long as that state lasts, and — this is the part with no chassis counterpart — the same care-state mortality multiple is also a term of the incidence identity, so it moves entry and run-off in opposite directions at once. There is no number in this model that does not depend on it.
No reduced tier; a threshold ladder instead. The chassis’s 유사암 tier covers a high-frequency, high-survival decrement at a fraction of the general amount without repricing. There is no analogue here. The light grades are reached by moving the threshold — 1등급 / 1~2 / 1~3 / 1~4 / 1~5 / 1~인지지원등급, always cumulative from the top — which is a different product at a different price, about 4.5 : 1 between 1~5등급 and 1~2등급 at the same 가입금액 [S2, derived], not a fraction of this one. The threshold is a model point field, and widening it changes the frequency and the timing together.
Two parameter-level deltas. The 예정이율 is sourced here at 연단위 복리 2.0% [S1] against the chassis’s std 2.50%, because one carrier states it in terms in a 기초서류 extract; it is a 2023-vintage 우정사업본부 rate and the three cautions travel with it (see (b) below). And the 표준해약공제액 is taken from the supervisor’s 13-months-of-premium rule of thumb REG-R29 rather than from the chassis’s
notional_sa_ratioroute through [별표 15] 제9호, because 제9호’s own third bullet excludes 「치매 또는 일상생활장해 등 타인의 간병을 필요로 하는 상태」 risk premium from the ratio that gives a contract with no death benefit its notional 보험가입금액 REG-R21. Read literally, the formula the chassis inherits excludes long-term-care risk premium from the very quantity a long-term-care contract needs.
Everything else is the chassis’s and is not restated: 무배당 with no policyholder dividend REG-R12; a fixed sum (정액) paid on an event rather than an indemnity against a cost; a benefit payable 최초 1회한 that extinguishes the benefit line paying it without terminating the contract; the 해약환급금 미지급형 form with its cliff at 납입완료; the 계약자적립액 on non-covered death REG-R17 REG-R25 제22조 REG-R50 제736조; and the absence of a 보험계약대출 and therefore of any automatic premium loan REG-R28.
One product this document is not about. Korean commentary in 2024–2025 uses 간병
overwhelmingly to mean 간병인사용일당, a hospital-days indemnity whose loss ratios
reached about 100% in the life sector at August 2024 against 18.7% two years earlier
R15, news. It sits inside the same 약관 [S1] [S2] [S4] and shares nothing else;
LTC_KR_S does not model it.
Model scope and conventions#
Purpose. Project gross best-estimate liability cash flows for a single-policy model point of 간병보험: office premiums; the 장기요양진단급여금 on first award of a grade at or above the contractual threshold; the 간병연금 metered by an annual survival test; the optional 치매진단급여금; the 계약자적립액 paid on a death from a cause the contract does not cover; the 해약환급금 paid on surrender; the premiums returned where a certification inside the 보장개시일 window makes the cover 무효; maintenance and claim-handling expense; and commission. Undiscounted and gross of reinsurance. Korea runs three measurement bases over one such stream and all three are live: K-IFRS 제1117호, mandatory since 2023-01-01 REG-R60; K-ICS from the same quarter REG-R13; and the 해약환급금준비금, which has no counterpart anywhere else in this repository REG-R11. Discounting, the risk adjustment, the CSM, 요구자본 and every reserve are out of scope and are cited, not reproduced — see Valuation and reserve pointers.
Projection frequency. Monthly grid, and monthly by construction rather than by approximation. 월납 is the dominant retail mode and the mode of every published rate card in the file [S1] [S2]; the 90-day 보장개시일 lands on the grid boundary
t = 3; the one-year 감액기간 lands ont = 12; and — the mechanic that forces the grid — the 간병연금 instalment is monthly while its survival test is annual, so a model on an annual grid cannot represent the twelve-month guarantee at all.tis the policy month and it is 0-based:t = 0is the first projected month,t = 0, 1, …, n − 1withn = proj_len(); monthtis the interval fromttot + 1months after the 보험계약일; and the contractual policy year is the derived 1-based labely(t) = floor(t / 12) + 1.proj_len()is the number of projected months, the frame’s exclusive end — not the last index.proj_len = 12 × (term_age − issue_age) + 1, so 601 on the anchor cell and 601 rows inresult_cf(), indexedt = 0 … 600; the frame isrange(proj_len())and the last index isproj_len − 1. The+ 1is the terminal row: the 600 months of cover aret = 0 … proj_len − 2, and montht = proj_len − 1is the 90세 계약해당일 itself, which carries the surviving in-force count,pols_maturityrecords the cover ending, and every cash flow on that row is zero — 「이 상품은 순수보장성보험으로 보험계약 만기시 지급받는 금액(만기환급금)이 없습니다」 [S3].The waiting period lands on a grid boundary. The 장기요양상태 보장개시일 is 「계약일(부활(효력회복)계약의 경우 부활(효력회복)일)부터 그 날을 포함하여 90일이 지난날의 다음 날」 [S2]. On a monthly grid that is three whole months,
t = 3std, and the model claims no finer precision. A certification inside the window does not defer the claim: the benefit is 무효 and the premiums paid for it come back [S1] [S2]. This is the chassis’s mechanism with the chassis’s consequence, but without the chassis’s option —Cancer_KR_Slets the policyholder cancel the rest of the contract within 90 days of the 진단확정일 [S1 of that product], and no retrieved long-term-care contract has any equivalent, nor any revival clause.Timing conventions std. Office premium received at the start of month
t, and only by lives not on 납입면제; maintenance expense at the start of montht; the lump sum, the annuity instalment, the dementia benefit, the 계약자적립액 on death, the 해약환급금 on lapse, the refund on a voided cover and the claim-handling expense at the end of montht; decrements at the end of montht, in the order certification, then mortality, then lapse. Acquisition expense and initial commission att = 0.Claim-date convention std. Every claim is dated at the month the 판정일 falls in. The determination is due within 30 days of the application, extendable by a further 30 R3, citing 법 제16조제1항. The 보장개시일 test is measured to the 판정일, so a model dating the claim at the application would let a certification through the window the contract voids.
The annuity’s first instalment falls in the month of certification — 「진단 확정된 날을 최초로 하여 10년 동안 매년 진단 확정일에 살아있을 때」, 「최초 1년(12개월) 보증지급」, 「10년(120개월)을 최고한도로 지급」 [S1]. The
u = 0term of the ledger is the entrant cohort itself; there is no deferral.Age basis. 만나이 (man nai, age last birthday), incremented on the policy month grid:
age(t) = x + floor(t / 12). The contract ages on 보험나이 (boheom nai): 「계약일 현재 피보험자의 실제 만 나이를 기준으로 6개월 미만의 끝수는 버리고 6개월 이상의 끝수는 1년으로 하여 계산」 REG-R25 제21조, and the two differ for roughly half of all issue dates. The 만나이 basis is not a concession here, as it is on the chassis; it is the right basis twice over. Every public series this model’s decrements are built from is published on 만나이 — the 통계연보 연령별 인정률 R4, the 치매역학조사 prevalence R7, and the 생명표 behind the mortality REG-R38 REG-R39 — and the benefit definition itself contains a 만나이 test: 「만 65세 이상 노인」 또는 「노인성 질병을 가진 만 65세 미만의 자」 [S2] REG-R54 제2조제1호. The 보험나이 offset therefore survives only in the premium, which enters this model as an input, so no conversion is applied anywhere. The direction is nonetheless stated: the disclosed 예정위험률 the conversion is calibrated against is quoted on 보험나이, about half a year older than this model’s 만나이, which is one of the four reasons the calibration ratio in (c) sits below one.Currency. KRW throughout. There is no minor unit in the contract, but expected values are fractional; displayed to the precision each table states.
Model points. One policy at a time, projected on an expected (probability-weighted) basis.
Projectionis parameterized bypoint_id; no aggregation logic is specified here. Nine points are shipped and every one satisfies everycheck_*()cells.Termination. Cover to the 90세 계약해당일,
t = proj_len − 1. The decrements are death, lapse, the voided cover of the waiting-period window, and maturity — and nothing else. There is no benefit-driven termination: payment of the 진단급여금 extinguishes that benefit line and leaves the contract, the annuity and the dementia rider running [S1] [S2] [S3] [S4].Contract boundary. The long-term-care benefit is written 비갱신형 on every document retrieved [S1] [S2], with a level premium, 무배당, and no insurer repricing right on the benefit, so every future premium and benefit is inside the boundary and the horizon is the whole term. That is the opposite of the Korean medical market, where annual renewal is the defining feature, and it is the right answer for a benefit whose claim arrives thirty years after issue: a renewable long-term-care rider re-rated at attained age would price itself out of existence exactly when it was needed. The renewable form is not modelled.
Rounding. Intermediates at full double precision. The worked example displays policy counts to ten decimals, first-year cash flows to six, milestone rows to four and aggregates to four. Monthly rows rounded for display do not re-add to the displayed totals; the totals are sums of unrounded values.
What this model is not. It is a mechanics demonstration. The premium is a model point input, the whole morbidity basis is a construction from public administrative statistics, the post-onset mortality basis is std with no published table behind it anywhere, and the expense scales are std. Replace the assumption tables with company data before drawing any conclusion from the output.
Model point attributes#
Attribute |
Type |
Anchor cell ( |
|---|---|---|
|
str |
LTC-000001 |
|
int, 만나이, 30–70 |
40 |
|
enum {M, F} |
M |
|
int, 만기나이 |
90 |
|
int years, 납입기간 |
20 |
|
enum {monthly} |
monthly (월납) |
|
enum {g1, g2, g3, g4, g5, g6} |
g2 — 장기요양 1~2등급 |
|
보험가입금액, KRW |
10,000,000 (1,000만원) |
|
bool — the 간병연금 rider |
True |
|
KRW per month at an entry grade of 1등급 |
500,000 |
|
KRW per month at any other grade in the gate |
300,000 |
|
int months, the 최고한도 |
120 |
|
int months guaranteed against death |
12 |
|
bool — the 치매진단급여금 rider |
False |
|
KRW (rider off on the anchor) |
10,000,000 |
|
int months, 장기요양상태 보장개시일 on the grid |
3 |
|
int months, 감액기간 ∈ {0, 12, 24} |
12 |
|
enum {mijigeup, half_during, pyojun} |
mijigeup (해약환급금 미지급형) |
|
enum {mujihae, pyojun} |
mujihae |
|
float — the 간편심사 premium multiplier |
1.0 (일반심사) |
|
KRW per month, office premium, model-point input |
5,600 std |
Derived scalars on the anchor cell, all read off the model: proj_len() = 601,
prem_period_mths() = 240, premium_mth_pp() = 5,600.0, pols_if_init() = 1.0,
net_prem_ratio() = 0.7931662309087683, comm_init_pp() = 43,680.0 and
sub65_gradient() = 0.12221178050285361.
premium is an input, not a computed quantity, and the reason is the same as on the
chassis with one aggravation. No Korean carrier publishes a long-term-care rate card at the
composite’s specification: the 산출방법서 and the 사업방법서 are 기초서류 filed with the FSC
and are not public REG-R2, and the one published card [S2] quotes covers that do not
match the composite one for one. The anchor is therefore constructed from two rows of
that card, both at 90세만기, 20년납, 월납, 일반심사형, 보험가입금액 1,000만원:
₩3,300 for the 주계약 장기요양(1~2등급)급여금 at male 40, plus ₩580 for the
장기요양(1-2등급)재가급여종신지원특약 which pays ₩100,000 a month on the same trigger,
scaled to the composite’s grade-weighted ₩400,000 a month — ₩2,320 — giving ₩5,620,
rounded to ₩5,600 std. The female cell is ₩5,000 + 4 × ₩850 = ₩8,400
[S2, derived]. Two offsetting differences are recorded rather than adjusted for: the [S2] rider
runs 최대 종신 where the composite caps at 120 months (dearer), and it requires the
insured to be using 재가급여 in the month where the composite tests only survival
(cheaper).
On this model’s own basis the anchor premium is not far wrong. The present value at
the 예정이율 of 2.0% of the anchor cell’s long-term-care benefit outgo is 46.03% of the
present value of premium income, and the present value of expenses, claim expenses and
commission is 20.26%, against the 20.68% loading that net_prem_ratio() implies
from the published 환급률 progression. Read that pair carefully. The 20.26% is
calibrated to the 20.68% — expense_maint is set to land near it (see (c) below) — so
their agreement is a construction and the 0.42-point gap is the rounding of expense_maint to
a whole ₩200. What is not calibrated is the 46.03%. Nothing ties the incidence basis,
built from the 통계연보 R4, to the premium, built from a rate card [S2]; that a benefit
ratio of 46% and a loading of 21% together leave the contract close to self-supporting at the
disclosed 예정이율 is the finding here, and it is the one figure two unrelated documents had
to agree on without being made to.
The eight other model points exercise both sexes, issue ages 30 to 70, all six thresholds
from 1등급 to 1~인지지원등급, 90 / 95 / 100세만기, 10 / 20 / 30년납, the three
surrender-value forms, the 간병연금 on and off, the 치매 rider on and off, the 간편심사
loading, the 우체국 180-day waiting period with its two-year 감액, and the 표준형 lapse
comparison vector. Model point 8’s positive net_cf is an artefact and is described as
one in Key sensitivities below.
State variables#
Variable |
Description |
Updated |
|---|---|---|
|
In force at the start of month |
monthly recursion |
|
In force and certified at a grade below |
monthly recursion |
|
In force and certified at or above |
monthly recursion |
|
|
derived |
|
|
derived |
|
The three counts after the month’s certifications, before mortality |
derived |
|
In force and already paid the 치매진단급여금; a first-event counter, not a compartment |
monthly recursion |
|
계약자적립액 per policy at the start of month |
two-branch recursion |
|
해약환급금 per policy paid on a lapse in month |
derived |
|
Attained 만나이 = |
annually |
|
Annual mortality of the three compartments at |
lookup / derived |
|
All-grade certification prevalence at 만나이 |
fitted logistic |
|
Prevalence at or above, and below, |
derived |
|
Annual direct entry rate, healthy → care |
derived |
|
Annual entry rate, healthy → light grade |
derived |
|
Annual progression rate, light grade → care |
derived |
|
Monthly lapse, applied to |
derived |
|
The 감액 factor applying to a certification dated in month |
derived |
|
The monthly 간병연금 of the cohort certified in month |
derived |
|
Net cash flow of month |
monthly |
Why four compartments and not three. The chassis’s three states are forced by its waiver clause; ours are forced by the certification statistics. A light-grade life is certified — the state is real, and it carries impaired mortality — but the contract does nothing for it: no benefit, no waiver, no annuity, and no retrieved Korean contract pays anything at a grade below the stated threshold. So a light-grade life keeps paying premium and stays exposed to lapse, exactly like the chassis’s 특정소액암 life, and it is the pool progression draws from. On the composite’s 1~2등급 gate the light compartment is about six sevenths of all certified lives: 1·2등급 are 13.28% of the 1,165,030 certified at end-2024 R4 표2-5, derived. Collapsing the two either stops a premium the contract goes on charging or invents a benefit at a grade the contract does not cover, and — the larger error — it makes the severe-grade entry rate a healthy-life incidence, which puts the cash flow years too early.
The care compartment is absorbing, and the contract is drafted so that it is. The 진단급여금 cannot be re-triggered [S1] [S2] [S3] [S4]; the 간병연금’s amount is fixed by the grade at first certification and 「그 이후에 장기요양등급이 변경되더라도 지급액은 변경되지 않습니다」 [S1]; the instalments are metered on survival, not on continued certification [S1]; the premium is waived [S3]; and surrender is barred — 「최초 지급사유가 발생한 후에는 이 특약을 해지할 수 없습니다」 [S1]. So no recovery, no downgrade and no lapse in the care state are a property of the contract before they are an assumption of the model. That is worth saying plainly, because grades genuinely move both ways — 107,365 of the 1,165,030 current certifications arose from a 등급변경신청 R4 표2-5 and one carrier drafts a rider around exactly that [S3] — and a model of a utilisation-conditioned benefit could not make this simplification at all. See Key sensitivities.
The dementia counter is nested, never added. pols_dem(t) rides on the in-force block
and is held at or below pols_if(t) so that pols_entry_dem always draws from a
non-negative pool. It is a first-event ledger on the same lives, not a fifth compartment.
Driving it off a sourced dementia prevalence R7 rather than off a share of the
certification rate is deliberate: the two triggers are correlated but not proportional
— dementia is the sole qualifying condition for 5등급 and 인지지원등급 REG-R55 제7조제1항
and is present in 42.3% of certified decedents R11, yet most CDR 1 lives are nowhere near
a 1·2등급 certification.
Three absences are product facts, not gaps. There is no death benefit [S1] [S3], so
claims_death is a return of the 계약자적립액 and not a sum assured. There is no
보험계약대출 and no automatic premium loan during the 납입기간 on the 미지급형 form,
because there is no surrender value to lend against REG-R25 제33조 REG-R28 — a missed
premium really does lapse the contract at the end of the 14-day 납입최고. And there is no
만기환급금: claims(proj_len − 1, "MATURITY") is zero and the column exists only so that the
statement’s shape matches the rest of the library.
Assumption inputs#
(a) Contractual / guaranteed elements (cited; the insurer cannot change them)#
Input |
Value |
Basis |
|---|---|---|
Trigger |
Award of a 장기요양등급 at or above |
[S1] [S2] [S3] [S4]; REG-R54 제15조 |
Eligibility gate |
「만 65세 이상 노인」 or a person under 65 with one of the 25 노인성 질병 the 시행령 [별표 1] lists |
[S2]; REG-R54 제2조제1호 REG-R55 |
Grade point bands |
1등급 95점 이상 · 2등급 75~95 · 3등급 60~75 · 4등급 51~60 · 5등급 45~51 (치매 한정) · 인지지원등급 45점 미만 (치매 한정) |
REG-R55 제7조제1항; R3; reproduced in a carrier’s own document [S2] |
장기요양진단급여금 |
|
[S1] [S2] [S3] [S4]; threshold std |
장기요양상태 보장개시일 |
「계약일…부터 그 날을 포함하여 90일이 지난날의 다음 날」, |
[S2]; std, observed range none / 90 / 180 days |
Pre-inception certification |
The affected cover is 무효 and the premiums paid for it are returned; no cancellation option and no revival |
[S1] [S2] |
감액기간 |
1 year at 50% where the cause is 질병; the full amount where the cause is 상해/재해 |
[S4]; length std, observed none / 1yr / 2yr |
The 감액 is frozen |
The reduction decision is fixed at first certification and does not change as later instalments fall outside the window |
[S1] |
간병연금 |
Monthly from the 진단확정일: ₩500,000 where the entry grade is 1등급, ₩300,000 otherwise; annual survival test on each anniversary of the 진단확정일; first 12 months guaranteed; 120 months maximum |
[S1]; shape std |
Annuity amount frozen |
Set by the grade at first certification and never re-rated — 「그 이후에 장기요양등급이 변경되더라도 지급액은 변경되지 않습니다」 |
[S1] |
Annuity on death |
The stream stops; where death follows a paid instalment no 책임준비금 is returned |
[S1] |
Surrender after the annuity starts |
Barred — 「최초 지급사유가 발생한 후에는 이 특약을 해지할 수 없습니다」 |
[S1] |
Proof of life |
「매년 진단 확정일에 피보험자의 주민등록등본을 제출하여야 합니다」 — an annual administrative event |
[S1] |
보험료 납입면제 |
On the award of 1등급 or 2등급, waiving the 기본계약 and every attached rider; waived premiums treated as paid |
[S3]; threshold std |
치매진단급여금 |
Optional: ₩10,000,000 on the first 최종진단확정 of CDR 1 이상, once only across the tier set, behind a one-year 보장개시일 and the definition’s own 90-day persistence test |
[S2] [S4]; tier std |
Payment on non-covered death |
The 계약자적립액 at the date of death plus unearned premium, whereupon the contract ends |
|
General death benefit |
None |
[S1] [S3]; std |
만기환급금 |
None — 「이 상품은 순수보장성보험으로 …」 |
[S3] |
Surrender value form |
미지급형: 0% during the 납입기간, 50% of the notional 기본형 value afterwards |
[S2]; REG-R19 제7-66조제4항 |
해약환급금 floor |
|
|
계약자적립액 accrual |
Monthly before 납입완료, daily afterwards; permitted to be computed on an annualised premium basis |
|
Refusal on a defective certification |
Where the grade was obtained by 허위 또는 부당 판정, nothing is paid; and where the public benefit is restricted under 노인장기요양보험법 제29조 |
[S1] [S2] [S4] |
납입최고 (grace) |
At least 14 days; the contract terminates the day after the 납입유예기간 ends |
[S1]; REG-R25 제26조 |
부활 |
Within three years; the 보장개시일 clock restarts from the 부활일 |
[S1]; REG-R25 제27조 |
Expiry |
At the 90세 계약해당일; nothing is paid |
[S3] |
The statutory-change clause, which has no chassis counterpart and is not modelled. No
retrieved contract gives the insurer a 기초율변경권 on the long-term-care benefit. What it
gives instead is a contract-continuity provision: where the statute is amended so that
the grades cease to exist or cease to be determinable, the insurer 「객관적이고 합리적인
범위 내에서 기존 계약내용에 상응하는 “장기요양상태”와 관련된 새로운 보장내용으로 이 계약의
내용을 변경합니다」 [S3], and the definition itself names a successor body 「향후 제도변경시
에는 동 위원회와 동일한 기능을 수행하는 기관」 [S4]. Neither is a repricing right. The
asymmetry is the central risk of the Korean product and it is real: the 인지지원등급 was
created out of nothing on 2018-01-01 R6 and enlarged the covered population of every
「1~인지지원등급」 rider overnight, at no additional premium. LTC_KR_S models the basis
that exists and carries the risk as a stated model risk, not as a parameter.
(b) Insurer-discretionary current elements#
This class is nearly empty, and its emptiness is the product fact — the same position as the chassis, and for a stronger reason. The composite is 무배당 wherever the dividend basis is stated [S1] [S2] [S3] [S4], so there is no 계약자배당 and the surplus-distribution machinery of 감독규정 제6-11조의7 and 제6-13조 does not attach REG-R12. The design is 금리확정형, so there is no 공시이율 to reset and no 최저보증이율 to bind. There is no premium review on the 비갱신형 chassis and no MVA. What remains:
Input |
Snapshot value |
Basis |
|---|---|---|
예정이율 / 계약자적립액 적용이율 |
2.0% 연단위 복리, 금리확정형 — 「무배당 우체국간병비보험 2309의 주계약 및 특약에 적용한 예정이율은 연단위 복리 2.0%입니다」 |
Sourced [S1] — the only Korean long-term-care 예정이율 in any retrieved document |
Incidence basis in the filed rate |
The insurer’s own, in the 산출방법서, a 기초서류 filed with the FSC and not published |
|
간편심사 pool |
A premium multiplier of 1.36–1.43× on the main contract [S2, derived]; the pool’s own incidence is in no source |
multiplier sourced; incidence std |
지정대리청구인 |
Always designated; up to two, one as 대표대리인. No cash-flow effect and a mandatory operational feature of a product whose claimant usually cannot claim |
[S1] [S3] |
장애인전용보험전환특약 |
Raises the tax credit from 12% to 15% where the insured or beneficiary is a 소득세법 장애인; policyholder-side, not modelled |
[S1] [S2]; REG-R57 |
Three cautions travel with the 2.0%, and they are why it is the one place in krlib
where a sourced number is arguably weaker than a std one would be. It is a
2023-vintage rate on a 2309 product, and the 예정이율 moves with the market. It is a
우정사업본부 rate, and 우체국 insurance is written outside 보험업법. And it prices a
different benefit mix: 우체국’s 주계약 pays a 재해사망보험금 and the long-term-care
covers are riders on it. It is nonetheless preferred to an invented figure — and at 2.0%
against the chassis’s std 2.50% the composite is the more conservative of the two on
a benefit payable forty years out. Note also that a full-text search of the 감독규정 returns
zero occurrences of 예정이율 REG-R9: the regulation speaks only of the 계약자적립액
적용이율 and of the 금리확정형 / 금리연동형 distinction REG-R48, so the 예정이율 of a
specific Korean product is not a published number for any other product in this library.
(c) Behavioral / experience assumptions (modeler’s view — all std)#
Mortality of the never-certified. mort_table.csv is a construction, not a copy.
경험생명표 (제10회, applied from 2024-04) is produced by 보험개발원 and is not released in
full: what is published is the 평균수명 and the 기대여명, not the rates REG-R33
REG-R34. What is shipped is a Makeham–Gompertz
q(x) = 1 − exp( −( A + B c^x ) ) [std]
with A = 0.0003 std and c = 1.10 std, and B solved per sex so that the
complete expectation of life at 65 reproduces the published 제10회 경험생명표 65세
기대여명 — 23.7 years for men and 27.1 for women REG-R33. That gives
B = 1.494698342e-05 (M) and 1.018884285e-05 (F), with a terminal age of 120 where
q = 1. The construction is not fitted to anything else and it reproduces the second
published summary statistic without being asked to: the implied 평균수명 at issue age 40 is
86.4 for men against the published 86.3, and 90.3 for women against 90.7. That is a
cross-check on the shape, not evidence about any insurer’s experience, and no conclusion
about Korean insured mortality should be drawn from the file.
mort_rate_mth(t) = 1 − (1 − q(age(t)))^(1/12) std. There is no best-estimate
adjustment factor: the calibration anchor is an experience statistic, not a valuation
table with a prudential margin, so there is nothing to unwind.
This is a delta against the chassis and it runs the right way. Cancer_KR_S calibrates
its Makeham on the population 생명표’s 기대여명 at 40 and 65 REG-R38 — 19.5 years at
65 for a man. This model calibrates on the insured table’s 23.7 at the same age, so its
healthy lives are materially lighter than the chassis’s. On a product whose benefit is a
living one that is the conservative direction: longer survival means more entrants into the
care state and more annuity instalments once there. On a cancer contract the same choice
would be the other way round. Both are std and both say which table they used; a reader
comparing lifetime claim rates across the two products should not read the difference as
experience.
Care-state and light-grade mortality — the multiples, and where they come from. No retrieved source publishes a post-certification mortality table by grade, and 보험개발원 publishes neither a 장기요양 incidence table nor a post-onset mortality table at all. The model carries flat multiples:
mort_rate_care(t) = min(1, care_mort_mult × q(age(t))), care_mort_mult = 3.0 [std]
mort_rate_light(t) = min(1, light_mort_mult × q(age(t))), light_mort_mult = 1.8 [std]
care_mort_mult = 3.0 is derived rather than assumed, from two sourced quantities.
The yearbook roll-forward and the application-route estimator agree that the mean duration
of a certification is near 4 to 5.5 years (see the conversion below), and the mean
만나이 of a certified decedent is over 75 R11. At 만나이 82 on the shipped table a mean
duration of 4.5 years implies a force of 0.222 against a healthy force of 0.075 — a multiple
of 2.96. The one retrieved study measuring time from certification to death — 516.2
days, 8.7% inside a month, 45.6% inside a year, on 271,474 people R11 — is a
right-censored decedent cohort: only people who died inside a 4.5-year observation
window are in it, so everybody with a long duration is excluded by construction. It is a
lower bound on the mean duration and it fixes the early shape here, not the level.
light_mort_mult = 1.8 has no source and no observed range. It is bounded above by the
care multiple and below by unity, and R11’s mean 인정점수 at death of 82.1 — squarely
inside 2등급 — says the deaths of that cohort are concentrated in the severe grades, so a
light-grade life is materially healthier than the cohort the study observed.
care_mort_mult is not only a post-onset assumption. It is also the excess-mortality
term of the incidence identity below, so it moves the entry rate and the annuity’s run-off
in opposite directions at once. That coupling is the least obvious property of this
model and it is varied in a sensitivity rather than described.
Prevalence to incidence — the conversion, shown rather than assumed#
The published quantity is a prevalence. The 2024 노인장기요양보험 통계연보’s 연령별 인정률 counts people holding a valid certification at a point in time, not people entering one R4 표2-9, 표1-2, derived:
연령 |
인정자 |
인구 |
인정률 (T) |
인정률 (남) |
인정률 (여) |
|---|---|---|---|---|---|
65–69 |
66,955 |
3,715,757 |
1.80% |
1.98% |
1.63% |
70–74 |
102,751 |
2,437,413 |
4.22% |
3.95% |
4.45% |
75–79 |
176,578 |
1,796,342 |
9.83% |
7.45% |
11.76% |
80–84 |
320,148 |
1,344,376 |
23.81% |
15.45% |
29.24% |
85+ |
461,622 |
1,105,925 |
41.74% |
28.63% |
47.31% |
65+ |
1,128,054 |
10,399,813 |
10.85% |
6.87% |
14.02% |
Two features of the sourced curve survive everything below and both matter. The gradient is about 17.0% per year of age — a factor of 23 over twenty years. And the sex crossover is at about 70: male certification exceeds female below it and female exceeds male above, which is the reverse of a death-benefit table and is independently confirmed by the disclosed 예정위험률, whose female-over-male ratio runs 0.357 at 40, 0.575 at 50 and 0.882 at 60 and therefore crosses one in the late sixties [S1, derived]. The disclosed pricing basis and the national statistics agree on the sex crossover to within a few years, which is the strongest internal consistency check available.
Step 1 — a prevalence curve by age and sex std. A three-parameter logistic
P(x) = prev_ceil / ( 1 + exp( −prev_beta × (x − prev_x_mid) ) ) [std]
least-squares fitted in log space through the five sourced band rates at representative
ages 67 / 72 / 77 / 82 / 88.5, the last being the population-weighted mean age of the
85+ band std. Male (0.7480, 0.14692252, 91.61515338); female
(0.6310, 0.22384681, 83.31342651). Fit residuals are within ±5.2% (M) and ±7.9% (F). The
derivative used below is the analytic one,
P'(x) = prev_beta × P(x) × ( 1 − P(x)/prev_ceil )
and not a difference quotient: P' is the leading term of the incidence identity, and a
numerical derivative would put fitting noise straight into the claim rate.
Nothing above 88.5 is sourced. The logistic has three parameters and five anchors, so the fit is over-determined and the ceiling is identified in a way the chassis’s is not — but it is identified by extrapolating five points that stop at 88.5, and on this composite the projection stops at 90 anyway. The sensitivity in Key sensitivities shows the consequence, and it is a smaller one than in the Japanese counterpart for exactly that reason.
Step 2 — the grade share, by age and not by all ages std. share_ge_at(G, x) is the
share of certified lives at grade G or above, linear in age between six sourced band
representative ages — 60 standing for the whole under-65 band std, then 67, 72, 77,
82 and 88.5 — and flat outside them R4 표2-9, derived. It is a proportion of a
population, never a rate. Then P_C(x) = share_ge_at(G_B, x) × P(x) and
P_L(x) = P(x) − P_C(x).
Carrying the share by age is load-bearing, because the severe share is U-shaped:
연령 |
1등급 |
2등급 |
3등급 |
4등급 |
5등급 |
인지지원 |
1·2등급 계 |
|---|---|---|---|---|---|---|---|
<65 |
11.7% |
10.5% |
30.3% |
36.1% |
8.7% |
2.7% |
22.3% |
65–69 |
6.5% |
8.1% |
26.8% |
45.5% |
10.0% |
3.0% |
14.6% |
70–74 |
5.2% |
7.5% |
25.7% |
46.6% |
11.8% |
3.2% |
12.8% |
75–79 |
4.3% |
7.1% |
24.4% |
47.1% |
13.6% |
3.4% |
11.4% |
80–84 |
3.8% |
7.3% |
24.6% |
47.6% |
14.0% |
2.8% |
11.1% |
85+ |
4.7% |
10.1% |
28.9% |
45.3% |
9.7% |
1.4% |
14.8% |
The under-65 population is severe because only the 노인성 질병 list gets in at all
REG-R55; the 80–84 trough is where the scheme’s marginal entrant is a lightly impaired
person newly crossing the 51-point line; the 85+ rise is genuine deterioration. The shipped
share_ge for g2 below 65 is 0.222, the sum of the two rounded grade shares in that row;
R4’s own derived 1·2등급 계 is 22.3%, and the tenth of a point between them is rounding
inside the source table rather than a second basis. A model
applying a single all-ages vector at every age is wrong by up to a factor of two —
22.2% against 11.1% between the ends — and it is wrong at exactly the two ages that matter,
the issue age and the claim age.
The derivative of P_C is taken by the full product rule,
P_C'(x) = s_G'(x) × P(x) + s_G(x) × P'(x)
with s_G' the exact constant slope of the bracketing linear segment. The first term is
negative over most of the range for a severe threshold, and dropping it overstates the
inflow badly: at 만나이 65 the second term alone is 1.82× the correct P_C', and at 75
it is 1.19×.
Step 3 — the identity, which carries the care state’s own mortality in it. Write
mu_H, mu_L, mu_C for the three forces of mortality — mu(x) = −ln(1 − q(x)), in
forces and not in annual rates, because the excess-mortality term is a difference of
hazards and a rate difference is not one — and
mu_bar(x) = (1 − P) mu_H + P_L mu_L + P_C mu_C
inflow_C(x) = max( 0, P_C'(x) + P_C(x) × ( mu_C(x) − mu_bar(x) ) )
inflow_L(x) = max( 0, P_L'(x) + P_L(x) × ( rho(x) + mu_L(x) − mu_bar(x) ) )
The second term is not a refinement. A rising prevalence understates entry, because the
compartment it measures is simultaneously being drained by an excess mortality the
population around it does not carry. At 만나이 65 the slope term is 83.8% of the
inflow and the mortality term the other 16.2%; at the ages where the claims actually
arise the mortality term is a larger share still. And mu_bar rather than mu_H is what
turns a count identity into a proportion identity — prevalence is measured against a
living population, and a population that is itself dying faster raises every prevalence it
measures. Using mu_C alone in place of mu_C − mu_bar inflates the inflow at 65 by
8.2%, and by more at older ages.
Step 4 — the closing assumption. Two equations carry three unknowns: direct entry,
progression, and light-grade entry. The closing assumption is the one the sources leave
genuinely open, direct_entry_share = 0.20 std — the share of gross inflow into the
care state arriving straight from health rather than by progression:
i_D(x) = direct_entry_share × inflow_C(x) / ( 1 − P(x) )
rho(x) = ( 1 − direct_entry_share ) × inflow_C(x) / P_L(x) [0 where P_L = 0]
i_L(x) = inflow_L(x) / ( 1 − P(x) )
Its anchor is the yearbook’s own application-route table R4 표2-5: 13.3% of current
1등급 certifications arose from a first application (7,371 of 55,340) against 69.5% from a
renewal, whereas at 인지지원등급 — a grade nobody progresses down into — the
first-application share is 69.8% (19,436 of 27,835). The ratio of the two is where 0.20
comes from. Getting it wrong does not change the lifetime claim count much; it changes
when the claim arrives, which on a contract priced at 2.0% over fifty years is most of
the answer. Where the gate is g6 — 1~인지지원등급 — there is no light state at all, so
rho = 0 and the whole inflow is direct, by construction rather than by assumption.
prog_rate_cap = 1.0 std is a guard rather than an assumption: it caps rho at a
certainty, no source bounds it because no source gives a progression rate at all, and it does
not bind on any shipped model point.
Step 5 — below 65 there is no prevalence data at all. The 인정률 series is published for the 65-and-over population only, and the statute admits an under-65 applicant only through the closed list of 25 노인성 질병 — four dementia codes, one Alzheimer code, fourteen cerebrovascular codes, four Parkinson-family codes and four others, with no cancer, no musculoskeletal condition and no frailty category on the list REG-R55 별표 1 R2. So the under-65 exposure is both small and violently concentrated: of the 58,271 applicants under 65 in 2024, 뇌혈관질환군 were 49.1% and 치매질환군 26.8% R4 표2-3, derived. The two entry rates are carried down from their age-65 values on the log-gradient of the one disclosed Korean long-term-care incidence rate:
sub65_factor_at(x) = exp( −sub65_gradient × (65 − x) ) for x < 65, else 1 [std]
sub65_gradient = ln( i(60) / i(40) ) / 20 on the combined 1·2등급 rate [S1]
which is 0.12221178 for men (13.00% a year) and 0.16479184 for women (17.91%). It
carries the sex ratio with it, so a curve built on it crosses one in the late sixties,
exactly where the population data finds the crossover. rho is not scaled below 65: it
is a property of a life already certified, not of the gate.
The disclosed basis, and the calibration gap this model publishes rather than hides. Exactly one retrieved document gives a Korean long-term-care incidence rate — the 우체국 상품요약서’s 예정위험률 for the 1종(일반가입) form [S1]:
위험률 |
성 |
40세 |
50세 |
60세 |
|---|---|---|---|---|
요양(1등급) 발생률 |
남 |
0.000028 |
0.000080 |
0.000237 |
여 |
0.000010 |
0.000046 |
0.000209 |
|
요양(2등급) 발생률 |
남 |
0.000018 |
0.000072 |
0.000293 |
여 |
0.000007 |
0.000042 |
0.000250 |
Summing the two rows for a combined 1·2등급 rate is an upper bound, the two events
being mutually exclusive at first certification, and the log-linear graduation between the
three quoted ages is std. disclosed_inc_ratio_at(x) publishes the model’s own
first-entry rate — direct entry plus progression by lives already certified at a light
grade — over that disclosed rate. Both terms are read on the sub-65 convention the
projection itself uses, the whole basis being evaluated at x_e = max(x, 65) and carried
down on sub65_factor_at:
model_rate(x) = i_D(x) + P_L(x_e) rho(x_e) sub65_factor_at(x) / ( 1 − P_C(x_e) )
Reading P_L and rho at x itself below 65 — the shorter form the identity suggests —
mixes an unscaled light-grade prevalence with a scaled direct rate and returns 0.2670 at
만나이 40 instead of the 0.2399 below. On the male anchor
cell it runs 0.2399 at 40, 0.2465 at 50 and 0.2399 at 60: the disclosed pricing rate is
about 4.2 times the model’s best estimate, almost flat in age, rising to 0.58 at 85.
Four things all point the same way and none is quantified by any retrieved source. A 예정위험률 is a loaded pricing rate for a select, underwritten, 180-day-waited population, not a best estimate. The conversion reads a cross-section as a cohort path in a scheme whose certified stock grew 71.8% in six years R4 R16, which understates entry. The care compartment is treated as leaving only by death, when 9.2% of certifications arose from a 등급변경신청 R4 표2-5, which understates entry again. And the card is quoted on 보험나이, about half a year older than this model’s 만나이. This is the largest single uncertainty in the model and it is carried as a stated sensitivity rather than closed with an invented factor.
The bracket behind care_mort_mult is the same arithmetic. In a stationary population
prevalence = incidence × mean duration. R11’s 516.2 days used as the duration gives
I(65+) ≈ 10.85% / 1.414 = 7.67% a year — transparently impossible, and its own refutation.
The yearbook’s application-route bucket gives E ≈ 318,992 / 1.4 ≈ 228,000 first entries a
year and hence D ≈ 1,165,030 / 228,000 ≈ 5.1 years [derived]; the stock roll-forward
(1,097,913 → 1,165,030, a net +67,117 R18) agrees. D is near 4 to 5.5 years and the
all-grade 65+ entry rate near 2 to 3.5% a year — a factor-of-two bracket, and the honest
width of what the retrieved evidence supports.
Monthly conversions std. Decrements are converted geometrically,
1 − (1 − annual)^(1/12); incidence and progression are converted uniformly,
annual / 12, within the policy year. The two conventions differ and the reason is that a
decrement compounds against survivorship while an entry rate is applied to a stock that the
same month’s decrements have not yet touched.
The dementia rider’s own basis std. A logistic (0.8298, 0.08706045, 100.12641335)
fitted to the five sourced band prevalences of the 2023 치매역학조사 — 4.99% at 65–69,
5.03% at 70–74, 10.70% at 75–79, 15.57% at 80–84 and 21.18% at 85+ R7 — times the sourced
65+ sex factors, 0.9568 (M) and 1.0346 (F) R7, derived, and run through the same
prevalence-to-incidence identity with the dementia state’s own excess mortality
(dem_mort_mult = 2.5 std, between the light and care multiples). Every dementia case
is CDR 1 or above by definition, CDR 0.5 being 경도인지장애 and not dementia, so this is the
prevalence the composite’s 경도이상 tier is exposed to; a benefit at CDR 3 이상 would reach
about a third of it — 경증치매 (CDR 1–2) is 67% of all dementia cases R8, and the
market prices the three tiers at 3.05 : 2.06 : 1.00 [S2, derived], which agrees.
Two weaknesses of that fit are named rather than smoothed. The 65–69 and 70–74 anchors are almost equal (4.99% and 5.03%), which no logistic can reproduce, and the fit is out by 31% at 70–74. And the sex factor is applied flat in age std while the sourced series has the male rate above the female at 65–79 and below it at 80 and over R7 — so the model does not reproduce the market fact that 치매 covers are priced cheaper for women while 장기요양 covers are priced dearer (경도이상치매 여 40 ₩13,920 against 남 ₩17,400, a ratio of 0.80, in the same document that prices the main contract at 1.52 the other way) [S2, derived]. A user who turns the rider on should know that the two modules share a sex basis they should not.
dementia_wait_mths = 15 is sourced arithmetic, not a standardization: the one-year
보장개시일 [S2] [S4] plus the 90-day persistence test written into the definition of the
state itself — 「진단일부터 90일 이상 계속되어 장래에 더 이상의 호전을 기대할 수 없는」 [S2].
The one-year wait is not a carrier choice: it is the settled market answer to the 2019
supervisory intervention that followed the 경증치매 boom R8 R10.
Lapse std, on a form the regulator prescribes rather than the market observes.
감독규정 제7-66조제4항 permits the 미지급형 form only where the premium was calculated
using a 최적해지율 REG-R19, and the FSS’s November 2024 계리가정 ruling then fixes the
shape: among models converging to zero lapse at 완납 the 로그-선형 모형 is the
원칙모형, converging to 0.1%, with a post-완납 ultimate of 0.8%; anything else
is permitted only against disclosure in the audit report and the 경영공시, external
actuarial verification, quarterly reporting of the difference to the FSS in CSM,
best-estimate liability, K-ICS ratio and net income, and submission to an on-site inspection
REG-R27. So lapse_table.csv carries three segments and a comparison vector, not a
policy-year grid:
parameter |
|
|
|
|
|---|---|---|---|---|
annual rate |
8.0% |
0.1% |
0.8% |
4.0% |
lapse_rate(t) = r0 × (r1 / r0)^((y − 1)/(n_Y − 1)) for policy year y ≤ n_Y [REG-R27]
= r2 for y > n_Y
lapse_rate_mth(t) = 1 − (1 − lapse_rate(t))^(1/12) [std]
on the mujihae form, and lapse_level_std at every duration on the pyojun comparison
vector — which is the comparison the guidance requires an insurer to disclose. Two of the
four are standardizations — the 8.0% first-year level and the 4.0% 표준형 comparison level,
both std — while the 0.1% and the 0.8% are the ruling’s own numbers.
It has no observed range, because no Korean durational persistency series for a
보장성보험 was retrieved. The instrument-level caveat is real: the 「IFRS17 주요
계리가정 가이드라인」 attachment was never converted from HWP, so the values are verified
from the 보도자료 and the functional form is unverified at instrument level REG-R27
R14, secondary.
Note what the vector says about a contract with no soft landing: with no surrender value there is no policy loan and therefore no 보험료 자동대출납입, so a missed premium lapses the contract outright REG-R25 제33조 REG-R28 — and the assumption nonetheless has lapse falling toward 납입완료. That is the regulator’s judgement, not the model’s, and it is applied here as given.
Lapse applies to the premium-paying compartments only, and that is a constraint rather
than an assumption. A life in the care state has the premium waived [S3] and is barred
from surrendering [S1], so pols_care is not exposed. A light-grade life is exposed on the
same rate as a healthy life, because the contract does nothing for it.
Expenses and commission (all levels std; neither of the two largest is free). No 사업방법서 and no 보험료 및 해약환급금 산출방법서 was retrieved for any Korean long-term-care product, so every expense assumption here is a standardization — but the acquisition scale is bounded from above by regulation and the maintenance scale is calibrated to a sourced identity.
Input |
Value |
Basis |
|---|---|---|
Acquisition expense |
|
std, constrained: |
Initial commission |
|
|
Renewal commission |
3.0% of premium income from |
std; no Korean renewal-commission scale was retrieved |
Maintenance expense |
₩200 per policy per month, inflating 2.0% p.a. at each 계약해당일 |
std, calibrated — see below |
Claim expense |
₩30,000 per claim event |
|
Expense inflation |
2.0% p.a. flat |
std, the Bank of Korea target |
표준해약공제액 |
|
The acquisition expense and the initial commission together are 13 times the monthly
premium, exactly the 표준해약공제액 of a 보장성보험 in the supervisor’s own rule of thumb
REG-R29, split 5.2 : 7.8 so that the commission sits at the 60% cap the same release
sets and 감독규정 제4-32조제8항 now carries REG-R22, and bounded from above by [별표 14]
REG-R20. expense_maint is then set so that the present value of the whole expense and
commission basis at the 예정이율 lands on the 20.68% loading net_prem_ratio() implies
from the published 환급률 progression; it lands at 20.26%. So the expense basis is
calibrated to the same two sourced facts as the account rather than picked.
The rule of thumb is used in place of the [별표 14] formula deliberately. [별표 14]
states the 표준해약공제액 as 연납순보험료 × 5% × 해약공제계수 + 보험가입금액 × 10/1000
REG-R20, and the second term needs a 보험가입금액 that a product with no death benefit
does not have. The chassis solves that through [별표 15] 제9호’s ratio-of-risk-premiums
construction and a notional_sa_ratio std. That route is not available here:
제9호’s third bullet excludes 「치매 또는 일상생활장해 등 타인의 간병을 필요로 하는 상태」
risk premium from the very ratio REG-R21. Read literally, the formula excludes
long-term-care risk premium from the notional 보험가입금액 of a long-term-care contract. The
13-month rule of thumb is the honest way through, and this document says so rather than
inheriting a construction that does not apply.
The claim expense is charged per event, not per instalment. The events are the first certification, each annual 간병연금 survival test, and a dementia diagnosis. The annual — not monthly — unit is contractual: 「매년 진단 확정일에 피보험자의 주민등록등본을 제출하여야 합니다」 [S1]. The level is higher than a cancer chassis’s would be because the evidence is a 장기요양인정서 produced by a public body the insurer neither funds nor influences, and because the refusal grounds are administrative — 「허위 또는 부당 판정사실 이 확인되는 경우」 nothing is paid [S1] [S2].
The 계약자적립액 reconstruction, and why it is derived rather than assumed. av_pp(t)
has two branches meeting at 납입완료. Up to it, the accumulation of the net premium at the
예정이율; after it, a sourced run-off. The run-off anchors are one carrier’s published
해약환급금 미지급형 환급률 progression at 40세, 주계약 1,000만원, 90세만기, 20년납, 월납 —
48.7% at 20 years, 54.4% at 30, 50.5% at 40, 0.0% at 50 [S2] — doubled,
because that form pays 50% of the notional 기본형 value once the premiums are paid and the
해약공제 has expired. Indexing them on the fraction of the way from 납입완료 to maturity
rather than on the policy year is std and is what lets one published progression serve
every term and paying period. Then
net_prem_ratio() = av_ratio_at(0) × n_P / prem_accum_factor(n_P)
is the fraction of the office premium that, accumulated at the 예정이율 over the paying
period, reproduces the sourced account at 납입완료 — 0.7931662309087683 on the anchor
cell, implying a 예정사업비 loading of 20.68%. Deriving it is what makes the
surrender-value cliff reproduce the carrier’s own figures instead of merely resembling
them, and check_av_continuity() fails the moment someone replaces the derivation with a
round number.
Two reconstruction steps are std and are named rather than buried. The published progression is the 미지급형’s 환급률 against its own premiums, and the model reads the doubled figure as that contract’s own 계약자적립액 — but the 기본형 comparator is a product that cannot be bought, 「’기본형’은 … 가입이 불가능하며 … 해지율을 적용하지 않고 계산합니다」 [S2], and its premium is higher, so the two accounts are not in fact the same quantity. And the run-off between the four anchors is linear, where the real curve bends with the risk cost.
Cash flow components and recursions#
Notation#
Symbol |
Cells |
Meaning |
|---|---|---|
|
— |
policy month, 0-based: |
|
|
the number of projected months, the frame’s exclusive end; the last index is |
|
|
만나이 at the 계약일; attained 만나이 |
|
|
policy year, the derived 1-based label |
|
|
납입기간 in years and in months, |
|
|
level monthly office premium, |
|
|
장기요양진단급여금 sum insured |
|
|
간병연금 monthly amount at 1등급 / other grades in the gate |
|
|
the contractual 등급 threshold |
|
|
120-month cap; 12-month guarantee |
|
|
보장개시일 and 감액기간, in whole months |
|
|
all-grade certification prevalence |
|
|
share of certified lives at grade |
|
|
prevalence at/above and below |
|
|
the four forces of mortality |
|
|
the three annual transition rates; |
|
|
monthly mortality of the three compartments |
|
|
monthly lapse, on the paying compartments only |
|
|
the three compartments and their total |
|
|
the month’s certifications |
|
|
감액 factor applying to a certification dated in month |
|
|
the frozen monthly annuity of the cohort certified in month |
|
|
care-state survival from month |
|
|
계약자적립액; 해약환급금 |
|
|
net cash flow, income-positive |
Dimensional check. P, P_C, P_L and s_G are dimensionless proportions of a
population; P', P_C', i_D, i_L and rho are rates per year; mu_H, mu_L,
mu_C, mu_bar are forces per year; q_*, w are probabilities per month. prev_beta
carries units of 1/year, which is why P' = beta P (1 − P/ceil) comes out as a rate per
year and can be added to P_C (mu_C − mu_bar), also a rate per year — the two terms of the
identity are dimensionally the same object, and a version that adds a prevalence to a rate is
the commonest way to get this wrong. A_B is KRW per event, A_1 and A_2 KRW per
instalment, so A_B r(t) n_C(t) and A(s) n_C(s) S_C(·) are KRW per policy-month. The
error this check catches is the one that dominates this product: multiplying the published
인정률 — a prevalence, 10.85% at 65+ — by a benefit amount as if it were an annual claim
frequency.
The four-compartment chain and its processing order#
For t = 0, 1, …, n − 2 — the months of cover; the terminal month t = n − 1 is the
maturity row and carries no cash flow — with the state at the start of the month being
h(t), l_L(t), l_C(t):
1. Start of month — premium, maintenance expense, renewal commission.
premiums(t) = P × pols_act(t) for t < n_P, else 0
expenses(t) = expense_acq_mths × P × 1{t = 0}
+ expense_maint × (1 + pi)^floor(t/12) × pols_if(t)
commissions(t) = comm_init_mths × P × 1{t = 0} + 0.03 × premiums(t) × 1{t ≥ 12}
Premium rides on pols_act, never on pols_if: the 납입면제 waives the 기본계약 and
every attached rider from the award of 1·2등급 [S3], and waived premiums are treated as
paid. Maintenance expense rides on pols_if, including lives on waiver — the policy is
still administered when nobody is paying for it.
2. Certification, from the start-of-month counts.
n_L(t) = h(t) × i_L(age(t)) / 12
n_D(t) = h(t) × i_D(age(t)) / 12
n_P*(t)= l_L(t) × rho(age(t)) / 12
n_C(t) = n_D(t) + n_P*(t) for t ≥ W ; 0 otherwise
void(t) = n_D(t) + n_P*(t) for t < W ; 0 otherwise
n_L is drawn from the never-certified population alone. n_P* — progression — is drawn
from the light compartment, and above 65 it is the dominant route. Inside the
보장개시일 window a certification does not defer the claim: the benefit is 무효, the
premiums paid for it come back, and the life leaves the model. void is therefore a
decrement, not a claim refusal, and the two are kept apart because the 약관 keep them
apart.
3. End of month — benefits and the claim-handling expense.
claims_lump(t) = A_B × r(t) × n_C(t)
claims_annuity(t) = ann_pay(t)
claims_dementia(t) = dementia_amount × pols_entry_dem(t)
claims_death(t) = AV(t) × pols_death_act(t)
claims_lapse(t) = CV(t) × pols_lapse(t)
claims_void(t) = cum_prem_pp(t + 1) × void(t)
claims_maturity(t) = 0
claim_expenses(t) = expense_claim × ( n_C(t) + ann_tests(t) + pols_entry_dem(t) )
4. Mortality, on the mid-month counts.
h_mid(t) = h(t) − n_L(t) − n_D(t)
l_L_mid(t) = l_L(t) + n_L(t) − n_P*(t)
l_C_mid(t) = l_C(t) + n_C(t) — the voided are NOT here
pols_death_act(t) = h_mid(t) q_H(t) + l_L_mid(t) q_L(t)
pols_death_care(t) = l_C_mid(t) q_C(t)
Only pols_death_act pays: deaths in the care state pay nothing, 「지급사유가 발생한 후
사망한 경우에는 별도로 책임준비금을 지급하지 않습니다」 [S1]. That split is a cash-flow
distinction and not bookkeeping.
5. Lapse, on the mortality survivors of the paying compartments only.
pols_lapse(t) = ( h_mid(t) (1 − q_H(t)) + l_L_mid(t) (1 − q_L(t)) ) × w(t)
6. Roll forward.
h(t+1) = h_mid(t) × (1 − q_H(t)) × (1 − w(t))
l_L(t+1) = l_L_mid(t) × (1 − q_L(t)) × (1 − w(t))
l_C(t+1) = l_C_mid(t) × (1 − q_C(t))
l(t+1) = h(t+1) + l_L(t+1) + l_C(t+1)
7. Maturity on the frame’s last row t = n − 1: pols_maturity(n − 1) = pols_if(n − 1),
paying nothing.
check_pols_roll_fwd() asserts, over t = 0 … n − 1,
l(t) − l(t+1) = pols_death(t) + pols_lapse(t) + void(t) + pols_maturity(t)
with a tolerance of roll_fwd_tol = 1e-12, and check_nesting() asserts that the three
compartments are non-negative, add to pols_if, and contain the dementia counter.
The 감액 factor, and the fact that it is frozen#
r(t) = 1 − (1 − red_fraction) × disease_share for t < G
= 1 for t ≥ G
with red_fraction = 0.50 sourced [S4] and invariant wherever a 감액 is stated. The
약관 test is on the cause, not on the grade: a 질병-caused certification inside the
window is paid at 50%, an 상해/재해-caused one in full [S4]. The relative frequency of the
two is given by no retrieved source, so disease_share = 0.95 is std and the
accident carve-out is named rather than dropped; the blended factor is 0.525.
r is evaluated at the certification month s, never at the payment month. 「최초 진단
확정일을 기준으로 경과기간 2년미만의 보험금 감액여부가 결정됩니다. 따라서 … 그 이후에
도래하는 매년 진단 확정일이 계약일부터 2년이상에 해당하더라도 … 지급액은 변경되지
않습니다」 [S1]. A claim that starts inside the reduction window stays halved for the whole
ten years of the annuity.
The 간병연금 ledger#
The cohort certified in month s is paid monthly in months s … s + n_A − 1. The first
g_A instalments are guaranteed against death; each later block of twelve is released only
by the annual survival test on the anniversary of the 진단확정일:
S_C(s, t) = product over u = s … t−1 of ( 1 − q_C(u) )
weight(u) = 1 for u < g_A
= S_C(s, s + 12 × floor(u/12)) otherwise
ann_count(t) = sum over u = 0 … min(t, n_A − 1) of n_C(t − u) × weight(u)
ann_pay(t) = sum over the same u of A(t − u) × n_C(t − u) × weight(u)
ann_tests(t) = sum over k = 1 … n_A/12 − 1 of n_C(t − 12k) × S_C(t − 12k, t)
with the frozen amount
A(s) = [ s_1(x_s) A_1 + ( s_G(x_s) − s_1(x_s) ) A_2 ] / s_G(x_s) × r(s)
x_s = max( age(s), 65 )
— the age-specific grade blend of A_1 at 1등급 and A_2 at every other grade inside the
gate, times the 감액 factor at s. Both the amount and the reduction are frozen at s,
which is what makes a cohort entering at 만나이 68 keep its own amount for all ten years
whatever later cohorts are paid.
Three properties of this ledger deserve to be in front of a reader.
The
u = 0term isn_C(t)itself. The first instalment falls in the month of certification, not a year later [S1]. Deferring it removes roughly a tenth of the annuity liability and misdates all of it.S_Cis computed as a partial product, never as a ratio of cumulative products.q_Cismin(1, 3 q(x))and the cap binds from 만나이 108 on the shipped male table —3 × q(108) = 1.0714— and from 112 on the female one, so a cumulative product underflows to zero from there on and the ratio form divides by zero exactly where the tail of a 종신 variant of this liability would live.The cap and the maturity truncation bind jointly. Nothing is paid on the maturity row
t = n − 1or after it, so a life certified at 만나이 85 on a 90세만기 contract gets five years of annuity and not ten. That is the conservative reading of a question no retrieved document resolves std, and it materially understates the benefit for a late entrant.
check_ann_ledger() rebuilds ann_count(t) by scanning every month in the window
t − n_A < s ≤ t and re-deriving each cohort’s weight from its own age, rather than
stepping back through the same loop. A ledger that paid the first instalment a year late,
that ran past the cap, that lost the twelve-month guarantee, or that used a ratio form of
S_C, shows up there.
The 계약자적립액 and the 해약환급금#
cum_prem_pp(t) = P × min(t, n_P) — paid before month t's own premium
prem_accum_factor(t)= (1 + j) ( (1 + j)^t − 1 ) / j, j = (1 + 0.02)^(1/12) − 1
net_prem_ratio() = av_ratio_at(0) × n_P / prem_accum_factor(n_P)
AV(t) = net_prem_ratio() × P × prem_accum_factor(t) for t ≤ n_P
= av_ratio_at( (t − n_P) / (n − 1 − n_P) ) × P × n_P for t > n_P
surr_chg_pp(t) = surr_chg_ratio × P × ( 1 − t / n_chg ), n_chg = 12 min(7, n_Y)
= 0 for t ≥ n_chg
CV(t) | mijigeup = 0 for t < n_P ; 0.5 × AV(t) otherwise
| half_during = 0.5 × AV(t) for t < n_P ; AV(t) otherwise
| pyojun = max( AV(t) − surr_chg_pp(t), 0 )
Reading 「50%」 without reading which side of 납입완료 it attaches to puts the cliff upside
down, which is why the form is a model point field and not a switch on a ratio. Four forms
are on the Korean shelf under three nearly identical names and they are different
products, not variants: 미지급형 pays nothing during and 50% of a notional 기본형 after
[S2]; 납입중50%해약환급금지급형 pays 50% during and 100% after [S4]; 삼성화재 sells the
pure protection form with 「만기환급금 : 없음」 and no 무·저해지 variant in the retrieved
extract [S3]; and 우체국 is a conventional 표준형 with a normal surrender value from year 1,
because 우정사업본부 business is not written under 보험업법 [S1]. check_cv_form() asserts
the sign of the cliff, not merely its magnitude.
Net cash flow#
net_cf(t) = premiums(t)
− claims_lump(t) − claims_annuity(t) − claims_dementia(t)
− claims_death(t) − claims_lapse(t) − claims_void(t)
− claims_maturity(t)
− expenses(t) − claim_expenses(t) − commissions(t)
net_cf is income-positive, which is this library’s sign and this document’s own, so
there is deliberately no outgo-positive liability_cf companion to publish and the
conventions suite skips its orientation test on that basis. check_net_cf() asserts that
net_cf re-adds from exactly the eleven published columns of result_cf(), to
val_tol = 1e-06: the house contract is that no model’s headline number is reconciled only
in prose.
Note that claims_death is not a death benefit. The contract has none. It is the
계약자적립액 that 감독규정 제7-63조제1항제1호 makes payable on a death from a cause the
contract does not cover REG-R17, and on the anchor cell it is ₩326,783.93 undiscounted
against ₩973,533.06 of premium — a third of premium income — because 35.4% of the cohort
dies before maturity and the account is worth close to cumulative premiums at long
durations. That is a genuine and distinctive Korean result and it should be read, not
smoothed. The Japanese counterpart has no such payment at all.
Optional modules (all off in the base run except the 간병연금)#
Module |
Switch |
Base run |
|---|---|---|
간병연금 |
|
On. It is two thirds of the anchor cell’s benefit outgo and the reason the product is a three-state model |
치매진단급여금 |
|
Off. A different trigger (CDR, a 치매 전문의) with a different sex basis and a 15-month effective wait |
간편심사 |
|
Off (1.0). A premium multiplier only: no retrieved source gives the simplified pool’s incidence, so on a loaded point the extra premium is pure margin in this model |
Threshold |
|
|
Surrender-value form |
|
|
Lapse vector |
|
|
Waiting / reduction |
|
3 / 12. The 우체국 6 / 24 combination is model point 9 |
Not modelled, and each is a deliberate scope decision. The utilisation-conditioned 지원금 riders [S2] — which pay ₩100,000 a month only where the insured is actually using 재가급여, 시설급여, 주·야간보호 or 복지용구 — need a utilisation rate by grade, by service type and by duration since certification, which no retrieved source gives; R4 표3-3 gives 급여이용 수급자 by service type as a national aggregate with substantial overlap, not the cross-tabulation the module would need, and a module whose central assumption would be entirely std adds nothing. The 종신 income form [S2] [S5] carries the whole longevity tail after onset with no cap on a post-onset mortality basis nobody publishes. The 두 번째 장기요양지원금(1~2등급) persistency rider, with its five-year 면책 running from the first 1·2등급 판정일 [S3], needs exactly the continuance basis that does not exist. The 간병인사용일당 is a different product. And 교보’s premium refund on a 1~4등급 진단 [S5] would materially change the reserve; it is a press-release fact whose mechanics are unverified.
Policyholder behavior modeling#
Lapse stops at the benefit trigger, and here that is a constraint, not a refinement. Once 1·2등급 is awarded the premium is waived [S3] and the 약관 bars surrender outright — 「최초 지급사유가 발생한 후에는 이 특약을 해지할 수 없습니다」 [S1] — so zero lapse in the care state is what the contract says. Applying lapse there is not a conservative choice; it is a wrong one, and it is silent: the annuity ledger is driven by
n_CandS_C, not bypols_care, so the annuity does not move at all and the only visible effect is a surrender value paid to a life that cannot surrender. See the pitfalls.The waiver fires on the same event as the benefit, which inverts the Japanese pattern. In
jplib’s 介護保険 the waiver fires at a lower grade than the lump sum and creates a band of lives paying nothing and claiming nothing — the single most mis-modelled item in that product. HereG_W = G_B, following the only observed whole-contract waiver [S3], so there is no such band. But the waiver is not free: it stops the premium for as long as the insured survives in the care state, which is exactly the quantity the prevalence-to-incidence conversion cannot pin down. The waiver is where post-onset mortality enters even a lump-sum-only version of this contract. On the anchor cell it costs ₩414.65 of premium income over the paying period, 0.043% of the total — small only because the certification rate at issue age 40 is small.The light compartment pays and lapses, and that is the delta against the Japanese product and the parallel with the chassis. A 3~5등급 life has been certified by the state, carries impaired mortality, and receives nothing; the contract goes on charging it and it can still walk away. Over the anchor cell’s projection the light compartment accumulates 10.79 policy-months of exposure against the care compartment’s 1.74.
Anti-selection is at the front door, and it is unusually direct. What is being selected against is an application to a public body that leaves a record, which is why the 간편심사 question set asks 「현재 노인장기요양보험에 의한 장기요양급여 수급자이거나 장기요양인정 심의 중입니까?」 [S2] and why one carrier will not attach its 장기요양 riders to a simplified chassis at all — 「주계약 1종(일반가입)에 한하여 부가 가능」 [S1]. That refusal is itself a statement about anti-selection on this trigger. The composite is fully underwritten; no selection loading is applied at issue, and the 간편심사 pool is carried as a premium multiplier with its incidence unchanged, so the true claim cost of that pool is understated in this model.
The waiting period is anti-selection with teeth. A certification inside the window does not merely fail: the benefit is 무효 and premiums come back [S1] [S2]. Unlike the chassis there is no cancellation option and no revival, so an insured certified during the window has bought a benefit that can never pay for that certification. And reinstatement is not a rewind: every waiting period in the file is measured 「계약일[부활(효력회복)일]부터」 [S1] [S2], so a reinstated contract serves its 90 days again from the 부활일.
krlibtreats 부활 as a new model point, not as a negative lapse, and the base run treats lapse as absorbing [std scope].Thresholds and amounts are elected at issue and cannot move.
benefit_grade,lump_amount,annuity_highandannuity_loware model-point attributes. A code path that varies them overtmodels a contract term that does not exist.청약철회 is out of scope. A 15-day withdrawal right under 금융소비자보호법 제46조 as implemented in 표준약관 제17조 REG-R25 REG-R51;
krlibmodels from the point cover is in force and has no new-business funnel in which to represent it.The claimant usually cannot claim. A 지정대리청구인 is designated on every retrieved product [S1] [S3]. It has no cash-flow effect in this model and it is the operational fact that most distinguishes administering this product from administering the chassis.
Worked example#
Anchor cell (point_id = 1, policy_id = LTC-000001). Male, 만나이 40 at the 계약일,
90세만기, 20년납, 월납, 해약환급금 미지급형, 일반심사. 장기요양(1~2등급) 진단급여금
A_B = ₩10,000,000; 간병연금 on at A_1 = ₩500,000 / A_2 = ₩300,000 a month with a
12-month guarantee and a 120-month cap; 치매 rider off; 보장개시일 W = 3 months;
감액기간 G = 12 months; lapse_form = mujihae; office premium P = ₩5,600 a month.
proj_len() = 12 × (90 − 40) + 1 = 601, so result_cf() carries 601 rows, indexed
t = 0 … 600.
Every assumption value the first rows use#
All at 만나이 40 and in policy year 1, so one set of rates drives rows t = 0 … 11.
Quantity |
Value |
Basis |
|---|---|---|
|
|
std Makeham–Gompertz on the 경험생명표 65세 기대여명 anchor REG-R33 REG-R34 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
direct entry, per year |
|
|
light-grade entry, per year |
|
|
progression, per year — not scaled below 65 |
|
|
monthly std |
|
|
monthly std |
|
|
monthly std |
|
|
[S1], 요양 1등급 + 2등급 발생률 at 40세 남 |
|
|
the model’s own first-entry rate over it |
|
|
|
|
|
[S4] |
|
|
grade blend at 만나이 65 × 0.525 |
|
|
grade blend at 만나이 65 |
|
|
|
|
|
std, calibrated to |
|
|
|
|
|
per event std |
|
|
derived from |
Every decrement above is a construction. None is an insurer’s basis and none could be: the 산출방법서 is a 기초서류 and is not public REG-R2, 경험생명표 is not published in full REG-R33 REG-R34, and 보험개발원 publishes neither a 장기요양 incidence table nor a post-onset mortality table. The only retrieved Korean long-term-care rate anywhere is one carrier’s 예정위험률 [S1], and this model uses it for its gradient and sex ratio, never for its level.
The first policy year, cash flow#
Values as the model produces them, to six decimal places. claims_dementia,
claims_lapse and claims_maturity are identically zero over this range and are omitted;
they are in the totals below.
t |
|
|
|
|
|
|
|
|
|
|
|---|---|---|---|---|---|---|---|---|---|---|
0 |
1.000000 |
5600.000000 |
0.000000 |
0.000000 |
0.000000 |
0.001040 |
29320.000000 |
0.000000 |
43680.000000 |
-67400.001040 |
1 |
0.992995 |
5560.769900 |
0.000000 |
0.000000 |
0.359493 |
0.002340 |
198.598925 |
0.000000 |
0.000000 |
5361.809142 |
2 |
0.986038 |
5521.814482 |
0.000000 |
0.000000 |
0.714544 |
0.003891 |
197.207660 |
0.000000 |
0.000000 |
5323.888388 |
3 |
0.979131 |
5483.131826 |
1.333122 |
0.052689 |
1.065193 |
0.000000 |
195.826137 |
0.007618 |
0.000000 |
5284.847067 |
4 |
0.972272 |
5444.720021 |
1.448226 |
0.109927 |
1.411483 |
0.000000 |
194.454337 |
0.008276 |
0.000000 |
5247.287772 |
5 |
0.965461 |
5406.577174 |
1.561294 |
0.171634 |
1.753454 |
0.000000 |
193.092148 |
0.008922 |
0.000000 |
5209.989723 |
6 |
0.958698 |
5368.701402 |
1.672351 |
0.237731 |
2.091145 |
0.000000 |
191.739501 |
0.009556 |
0.000000 |
5172.951118 |
7 |
0.951982 |
5331.090836 |
1.781423 |
0.308138 |
2.424598 |
0.000000 |
190.396330 |
0.010180 |
0.000000 |
5136.170167 |
8 |
0.945313 |
5293.743621 |
1.888537 |
0.382778 |
2.753852 |
0.000000 |
189.062569 |
0.010792 |
0.000000 |
5099.645094 |
9 |
0.938691 |
5256.657915 |
1.993717 |
0.461576 |
3.078946 |
0.000000 |
187.738151 |
0.011393 |
0.000000 |
5063.374132 |
10 |
0.932115 |
5219.831887 |
2.096990 |
0.544455 |
3.399919 |
0.000000 |
186.423012 |
0.011983 |
0.000000 |
5027.355528 |
11 |
0.925585 |
5183.263720 |
2.198380 |
0.631342 |
3.716809 |
0.000000 |
185.117086 |
0.012562 |
0.000000 |
4991.587540 |
12 |
0.919102 |
5146.951609 |
4.601130 |
0.813192 |
4.308813 |
0.000000 |
187.496714 |
0.013803 |
154.408548 |
4795.309407 |
Four rows in that table are where the product does something.
t = 0is the new-business strain: one month’s premium against 5.2 months of acquisition expense, one month of maintenance and the whole 7.8 months of initial commission — and, because of the row below, ₩0.001040 of refund on top.t = 0,t = 1andt = 2carry a non-zeroclaims_voidand no other benefit. These are the certifications inside the 보장개시일 window: the cover is 무효 and the premiums paid for it come back. The refund iscum_prem_pp(t + 1), notcum_prem_pp(t)— premium falls at the start of monthtand the void is recognised at the end of it, so a life voided in month 0 has paid one month’s premium and gets it back, which is whyclaims_void(0)is ₩0.001040 rather than nil. Valuing the refund atcum_prem_pp(t)would leave the insurer holding a month’s premium on a cover it had just declared never to have existed.t = 3is the first payable certification: the 보장개시일 is three whole months, soclaims_lumpandclaims_annuityboth start here, andclaim_expenseswith them.t = 12is the 감액기간 expiring and the renewal commission starting, in the same row.claims_lumproughly doubles — from 2.198380 to 4.601130 — becausered_factorsteps from 0.525 to 1.0, andcommissionsgoes from nil to 3% of premium. Theexpensesline also steps, from 185.117086 to 187.496714, because the 2% expense inflation factor increments at the 계약해당일 even though the in-force count has fallen.
The compartments, first policy year#
Policy counts to ten decimal places.
t |
|
|
|
|
|
|
|
|
|
|
|---|---|---|---|---|---|---|---|---|---|---|
0 |
1.0000000000 |
0.0000000000 |
0.0000000000 |
0.0000086891 |
0.0000001858 |
0.0000000000 |
0.0000000000 |
0.0000001858 |
0.0000813714 |
0.0069238179 |
1 |
0.9929859973 |
0.0000086277 |
0.0000000000 |
0.0000086282 |
0.0000001845 |
0.0000000244 |
0.0000000000 |
0.0000002089 |
0.0000808019 |
0.0068753138 |
2 |
0.9860211908 |
0.0000171097 |
0.0000000000 |
0.0000085677 |
0.0000001832 |
0.0000000484 |
0.0000000000 |
0.0000002316 |
0.0000802364 |
0.0068271493 |
3 |
0.9791052354 |
0.0000254477 |
0.0000000000 |
0.0000085076 |
0.0000001819 |
0.0000000720 |
0.0000002539 |
0.0000000000 |
0.0000796748 |
0.0067793220 |
4 |
0.9722377886 |
0.0000336437 |
0.0000002539 |
0.0000084479 |
0.0000001806 |
0.0000000952 |
0.0000002759 |
0.0000000000 |
0.0000791172 |
0.0067318297 |
5 |
0.9654185101 |
0.0000416995 |
0.0000005296 |
0.0000083887 |
0.0000001794 |
0.0000001180 |
0.0000002974 |
0.0000000000 |
0.0000785635 |
0.0066846698 |
6 |
0.9586470621 |
0.0000496168 |
0.0000008268 |
0.0000083298 |
0.0000001781 |
0.0000001405 |
0.0000003185 |
0.0000000000 |
0.0000780137 |
0.0066378402 |
7 |
0.9519231089 |
0.0000573975 |
0.0000011450 |
0.0000082714 |
0.0000001768 |
0.0000001625 |
0.0000003393 |
0.0000000000 |
0.0000774677 |
0.0065913385 |
8 |
0.9452463176 |
0.0000650433 |
0.0000014840 |
0.0000082134 |
0.0000001756 |
0.0000001841 |
0.0000003597 |
0.0000000000 |
0.0000769255 |
0.0065451624 |
9 |
0.9386163574 |
0.0000725560 |
0.0000018433 |
0.0000081558 |
0.0000001744 |
0.0000002054 |
0.0000003798 |
0.0000000000 |
0.0000763871 |
0.0064993096 |
10 |
0.9320328997 |
0.0000799372 |
0.0000022225 |
0.0000080986 |
0.0000001731 |
0.0000002263 |
0.0000003994 |
0.0000000000 |
0.0000758525 |
0.0064537779 |
11 |
0.9254956184 |
0.0000871887 |
0.0000026213 |
0.0000080418 |
0.0000001719 |
0.0000002468 |
0.0000004187 |
0.0000000000 |
0.0000753216 |
0.0064085651 |
12 |
0.9190041896 |
0.0000943121 |
0.0000030393 |
0.0000090234 |
0.0000001929 |
0.0000002672 |
0.0000004601 |
0.0000000000 |
0.0000799758 |
0.0050125240 |
Two things to read out of it. pols_care(3) is still zero: the certifications of month
3 are paid in month 3 but enter the stock at the start of month 4. And
pols_entry_care_prog overtakes pols_entry_care_direct between t = 7 and t = 8 —
eight months into the contract, at 만나이 40, with the light compartment still only
0.0000650 of the block. Progression is the dominant route from almost the first year, which
is the whole point of the four-compartment structure.
Hand traces#
Trace, month 0. h(0) = 1, l_L(0) = l_C(0) = 0, so pols_act(0) = pols_if(0) = 1.
Premium = 5,600 × 1 = 5,600.000000.
Certifications: n_L(0) = 1 × 0.000008689145343537096 = 0.0000086891;
n_D(0) = 1 × 0.00000018577470385107238 = 0.0000001858; n_P*(0) = 0 × 0.0028307 = 0 —
there is no light compartment to progress out of yet. Because 0 = t < W = 3,
n_C(0) = 0 and void(0) = 0.0000001858 + 0 = 0.00000018577470385107238.
claims_void(0) = cum_prem_pp(1) × void(0) = 5,600 × 0.00000018577470385107238 = 0.001040 — the refund is valued on the premiums paid by the end of the month, and
one has been: the month-0 premium fell at the start of it.
Mid-month counts: h_mid(0) = 1 − 0.0000086891 − 0.0000001858 = 0.9999911250799526;
l_L_mid(0) = 0 + 0.0000086891 − 0 = 0.000008689145343537096; l_C_mid(0) = 0.
Mortality: `pols_death_act(0) = 0.9999911250799526 × 0.0000813708009308467
0.000008689145343537096 × 0.0001465199263399608 = 0.0000813713519
.claims_death(0) = AV(0) × 0.0000813714 = 0 × … = 0.000000`, because the account opens at nil.
Lapse: `pols_lapse(0) = ( 0.9999911250799526 × (1 − 0.0000813708009308467)
0.000008689145343537096 × (1 − 0.0001465199263399608) ) × 0.006924382628299419 = 0.0069238178955`.
Expenses: 5.2 × 5,600 = 29,120 acquisition plus 200 × 1.02^0 × 1 = 200 maintenance
= 29,320.000000. Commission = 7.8 × 5,600 = 43,680.000000. Claim expense
= 30,000 × (0 + 0 + 0) = 0.
net_cf(0) = 5,600.000000 − 0 − 0 − 0 − 0 − 0.001040 − 29,320.000000 − 0 − 43,680.000000 = −67,400.001040.
Roll forward: h(1) = 0.9999911250799526 × (1 − 0.0000813708009308467) × (1 − 0.006924382628299419) = 0.9929859973;
l_L(1) = 0.000008689145343537096 × (1 − 0.0001465199263399608) × (1 − 0.006924382628299419) = 0.0000086277; l_C(1) = 0;
pols_if(1) = 0.9929859973 + 0.0000086277 + 0 = 0.992995.
Trace, month 1. Every per-policy rate is unchanged — age(1) = 40, policy year still 1.
Premium = 5,600 × pols_act(1) = 5,600 × 0.992994624977843 = 5,560.769900. Note it rides on
pols_act, which here equals pols_if only because the care compartment is still empty.
Certifications: n_L(1) = 0.9929859973 × 0.000008689145343537096 = 0.0000086282;
n_D(1) = 0.9929859973 × 0.00000018577470385107238 = 0.0000001845;
n_P*(1) = l_L(1) × rho/12 = 0.0000086277 × 0.0028307044831961396 = 0.0000000244 — the
first progression in the model. 1 = t < W = 3, so n_C(1) = 0 and
void(1) = 0.0000001845 + 0.0000000244 = 0.00000020889418843702306.
claims_void(1) = cum_prem_pp(2) × void(1) = 11,200 × 0.00000020889418843702306 = 0.002340.
The account: AV(1) = net_prem_ratio() × P × prem_accum_factor(1) = 0.7931662309087683 × 5,600 × 1.0016515813 = 4,449.066773, so
claims_death(1) = 4,449.066773 × 0.0000808019 = 0.359493.
Expenses = 200 × 1.02^0 × 0.992994624977843 = 198.598925; no acquisition after t = 0, no
renewal commission before t = 12, no claim expense because nothing payable happened.
net_cf(1) = 5,560.769900 − 0.359493 − 0.002340 − 198.598925 = 5,361.809142.
Trace, month 3 — the first payable certification. h(3) = 0.9791052354319798,
l_L(3) = 0.0000254477, l_C(3) = 0.
n_D(3) = 0.9791052354319798 × 0.00000018577470385107238 = 0.00000018189298515141055;
n_P*(3) = 0.0000254477 × 0.0028307044831961396 = 0.00000007203498063473715. Now
t = 3 ≥ W = 3, so n_C(3) = 0.00000018189 + 0.00000007203 = 0.0000002539279657861477
and void(3) = 0.
The lump sum, at the reduced factor because 3 < G = 12:
claims_lump(3) = 10,000,000 × 0.525 × 0.0000002539279657861477 = 1.333122.
The annuity’s first instalment falls in the same month. The frozen amount is the grade blend
at x_s = max(40, 65) = 65, where s_g1(65) = 0.07985714285714286 and
s_g2(65) = 0.1677142857142857:
blended = ( 0.07985714285714286 × 500,000
+ (0.1677142857142857 − 0.07985714285714286) × 300,000 ) / 0.1677142857142857
= ( 39,928.571429 + 26,357.142857 ) / 0.1677142857142857
= 395,229.98296422494
times red_factor(3) = 0.525 gives A(3) = 207,495.7410562181. With u = 0 and therefore
weight = 1,
claims_annuity(3) = 207,495.7410562181 × 0.0000002539279657861477 = 0.052689
Claim expense = 30,000 × (0.0000002539279657861477 + 0 + 0) = 0.007618 — one event, the
certification; the first annual survival test is twelve months away.
claims_death(3) = AV(3) × pols_death_act(3) = 13,369.256441 × 0.0000796748 = 1.065193.
Expenses = 200 × 0.9791306831539381 = 195.826137. Premium
= 5,600 × 0.9791306831539381 = 5,483.131826.
net_cf(3) = 5,483.131826 − 1.333122 − 0.052689 − 1.065193 − 195.826137 − 0.007618 = 5,284.847067.
Trace, month 12 — the 감액 expires and the renewal commission starts. age(12) = 41,
policy year 2, so the rates move: lapse_rate(12) = 0.06352246697177472 on the log-linear
path, and red_factor(12) = 1.0.
n_C(12) = 0.0000001929 + 0.0000002672 = 0.00000046011303806134214, so
claims_lump(12) = 10,000,000 × 1.0 × 0.00000046011303806134214 = 4.601130 — a step of
4.601130 / 2.198380 = 2.09 against month 11, of which a factor of 1/0.525 = 1.90 is the
감액 expiring and the rest is the rising certification rate.
ann_pay(12) sums the cohorts certified in months 3 through 12, each at its own frozen
amount and each with u = 12 − s < 12, so every weight is 1 (the guarantee):
ann_pay(12) = 0.813192. The cohorts of months 3–11 are still carried at
A = 207,495.7410562181; only the month-12 cohort is at 395,229.98296422494. That is the
freeze doing its work, and it is the reason claims_annuity does not step at t = 12 the
way claims_lump does.
Commission = 0.03 × 5,146.951609 = 154.408548. Expenses = 200 × 1.02^1 × 0.9191015410 = 187.496714. Claim expense = 30,000 × 0.00000046011303806134214 = 0.013803 — still no
survival test, because the first cohort’s first anniversary is month 15.
net_cf(12) = 5,146.951609 − 4.601130 − 0.813192 − 4.308813 − 187.496714 − 0.013803 − 154.408548 = 4,795.309407.
Trace, month 240 — the surrender-value cliff. t = 240 = n_P, so the premium stops and
the account crosses from its accumulation branch to its sourced run-off branch. The two meet
by construction:
AV(240) = net_prem_ratio() × 5,600 × prem_accum_factor(240)
= 0.7931662309087683 × 5,600 × 294.7175395152288 = 1,309,056.0000
= av_ratio_at(0) × 5,600 × 240 = 0.974 × 1,344,000 = 1,309,056.0000
and check_av_continuity() asserts exactly that. The surrender value steps with it:
cv_pp(239) = 0 and cv_pp(240) = 0.5 × 1,309,056 = 654,528.0000, which against
cum_prem_pp(240) = 1,344,000 is a 환급률 of 48.700000%, the published figure [S2]. That
is an identity, not a check: av_table.csv’s first anchor is that published 48.7%,
doubled, so what reproduces here is the arithmetic joining the two branches and nothing about
the basis.
Two things step at once and their product is the cliff. The lapse rate goes from
lapse_rate(239) = 0.001 — the 납입완료 convergence point — to
lapse_rate(240) = 0.008, the post-완납 ultimate REG-R27, so pols_lapse jumps from
0.0000536909 to 0.0004306951, a factor of eight. And the value paid on each of those
lapses jumps from nil to ₩654,528. So
claims_lapse(239) = 0 × 0.0000536909 = 0.0000
claims_lapse(240) = 654,528.0 × 0.0004306951 = 281.9020
and net_cf goes from +2,496.2682 at t = 239 to −1,284.5196 at t = 240. The
contract turns from a net income stream into a net outgo stream in one month, and the
surrender-value form is a bigger part of that turn than the premium stopping.
Milestone rows#
To four decimal places. claims_dementia and claims_maturity are zero throughout.
t |
만나이 |
|
|
|
|
|
|
|
|
|
|
|
|
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
12 |
41 |
0.9191 |
0.9191 |
0.0000 |
5146.9516 |
4.6011 |
0.8132 |
4.3088 |
0.0000 |
187.4967 |
0.0138 |
154.4085 |
4795.3094 |
120 |
50 |
0.6891 |
0.6889 |
0.0002 |
3857.6317 |
37.4014 |
80.2047 |
69.6691 |
0.0000 |
167.9928 |
0.5636 |
115.7290 |
3386.0712 |
239 |
59 |
0.6453 |
0.6442 |
0.0011 |
3607.7963 |
139.1227 |
361.8337 |
311.9062 |
0.0000 |
188.0242 |
2.4075 |
108.2339 |
2496.2682 |
240 |
60 |
0.6450 |
0.6439 |
0.0011 |
0.0000 |
101.8715 |
364.1340 |
342.5724 |
281.9020 |
191.6972 |
2.3426 |
0.0000 |
-1284.5196 |
241 |
60 |
0.6443 |
0.6432 |
0.0011 |
0.0000 |
102.8477 |
366.4506 |
342.5552 |
281.8690 |
191.4910 |
2.3662 |
0.0000 |
-1287.5797 |
300 |
65 |
0.6016 |
0.5999 |
0.0017 |
0.0000 |
124.6609 |
493.3706 |
534.0717 |
277.9321 |
197.3947 |
3.0831 |
0.0000 |
-1630.5131 |
360 |
70 |
0.5513 |
0.5488 |
0.0025 |
0.0000 |
252.6475 |
651.6038 |
826.1459 |
268.1912 |
199.7145 |
4.3504 |
0.0000 |
-2202.6533 |
480 |
80 |
0.4151 |
0.4096 |
0.0056 |
0.0000 |
771.8873 |
1656.5015 |
1546.9336 |
185.4590 |
183.3274 |
11.6465 |
0.0000 |
-4355.7552 |
540 |
85 |
0.3212 |
0.3128 |
0.0084 |
0.0000 |
1681.5930 |
2788.4692 |
1004.5705 |
70.6471 |
156.5864 |
20.6729 |
0.0000 |
-5722.5392 |
599 |
89 |
0.2120 |
0.2017 |
0.0103 |
0.0000 |
1844.5927 |
3756.1556 |
17.0540 |
0.7571 |
111.8860 |
24.9810 |
0.0000 |
-5755.4264 |
600 |
90 |
0.2102 |
0.1999 |
0.0102 |
0.0000 |
0.0000 |
0.0000 |
0.0000 |
0.0000 |
0.0000 |
0.0000 |
0.0000 |
0.0000 |
Rows t = 299 → 300 and t = 479 → 480 show the mortality table stepping at the
계약해당일: claims_death moves from 487.5506 to 534.0717 at 만나이 65 and from 1,412.0604
to 1,546.9336 at 80, because q(x) increments once a year and the account is large.
claims_lump(240) = 101.8715 is below claims_lump(239) = 139.1227 for a reason worth
naming: the 1·2등급 share s_g2 is falling with age through this range — 0.1270 at 72 down
to 0.1110 at 82 — and the negative s_G' term of the product rule bites hardest where the
share is steepest. The claim rate on a severe threshold does not rise monotonically with
age even though the all-grade certification rate does.
t = 600 is the 90세 계약해당일: pols_if(600) = 0.2102 reaches it and is paid nothing.
Undiscounted totals, t = 0 … 600#
column |
total |
|---|---|
|
343.1313 |
|
341.3953 |
|
330.6077 |
|
10.7877 |
|
1.7360 |
|
973533.0572 |
|
268065.6927 |
|
546912.1402 |
|
0.0000 |
|
326783.9323 |
|
70149.7799 |
|
0.0073 |
|
0.0000 |
|
135756.2503 |
|
3774.5847 |
|
70945.8826 |
|
-448855.2128 |
Policy year 1 in aggregate (t = 0 … 11, all at 만나이 40, all in policy year 1 — the
strongest single test target in this file, because it exercises the whole annual cycle on
one set of rates):
line |
policy year 1 total |
|---|---|
|
11.548279 |
|
11.548268 |
|
0.000538 |
|
0.000011 |
|
64670.302783 |
|
15.974040 |
|
2.900270 |
|
22.769436 |
|
0.007271 |
|
31429.655856 |
|
0.091280 |
|
43680.000000 |
|
-10481.095370 |
(The totals are sums of unrounded monthly values; the thirteen displayed rows do not re-add to them.)
Decrement and state totals over the whole projection, per policy issued:
quantity |
value |
|---|---|
lives ever certified at the benefit grade, |
0.026808014544 |
lives voided inside the 보장개시일 window, |
0.000000626279 |
cumulative deaths, |
0.354308072159 |
— of which not yet certified, |
0.337733821029 |
— of which in the care state, |
0.016574251130 |
cumulative lapses, |
0.435534876925 |
reaching the 90세 계약해당일, |
0.210156424636 |
간병연금 instalments paid, |
1.453879542900 |
annual proof-of-life events, |
0.099011476675 |
Present values at the 예정이율 of 2.0%#
The model does not publish these; they are the calibration check that the premium, the
incidence basis and the expense basis are mutually consistent. claims_dementia and
claims_maturity are zero, so the nine lines re-add to net_cf.
line |
PV |
|---|---|
|
814356.0041 |
|
120884.7459 |
|
253930.5911 |
|
166819.3187 |
|
38211.9050 |
|
0.0073 |
|
97088.7515 |
|
1746.6060 |
|
66187.8032 |
|
69486.2754 |
PV(lump + annuity) / PV(premiums) |
0.4602598067 |
PV(expenses + claim exp + commission) / PV(premiums) |
0.2026425297 |
What the numbers say#
This contract prefunds a cost that essentially does not arise until the block is old, and then pays it out mostly as something other than the benefit it is sold for. Year-1 benefit outgo is ₩18.87 against ₩64,670 of premium — 0.029% — because the direct entry rate at 만나이 40 is one in 450,000 a year and the progression rate applies to a light compartment that barely exists yet. By 만나이 85 the all-grade certification prevalence is 20.5% and the model’s own first-entry rate into 1·2등급 is 0.70% a year, a factor of 30 on the age-65 rate. 39.1% of lifetime benefit outgo falls at attained age 85 or over and 63.3% at 80 or over — and the 90세만기 truncates the exposure at exactly the band with the highest certification rate of all. Over fifty years only 2.68% of the cohort is ever certified at the benefit grade, against 43.6% who lapse and 35.4% who die.
Three consequences follow, and they are what distinguishes this product from its Japanese counterpart rather than from the chassis. First, lapse and the interest rate, not the incidence basis, are the dominant levers: the lapse assumption removes 43.6% of the block before the claims arrive, and on the level 표준형 comparison vector — 4.0% at every duration against a log-linear path that falls to 0.1% — lifetime benefit outgo falls from ₩814,978 to ₩317,016, a 61% cut, on a basis change the regulator explicitly polices REG-R27. It is the right instinct for a supervisor to have had.
Second, the 계약자적립액 is the third-largest cash flow in the statement. claims_death
is ₩326,784 undiscounted, a third of premium income and larger than the lump sum, because
35.4% of the cohort dies before maturity with an account worth close to cumulative premiums.
This is not a death benefit and this contract has none; it is 감독규정 제7-63조제1항제1호 in
operation REG-R17, and a reader arriving from a UK or US long-term-care model will not
expect it.
Third, the 간병연금 is two thirds of the benefit — ₩546,912 against ₩268,066 — even
though it is the optional rider and the lump sum is the main contract, and it is the reason
the post-onset survival basis matters here in a way it does not on the chassis. On a
lump-sum-only run of the same cell, undiscounted benefit outgo is ₩268,066 and net_cf
turns positive at +₩101,027. The whole of this contract’s economic content sits in the
module whose central assumption — how long a Korean life survives after certification — is
the one thing nobody publishes.
Valuation and reserve pointers#
This library projects gross, undiscounted cash flows. Every valuation layer below consumes them and is cited, never reproduced. Korea is the only market in this repository running three of them over one stream at the same time, live rather than prospective.
K-IFRS 제1117호 (IFRS 17), mandatory for Korean insurers from 2023-01-01 REG-R60. The projected stream is the fulfilment cash flow before discounting and the risk adjustment; the CSM and its release pattern are out of scope. The contract boundary question does not bite on this product the way it does on
Medical_KR_S, because the long-term-care benefit is written 비갱신형 on every retrieved document [S1] [S2].The 계리가정 guidance reaches this model directly and by name. The FSS’s November 2024 ruling on 무·저해지 lapse assumptions REG-R27 is not background: it fixes the functional form of
lapse_rate(t)and two of its three parameters, and 63.8% of Korean 보장성 초회보험료 in 2024 H1 was written in a 무·저해지 form. Thepyojuncomparison vector is shipped because the guidance requires an insurer using anything other than the 원칙모형 to disclose the difference in CSM, best-estimate liability, K-ICS ratio and net income quarterly. The instrument itself was not retrieved and the functional form is unverified at instrument level R14, secondary.K-ICS, in force from the same quarter REG-R13, with the 경과조치 regime and the 적기시정조치 thresholds of 제7-17조~제7-19조 REG-R14.
LTC_KR_Scomputes no required capital. What it owes the regime is a projection re-runnable on a re-set assumption basis at a stated 기준일, which theProjectionSpace’s scalar References provide. The 대량해지 shock of [별표 22], including the 고환급형 test, was not retrieved and anything resting on it is second-hand and unverified REG-R26.해약환급금준비금, which has no counterpart anywhere else in this repository REG-R11. It is a distributable-earnings device sitting on top of the IFRS 17 balance sheet and it is large on exactly this product shape: a 미지급형 contract has a nil statutory surrender value for twenty years and a large one the day after, so the difference the reserve is measuring moves discontinuously at 납입완료.
av_ppandcv_ppare published per policy so that the layer above can be built on them.표준책임준비금 and 순보험료식 적립. 보험업법 제120조 requires the 책임준비금 REG-R3; 감독규정 제6-11조 and following set the accumulation REG-R10; 제7-64조 and 제7-65조 govern the 산출방법서 and the 계약자적립액 REG-R18; 제7-66조 through 제7-70조 govern the 해약환급금 and extend the regime to 제3보험 REG-R19. One surrender-value regime governs all ten
krlibproducts, which is why this document inherits the chassis’s rather than restating it. 보험업법 제181조 and 제184조 then put the basis and its verification inside the 선임계리사’s statutory duty REG-R5; the tables here are a reference implementation’s, not an appointed actuary’s.제3보험 design rules. 감독규정 제7-63조 is the article that makes
claims_deathexist at all REG-R17, and 보험업법 제4조제1항제3호 is what makes 간병보험 a 보험종목 in its own right rather than a species of 질병보험, writable by life and non-life carriers alike REG-R1 REG-R7 R12 — which is why the five documents behind this composite come two from life carriers, two from non-life carriers and one from a state insurer outside 보험업법 altogether.Policyholder tax, not modelled. Premiums fall in the 보장성보험료 세액공제 basket — a 12% credit on up to ₩1,000,000 of annual premium, so at most ₩120,000 of relief [S1] REG-R57, 15% under the 장애인전용보험전환특약 [S1] [S2]. A credit, not a deduction, which is the distinguishing feature of the Korean personal tax treatment throughout
krlib: it is worth the same to a high-rate and a low-rate taxpayer, and worth more to the latter as a fraction of premium. The anchor’s ₩67,200 annual premium is well inside the cap. Benefits are not projected net of policyholder tax. On insurer failure contracts are protected under 예금자보호법 to ₩100,000,000 from 2025-09-01, on the 시행령 제18조 basis REG-R32 REG-R52.
Key sensitivities and model risks#
In rough order of leverage on this block. Every figure is a re-run of the shipped model on the anchor cell with one thing changed, and says what was changed.
The care-state mortality multiple, twice over.
care_mort_multsets how long the annuity runs and it is the excess-mortality term of the incidence identity, so it moves entry and run-off in opposite directions at once. Setting it to 1.0 — the “there is no impaired-life table so leave it alone” choice — cuts lifetime lump-sum claims by 37.7% (₩268,066 → ₩166,938) and annuity claims by 14.7%, and cuts lives ever certified from 0.026808 to 0.016695. At 2.0 the cuts are 19.2% and 6.6%; at 4.0 lump-sum claims rise 20.1% and annuity claims 5.6% — note that even the annuity rises, because the extra entrants outweigh the shorter run-off at this multiple. There is no published table anywhere and the derivation behind 3.0 rests on a 4-to-5.5-year duration bracket that is itself derived. This is the model’s largest quantified sensitivity.The calibration gap against the disclosed 예정위험률. The model’s own first-entry rate is 24.0% of the one disclosed Korean long-term-care incidence rate at 만나이 40, 24.7% at 50 and 24.0% at 60 [S1] — the disclosed rate is about 4.2 times the model’s best estimate. Four biases all run the same way and none is quantified: a 예정위험률 is a loaded pricing rate; the conversion reads a cross-section as a cohort path in a scheme that grew 71.8% in six years; the care compartment leaves only by death when 9.2% of certifications came from a 등급변경신청; and the card is on 보험나이. Scaling the model’s basis up to the disclosed rate would multiply benefit outgo by roughly four and make the [S2]-derived premium impossible, which is itself evidence that the disclosed rate is not a best estimate — but the gap is not closed here and it should not be treated as resolved.
The 보험기간 truncation at 90. Running the same cell to 100세만기 raises undiscounted lump-sum claims 70.6% (₩268,066 → ₩457,418) and annuity claims 59.3% (₩546,912 → ₩871,368), and PV benefit outgo at 2.0% by 46.9%, taking PV(benefit)/PV(premium) from 0.4603 to 0.6762 on an unchanged premium. 95세만기 is +41.2% / +37.4%. The composite stops at 90 because that is the modal Korean maturity and the term of both published rate anchors [S1] [S2], but it truncates the exposure at the band with the highest certification rate of all — 41.7% at 85+, and still rising — and it is materially conservative on claim cost. This is the first sensitivity a user should run.
Lapse, and note that its sign here is the opposite of the naive one. Switching to the
pyojuncomparison vector — a level 4.0% at every duration, against a log-linear path from 8.0% falling to 0.1% at 납입완료 — cuts lifetime benefit outgo by 61.1% (₩814,978 → ₩317,016) and turnsnet_cffrom −₩448,855 to +₩120,120. The level vector looks lower than the first-year rate but is far higher on average over fifty years, so it removes most of the block before the claims arrive. A model whose lapse assumption is described only by its first-year value cannot be read at all on this product. Only the 8.0% first-year level is std; the shape and the two convergence points are the regulator’s REG-R27.direct_entry_share— timing, not level. At 0.05 lifetime benefit outgo rises only 0.7% (₩814,978 → ₩821,073) and at 0.50 it falls 1.8%; but PV at 2.0% moves from 0.4653 to 0.4485 of PV premium, and the shape of the run-off moves far more than the total. That is the expected behaviour of a parameter that reallocates one inflow between two routes with different delays, and it is why the closing assumption is defensible even though it is unsourced: it is not carrying the level.The prevalence ceiling matters less here than on the Japanese counterpart, and the reason is the term. Refitting the male logistic through the same five sourced anchors at
prev_ceil= 0.50 gives(beta, x_mid) = (0.15902124, 87.333743)and lifetime benefit outgo of ₩819,113 (+0.5%); at 0.35,(0.17495141, 83.544175)and ₩812,896 (−0.3%); at 0.95,(0.14221416, 94.063820)and ₩812,401 (−0.3%). The total barely moves because a lower ceiling refits to a steeper beta and buys back before 85 what it gives up after, and because a 90세만기 contract never reaches the region where the ceilings differ. On a 100세만기 or a 종신 variant this sensitivity would be first-order and it is not tested here. Nothing above 만나이 88.5 is sourced.The grade share, and what “up to a factor of two” means. Replacing the age-varying
s_g2with the national all-ages figure of 0.1328 moves lifetime benefit outgo only +0.8%, but it moves the split: lump-sum claims −3.2% and annuity claims +2.7%, and it re-times both. The factor of two is a statement about the rate at a given age — 0.222 below 65 against 0.111 at 80–84 — not about the anchor cell’s lifetime total, and a product issued at 60 to a 1등급 threshold would feel it far more.The 감액기간, and why it is nearly worthless on this cell and not on others. Setting
red_mths = 0moves lifetime benefit outgo by +0.010% andred_mths = 24by −0.023%, because at issue age 40 almost nothing is certified in the first year or two. It is not a negligible mechanic in general: see the pitfall below on freezing it, where the same mis-modelling is worth 0.31% of annuity outgo at issue age 70 and 0.01% at 40. A parameter that does nothing on the anchor cell can still be a first-order error at the top of the issue-age range, which is why the anchor cell is not the only test target.The 간편심사 loading is pure margin in this model. Model point 8 carries
uw_loading = 1.40on a premium already set at the risk level, and the model has no separate incidence basis for the simplified-underwriting pool because no retrieved source gives one. Its positivenet_cfof +₩1,152,142 is an artefact of that and must be described as one. The true claim cost of a simplified pool on this trigger is understated, and one carrier’s refusal to attach its 장기요양 riders to a simplified chassis at all [S1] is the market’s own view of how much.Longevity, not mortality, is the tail risk. On a living-benefit product longer survival means more entrants and more instalments. This model’s healthy mortality is anchored on an insured 기대여명 REG-R33 and is therefore lighter than the chassis’s population anchor REG-R38; that is the right direction here, but the anchor is a single summary statistic per sex and the shape between the ages is a Makeham–Gompertz assumption with two std parameters.
Basis-change risk the insurer does not control, and cannot price. The grade thresholds, the scoring instrument and the very existence of the grades are set by 대통령령 REG-R55. The 인지지원등급 was created out of nothing on 2018-01-01 R6 and enlarged the covered population of every 「1~인지지원등급」 rider overnight at no additional premium. What the contracts carry against this is a contract-continuity clause [S3] and a successor-body definition [S4], not a repricing right. The asymmetry is unquantifiable, it has no counterpart in
jplib,frliboruklibwhose triggers are contractual, and it is the reason a Korean insurer’s real exposure on this product is wider than any sensitivity in this list.A stock that is still growing. The certified population grew 71.8% between 2018 and 2024 while the 65+ population grew 36.6% R4 R16, so roughly half the growth is demographic and half is a rising rate — driven partly by the 2018 creation of 인지지원등급 and partly by the scheme’s continuing maturation. The stationary-population reading of the cross-section is therefore known to understate entry, and the model does not project the trend.
Known modeling pitfalls#
Each of these is a mistake a modeller would actually make on this product, and each is stated so that it can be checked.
인정률 is a prevalence, not an incidence — and the ratio is not a constant. 10.85% of the 65+ population held a certification at end-2024 R4; 1·2등급 prevalence at 만나이 65 is 0.246%. The model’s own first-entry rate at the same age is 0.02343%, so the prevalence is 10.5 times the incidence at 65, 6.5 times at 75 and 3.8 times at 85. Multiplying an 인정률 by a benefit amount, or treating it as an annual claim frequency, is the single commonest error in a Korean long-term-care model, and using one ratio to convert it at every age is the second commonest.
The excess-mortality term of the identity is not a refinement, and neither is
mu_bar. Settingcare_mort_mult = 1drops the term entirely and cuts lifetime lump-sum claims by 37.7%. Keepingmu_Cbut droppingmu_bar— usingP_C × mu_Cinstead ofP_C × (mu_C − mu_bar)— goes the other way and inflates the inflow at 만나이 65 by 8.2%. Prevalence is a proportion of a living population, so the comparison is against the population’s own average force, not against zero.Take
P_C'by the full product rule.P_C = s_G(x) P(x)ands_Gis falling with age over most of the range for a severe threshold. Dropping thes_G'(x) P(x)term leavess_G(x) P'(x), which at 만나이 65 is 1.82× the correctP_C'and at 75 is 1.19×. The visible symptom is thatclaims_lumprises monotonically with age, whereas the shipped model has it falling betweent = 239andt = 240(139.1227 → 101.8715).The 감액 is frozen at first certification and must not be re-tested at each instalment. 「최초 진단 확정일을 기준으로 … 그 이후에 도래하는 매년 진단 확정일이 계약일부터 2년이상에 해당하더라도 … 지급액은 변경되지 않습니다」 [S1]. A model that re-tests it pays the full amount from month 12 onward to cohorts certified in the first year, overstating annuity outgo by ₩64.78 on the anchor cell (+0.012%), by ₩596.60 at issue age 60 (+0.097%) and by ₩1,065.24 at issue age 70 (+0.315%). Evaluate
red_factorats, never att.The annuity’s first instalment falls in the month of certification. The
u = 0term ofann_count(t)isn_C(t)itself [S1]. Deferring it by twelve months removes roughly a tenth of the annuity liability and misdates all of it. Related and opposite: the instalments are monthly while the survival test is annual, so a model that pays annually gets the amount right and the timing wrong, and a model that tests survival monthly gets the timing right and the amount wrong.The claim expense is per event, not per instalment. The proof of life the 약관 requires is annual — 「매년 진단 확정일에 피보험자의 주민등록등본을 제출하여야 합니다」 [S1] — so
ann_teststotals 0.0990 over the projection againstann_count’s 1.4539. Charging ₩30,000 per monthly instalment would multiply the annuity’s claim expense by about fifteen.Compute
care_survas a partial product, never as a ratio of cumulative products.mort_rate_careis capped at 1 and the cap binds from 만나이 108 on the shipped male table and 112 on the female one, so a cumulative product underflows to zero from there on and the ratio form divides by zero exactly where the tail of a 종신 variant lives. It does not bite on any shipped model point, which is precisely why it would be found late.Premium rides on
pols_act, never onpols_if. Charging the whole in-force block overstates lifetime premium income by ₩414.65 on the anchor cell, 0.043% — small because the certification rate at issue age 40 is small, and much larger at the top of the issue-age range. Note that the error here is the reverse of the Japanese product’s, where the waiver fires below the benefit and the band is large: hereG_W = G_B, so the only lives on waiver are lives already claiming.Do not apply lapse to the care compartment, and know that the check will not catch you. The premium is waived [S3] and the 약관 bars surrender [S1]. Applying the lapse rate to
pols_careas well leavesclaims_annuitycompletely unchanged at ₩546,912.14 — the ledger is driven byn_Candcare_surv, not by the compartment — andcheck_pols_roll_fwd()still closes, because the roll-forward is consistent. The only visible effect is ₩489.73 of extraclaims_lapse, a surrender value paid to lives the contract forbids from surrendering. It is a silent error and the reasoncv_ppandpols_lapseshould be read together.A certification inside the 보장개시일 window is a decrement, not a deferred claim. 「특약을 무효로 하며, 이미 납입한 보험료를 돌려드립니다」 [S1] [S2]. The life leaves the model with a refund; it does not sit in the block waiting for the window to close. And there is no cancellation option and no revival here, unlike the cancer chassis, so a model that imports the chassis’s 90-day cancellation right invents a term this product does not have. And the refund is
cum_prem_pp(t + 1), notcum_prem_pp(t): premium falls at the start of monthtand the void at the end of it, so a life voided in month 0 has paid one month and gets it back.claims_void(0)is ₩0.001040 andclaims_void(3)is nil — for opposite reasons, the second because the window has closed.The surrender-value cliff has a direction, and three of the four Korean forms differ only in which side of 납입완료 the 50% attaches to. 미지급형 is nil during and 50% of a notional 기본형 after [S2]; 납입중50%해약환급금지급형 is 50% during and 100% after [S4]; 표준형 pays the full account less the 해약공제액 from year 1 [S1]. Getting the side wrong inverts the whole cash-flow shape and is not caught by any total.
check_cv_form()assertscv_pp(t) = 0identically fort < n_Pon the 미지급형 form, with its sign, for exactly this reason.claims_deathis not a death benefit. This contract has none [S1] [S3]. It is the 계약자적립액 that 감독규정 제7-63조제1항제1호 makes payable on a death from a cause the contract does not cover REG-R17, and at ₩326,784 undiscounted it is a third of premium income and larger than the lump sum. Reading it as a sum assured, or dropping it because “this is a pure protection contract”, are both wrong and in opposite directions. And deaths in the care state pay nothing — 「지급사유가 발생한 후 사망한 경우에는 별도로 책임준비금을 지급하지 않습니다」 [S1] — which is whypols_deathis split; on the anchor cell 0.0166 of the 0.3543 cumulative deaths pay nothing.The light compartment pays premium and lapses; the care compartment does neither. Collapsing the two into one “certified” state either stops a premium the contract goes on charging or invents a benefit at a grade it does not cover, and — the larger error — turns the 1·2등급 rate into a healthy-life incidence. On the shipped basis progression overtakes direct entry by policy month 8 at issue age 40, and above 65 it is 80% of gross inflow by construction. A single-decrement model puts the cash flow years too early.
prog_rate_atis not scaled below 65 and that is deliberate.sub65_factor_atapplies toi_Dandi_L, which are rates of entering the scheme through a gate the statute narrows below 65;rhois a property of a life already certified, and a life certified at 만나이 50 got there through the 노인성 질병 list and is, if anything, more likely to progress than a 70-year-old.rho(40) = 0.0340is therefore higher thanrho(65) = 0.0153, which looks wrong on a decrement table and is right here.Widening the threshold is not a re-scaling. Moving
benefit_gradefromg2tog5on the anchor cell takes lifetime benefit outgo from ₩814,978 to ₩1,978,328 — a factor of 2.43 — and PV(benefit)/PV(premium) from 0.4603 to 1.1233, on an unchanged premium. Moving it tog1gives 0.1997. The exposure changes in frequency and in timing together, because the light compartment shrinks as the gate widens and vanishes entirely atg6. Treating the threshold as a multiplier on one incidence rate is the error the market itself prices against at about 4.5 : 1 [S2, derived].The two modules run in opposite sex directions and the model does not reproduce that. 장기요양 covers are dearer for women at every age (여/남 = 1.52 at 40 on the main contract) and 치매 covers are cheaper (0.80 on 경도이상치매), in the same document [S2, derived]. The certification basis reproduces the first through the sourced prevalence; the dementia basis applies a flat-in-age sex factor R7 and therefore does not reproduce the second. A user who switches the rider on and reads the sex differential off the output is reading an artefact of that simplification.
The care state is absorbing because the contract makes it so, not because the state is. Grades move both ways — 107,365 of 1,165,030 current certifications came from a 등급변경신청 R4 표2-5 and one carrier drafts a rider around exactly that [S3] — but the amount is frozen at first certification, the instalments are metered on survival rather than on continued certification, and surrender is barred [S1]. So the simplification is smaller here than it looks. It would not be available at all for the utilisation-conditioned 지원금 form [S2], which requires the insured to be using a named public benefit in the month; a model that ported this chassis to that product without a utilisation and recovery basis would be materially wrong.
Do not read the disclosed 예정위험률 as a level. It is used here for its gradient below 65 and its sex ratio, and
disclosed_inc_ratio_atpublishes the gap rather than hiding it. Substituting it as the model’s incidence would multiply benefit outgo by roughly four and contradict the premium it was quoted alongside.proj_len()is a row count, not the last index.result_cf()hasproj_len() = 601rows indexedt = 0 … 600, and the last of them is the 90세 계약해당일: an in-force count of 0.2102 and every cash flow zero. The frame isrange(proj_len())and the maturity row ist = proj_len() − 1, which is why the cash-flow cells guard ont >= proj_len() - 1while the in-force counts guard ont >= proj_len(). Writing the cash-flow guard ast >= proj_len()would put outgo on the maturity row; writing the count guard ast >= proj_len() - 1would drop the row the roll-forward closes on and breakcheck_pols_roll_fwd()at the last step.