Technical Notes#
Status: Draft, 2026-08-20 (all cited sources accessed 2026-08-20).
Scope note. These notes turn the standardized composite of product-spec.md (same
directory) into a reference liability cash-flow projection model on paper. They describe no
single insurer’s product. [S#] and [R#] tags resolve in sources.md, whose numbering is
carried verbatim from _research/medical.md and is frozen; [REG-R#] tags resolve in the
cross-product reference library references/regulatory-and-actuarial-references.md, whose
R-numbering is separate. std marks a standardization introduced for the reference
implementation, always with a rationale and, where one exists, the observed range;
unverified marks a claim not confirmed against a retrieved document. Every contractual
parameter these notes share with product-spec.md carries the same value there. What
these notes add is the whole modelling basis, which product-spec.md does not carry
because none of it is contractual: the decrement assumptions (the mortality adjustment and
the lapse curve), the expense and commission scale, the 疾病/災害 limb split, and — the
three that carry the claim cost and are the load-bearing additions — the hospitalization
incidence rate, the length-of-stay distribution, and the surgery frequency per
hospitalization. Every one of them is introduced below as std with its rationale.
This is the jplib third-sector chassis in model form.
cancer (がん保険) and nursing care (介護保険)
state deltas against the machinery below — in particular against the day-limit ledger and
the frequency × severity × limit decomposition — rather than restating it.
Model scope and conventions#
Purpose. Project gross best-estimate liability cash flows for a single-policy model point of third-sector medical insurance (iryō hoken, 医療保険): office premiums, hospitalization benefit (nyūin kyūfukin, 入院給付金), surgery benefit (shujutsu kyūfukin, 手術給付金), advanced-medicine benefit (senshin iryō kyūfukin, 先進医療給付金), maintenance and claim expenses, and commission. The intended sense is the current estimate (genzai suikei, 現在推計) that the economic-value solvency regime requires: probability-weighted future cash flows on assumptions re-set at a stated reporting date (kijunbi, 基準日) rather than locked in at issue REG-R15. It is also the shape the 1号収支分析 takes — a forward income-and-outgo projection over at least ten future years, by 区分経理 segment REG-R22.
Out of scope, cited not reproduced. Discounting, MOCE, required capital, and every reserving basis. Standard policy reserve (hyōjun sekinin-junbikin, 標準責任準備金), contingency reserve (kiken junbikin, 危険準備金) including the third-sector limb, the ESR balance sheet and IFRS 17 all consume these cash flows and are pointed at in Valuation and reserve pointers, not computed here.
Projection frequency. Monthly grid. This is not a refinement of an annual model: the daily benefit’s unit of account is a day, the per-hospitalization limit is 60 days — about two months — and the premium mode is monthly (月払) at every carrier in the composite [S1] [S4] [S10].
tis the policy month,t = 0, 1, …, proj_len − 1, and monthtis the interval fromttot + 1months after the contract date (keiyakubi, 契約日).Timing conventions std. Office premium received at the start of month
t; maintenance expense at the start of montht; hospitalization, surgery and 先進医療 benefits and the claim-handling expense at the end of montht; mortality then lapse applied at the end of montht, in that order. Acquisition expense and initial commission att = 0.Spell convention std — the one that matters. A hospitalization starting in month
tis resolved in full in montht: its paid days, its benefit, its surgery benefit and its consumption of both day limits are all recognised att. Rationale: the per-hospitalization limit is a property of the whole spell, so a grid that split the spell would have to carry a partial-spell state, and the sourced mean stay is 20.2 days at ages 35–64 and 28.4 days nationally REG-R27 — under one month for the bulk of the distribution. The convention accelerates payment by at mostL1 / 30.4 − 1months, about one month atL1= 60 and three atL1= 120, and the model does not discount, so the distortion is confined to the termination boundary and to deaths in hospital. A day-accrual alternative is named in the pitfalls list.Age basis. Attained age at 契約日 with the fraction discarded (man-nenrei, 満年齢), incremented at each 年単位の契約応当日 [S4] [S10]. Attained age in month
tisage(t) = x + floor(t / 12),xthe 契約年齢. 第三分野標準生命表2018 is constructed for use on a nearest-birthday (hoken-nenrei hōshiki, 保険年齢方式) basis R5 REG-R20, so reading it at 満年齢 understates the valuation age by about half a year.jplibaccepts the offset in the base run and marks it std; the alternative — reading the table atage(t) + 0.5— is a switch.Currency. JPY throughout. Amounts are yen; there is no minor unit in the contract, but expected values are fractional and are displayed to ¥0.01.
Model points. One policy at a time, projected on an expected (probability-weighted) basis:
pols_if(t)multiplies each per-policy cash flow.Projectionis parameterized bypoint_id; no aggregation logic is specified here.Termination. Whole-of-life cover: the projection runs to the terminal age of 第三分野標準生命表2018, 116 for males and 118 for females REG-R18 REG-R20, so
proj_len = 12 × (terminal_age − x + 1)— 924 months for the anchor cell. There is no maturity benefit and no 満期保険金; the only cash flow at the horizon is nothing at all [S1] [S6]. The product does, uniquely on this chassis, carry a benefit-driven termination: cover ceases when both the 疾病 and 災害 aggregate day limits are exhausted [S9], which is why the aggregate limit is a tracked state variable and not a cap applied at the end (see Cash flow components).Contract boundary. On the 終身 chassis the premium is level and 無配当 with no insurer repricing right [S3] [S6] [S8], so all future premiums and benefits are inside the boundary and the projection horizon is the whole of life. On the 定期 model-point flag the ten-year renewal reprices, which would ordinarily close the boundary at each renewal — but where the policy is on premium waiver, REG-R14 II-2-1-2(4) requires the reserve to be computed as though every automatic renewal to final expiry occurs. The two treatments point in opposite directions;
jplibprojects the 定期 flag to final expiry and records the tension rather than resolving it.Rounding. Intermediates at full double precision. Displayed cash flows to ¥0.01,
pols_ifto six decimals, day ledgers to four decimals of a day std. Monthly rows rounded for display do not re-add to the displayed annual totals; the totals are sums of unrounded values.
Model point attributes#
Attribute |
Type |
Anchor cell ( |
|---|---|---|
|
str |
— |
|
enum {shushin, teiki} |
shushin (終身) |
|
int, 満年齢, 20–80 |
40 |
|
enum {M, F} |
M |
|
JPY per day, menu ¥3,000–¥15,000 |
5,000 |
|
int days ∈ {60, 120} |
60 |
|
int days ∈ {1,095, 1,000}, per limb |
1,095 |
|
enum {whole_life, to_65} |
whole_life (終身払) |
|
JPY per month, office premium, model-point input |
2,100 std |
|
enum {monthly, semiannual, annual} |
monthly |
|
multiple of |
20 |
|
multiple of |
5 |
|
bool — five-day minimum payment switch |
false |
|
bool — 先進医療特約 |
true |
|
bool — 入院一時金特約 |
false |
|
bool — 三大疾病無制限 特則 |
false |
|
bool — 特定三疾病保険料払込免除特則 |
false |
|
bool — pay in-hospital surgery once |
true |
|
date |
— |
premium is an input, not a computed quantity. No carrier publishes a rate table by
age and duration; the statement of the method of calculating premiums and reserves
(sanshutsu hōhō-sho, 算出方法書) is a 基礎書類 filed with the 金融庁 and is not published REG-R2. The
anchor value sits between the two public specimen rates for this exact specification —
¥2,121 and ¥2,080 at age 40 male on a ¥5,000 daily amount, 60日型, 終身払 [S8] [S3].
State variables#
Variable |
Description |
Updated |
|---|---|---|
|
In-force probability at the start of month |
monthly recursion |
|
Attained 満年齢 = |
annually |
|
疾病 limb 通算 ledger: expected paid days consumed, per surviving policy, at the start of month |
monthly |
|
災害 limb 通算 ledger, same basis |
monthly |
|
先進医療 ledger: cumulative 技術料 reimbursed per surviving policy, against the ¥20,000,000 cap |
monthly |
|
Probability the policy is on 保険料払込免除 at |
monthly |
|
Monthly best-estimate mortality applied in month |
lookup |
|
Monthly lapse applied in month |
lookup |
|
Monthly hospitalization incidence per in-force policy |
lookup |
|
Net cash flow of month |
monthly |
Three absences are product facts, not gaps. There is no cash-surrender-value state: the
main contract is without surrender value (mu-kaiyaku-henreikin-gata, 無解約返戻金型) at
every carrier during the premium-paying period [S1] [S6] [S9], so cv_pp does not exist on
the anchor cell and lapse carries no cash flow.
There is no 契約者貸付 / 自動振替貸付 state: with no surrender value there is nothing to lend
against, and one carrier says so in terms [S1] — so, unlike the
whole life savings chassis (終身保険), a missed premium really does
lapse the policy. And there is no death benefit: the main
contract pays nothing on death [S1] [S4] [S6] [S9] [S10], so mortality is a pure
liability-releasing decrement and claims_death does not exist.
The two day ledgers are per surviving policy, not weighted by pols_if. A ledger
multiplied by the in-force probability measures the block’s consumption, not the
individual’s, and defers the limit indefinitely. This is the easiest state-variable
error in the product.
Assumption inputs#
(a) Contractual / guaranteed elements (cited; the insurer cannot change them)#
Input |
Value |
Basis |
|---|---|---|
Daily benefit |
|
[S1] [S2] [S6] [S9] [S10] |
日帰り入院 |
Covered — the 支払事由 is one day or more of 入院 |
[S3] [S6] [S9] |
Per-hospitalization limit |
60 days (120 switch); elected at issue, never changeable |
[S1] [S4] [S9]; std default |
One-hospitalization test |
Same cause or medically related; new spell on the 181st day counting the day after discharge as day 1 |
[S1] [S2] [S6] [S7] [S10] |
Aggregate limit |
1,095 days, separately for the 疾病 and 災害 limbs |
[S4] [S6] [S7] [S10]; separateness [S4] [S1] |
Termination on exhaustion |
Contract ceases when both limbs are exhausted |
[S9] |
災害 limb |
Same daily amount; admission within 180 days of the accident |
[S1] [S4] [S9] [S10] |
Concurrency |
疾病 and 災害 benefits never paid for the same day |
[S1] [S2] [S4] [S9] [S10] |
Surgery multiple |
|
[S1] [S3] |
Surgery trigger |
Procedures chargeable under 手術料 in the 医科診療報酬点数表, plus 放射線治療料 and 骨髄移植術 limbs, plus 先進医療 |
[S1] [S2] [S4] [S9] [S10] |
Surgery frequency limits |
One per day (highest paying); per-day-charged 手術料 pays day one only; 放射線照射 and 温熱療法 at most once per 60 days |
[S1] [S2] [S9] [S10] |
先進医療 cap |
¥20,000,000 lifetime; rider terminates on reaching it |
[S1] [S3] [S5] [S6] [S7] [S9] |
先進医療 top-up |
10% of the benefit, capped ¥500,000 per 療養 |
[S1]; std composite |
Surrender value |
Zero under 終身払 at every duration; 10 × |
[S1] [S6] [S9] |
Grace, 月払 |
To the last day of the month following the 払込期月 |
[S1] [S4] [S10] |
復活 |
Within 1 year of 失効, fresh 告知, clocks reset to the 復活日 |
[S4] [S9]; std composite |
Suicide |
Nothing paid within 3 years of 責任開始日 |
[S1]; statutory frame REG-R34 |
(b) Insurer-discretionary current elements#
This class is nearly empty, and its emptiness is the product fact. The main contract is non-participating (mu-haitō, 無配当) — carried in the formal product name at three of the five carriers [S2] [S6] [S7] and stated in terms at two [S1] [S6], with no retrieved document showing a participating medical main contract anywhere. So there is no policyholder dividend (契約者配当), and the 三利源 framing of 死差 / 利差 / 費差 and the surplus-distribution methods of 施行規則 第30条の2 REG-R9 simply do not attach to it. There is no premium review on the 終身 chassis, no MVA, no bonus and no non-guaranteed charge scale. What remains:
Input |
Snapshot value |
Basis |
|---|---|---|
Incidence basis (kiken hasseiritsu, 危険発生率) |
The insurer’s own, unpublished, sitting in the 算出方法書 |
REG-R2; regulator requires a test, not a table R3 REG-R13 REG-R14 |
定期 flag renewal rates |
Recomputed at each ten-year renewal at then-current rates |
[S7] [S10]; base run holds the issue rate flat std |
Catastrophe proportionality |
Insurer may pay in full or reduce in proportion after earthquake, eruption, tsunami or war |
[S4]; not modelled [std scope] |
Prospective 支払事由 change |
Insurer may vary the surgery trigger with 主務官庁 approval if the 診療報酬点数表 is amended |
[S2] [S6]; not modelled [std scope] |
(c) Behavioral / experience assumptions (modeler’s view)#
Mortality. 第三分野標準生命表2018 is public, free and machine-readable REG-R18 REG-R19 — the sharp contrast with uklib, which had to proxy subscriber-only CMI tables. But it is a valuation table, and on a morbidity product its margin runs the wrong way for a best estimate: death releases the liability, so the table is set deliberately below national mortality, with the risk-theory adjustment bounded below at 70% and above at 85% of the pre-adjustment rate R5 REG-R20. Male q40 on it is 0.00076 against 0.00118 on 生保標準生命表2018(死亡保険用) R4 REG-R18. A best-estimate medical model must therefore scale it up:
mort_rate(age) = mort_be_factor × q_third_sector(age, sex)
with mort_be_factor = 1.25 std — the reciprocal of 0.80, a round value inside the
sourced 0.70–0.85 adjustment band REG-R20 and a little above its 0.775 midpoint, so the factor
unwinds the table’s stated margin and nothing more. Reading the band’s own endpoints
instead would give 1.176 at 0.85 and 1.429 at 0.70, which is the range the single figure
stands over. At age 40 male this gives 0.00095, between the two published tables, which is
the direction sanity requires. mort_rate_mth(t) = 1 − (1 − mort_rate(age(t)))^(1/12)
std. Two further table facts a model must not blur: 第三分野標準生命表2018 excludes
高度障害 (severe disability), unlike its 2007 predecessor R5 REG-R20, so a 高度障害 state
must be added separately and not read out of the table; and the IAJ’s site terms prohibit
reproduction and transmission without written consent REG-R21, so jplib ships
mort_table.csv as a std construction whose provenance column points at REG-R18
and REG-R19, never as a copy. That construction is the library’s canonical one and
is shared, value for value, with every other jplib product that reads a third-sector
rate: the 22 rates the research pass read out of the table are carried as anchors and
reproduced exactly, and the ages between adjacent anchors are graduated log-linearly,
q(x) = q(a)·(q(b)/q(a))^((x−a)/(b−a)) — locally the Gompertz family the table itself
follows. So the 0.00076 quoted above is the number the shipped file holds at 男 40, not an
approximation to it.
Morbidity — the incidence basis, and where it comes from. There is no published morbidity table in Japan: 日本アクチュアリー会 publishes the mortality basis only R4 REG-R23, and every insurer’s 危険発生率 is its own REG-R2. What is public, and what makes this model buildable, is Patient Survey (kanja chōsa, 患者調査), a 基幹統計 of 厚生労働省 R6 R7 REG-R26 REG-R27. The construction, in three steps:
入院受療率 (nyūin juryō-ritsu) is a point-in-time prevalence per 100,000 population — the expected proportion of the population in hospital on the census day, not an incidence rate REG-R26. Sourced values (October 2023, both sexes): national 945; by five-year band 20–24 137 · 30–34 239 · 40–44 258 · 50–54 441 · 60–64 838 · 70–74 1,502 · 80–84 2,952 · 90歳以上 6,275 R6 REG-R26.
退院患者平均在院日数 (heikin zaiin nissū) gives mean stay, September 2023: national 28.4 days; by age band 0–14 7.6 · 15–34 10.5 · 35–64 20.2 · 65歳以上 35.5 R6 REG-R27.
In a stationary population, person-days in hospital per year equal admissions × mean stay, so the std conversion — flagged as needed and as a standardization by REG-R26 itself — is
inc_rate(age) = (juryoritsu(band(age)) / 100,000) × 365 / alos(band(age))
annual hospitalization incidence per life, with
inc_rate_mth(t) = inc_rate(age(t))/12std (uniform within the policy year). At age 40 this gives0.00258 × 365 / 20.2 = 0.046619per year. The band mapping is std: 受療率 uses the five-year band, 平均在院日数 the four broad bands, because that is the granularity each statistic is published at REG-R26 REG-R27.
Length-of-stay distribution std. A single mean is not usable: the sourced per-cause means run from 白内障 2.4 days to 精神及び行動の障害 290.4 days R6 REG-R27, and a 60-day cap bites at one end and never at the other. 患者調査 publishes the stay distribution in 32 bands by five-year age band and cause (e-Stat tables Z111, Z114–Z117, cumulative Z120), but those CSV files were not downloaded in the research pass R7 REG-R33, so the distribution’s shape is std — a five-band discrete distribution over the same day values at all ages, with the probabilities in each row solved so that the row mean equals the sourced 平均在院日数 for that band exactly REG-R27:
Age band |
stay = 2 d |
8 d |
20 d |
45 d |
160 d |
mean (= sourced) |
|---|---|---|---|---|---|---|
0–14 |
0.565 |
0.325 |
0.080 |
0.022 |
0.008 |
7.6 |
15–34 |
0.460 |
0.340 |
0.150 |
0.036 |
0.014 |
10.5 |
35–64 |
0.300 |
0.325 |
0.225 |
0.100 |
0.050 |
20.2 |
65+ |
0.190 |
0.240 |
0.250 |
0.200 |
0.120 |
35.5 |
The 160-day band stands for the psychiatric and neurological tail that drives the sourced
national mean REG-R27; the 2-day band for the day-surgery mode. Any user with the Z120
CSVs should replace the whole table — that is what the provenance column is for.
Sex std. The 概況 publishes 入院受療率 by sex for all ages (893 male / 995 female) and by age band for both sexes combined, but not the age × sex cross-tabulation, which lives in e-Stat table Z69 and was not downloaded R6 R7 REG-R33. The sex factor on incidence is therefore std: male 1.00 at every age; female 1.45 at ages 20–34, 0.80 at 35 and over. It is chosen so the incidence ordering crosses over between ages 30 and 40 — female heavier below, lighter above — because both published premium scales show that crossover, a morbidity fact and not a pricing artefact [S3] [S8]. Whether it reproduces the premium crossover depends on the mortality and expense loads too, and is a validation target for the model, not a claim here.
Surgery frequency std. 患者調査 crosses 推計退院患者数 and 平均在院日数 with 手術の有無
(Z106–Z109, Z125, Z126), giving a public in-hospital surgery proportion — but again the CSVs
were not downloaded R7 REG-R33. So: surg_ih_per_hosp = 0.35 payable surgeries per
hospitalization at the in-hospital multiple, and surg_op_per_hosp = 0.15 per
hospitalization at the outpatient multiple, both std, both scaling with incidence so
that surgery frequency ages with hospitalization frequency. Radiation therapy is inside
these frequencies, not a separate stream: the composite folds 放射線治療 into 手術給付金 through
the 放射線治療料 limb of the trigger, subject to the 60-day lockout every carrier imposes [S1]
[S2] [S6] [S9] [S10].
先進医療 std. Frequency adv_freq = 0.00040 per life-year, flat across ages.
Severity adv_sev = ¥150,000 per 療養. The sourced anchors: in 令和5年度, 144,282 patients
received 先進医療 across 81 technologies; 先進医療A averaged about ¥67,700 per case, while
陽子線治療 ran to about ¥2,660,000 over 824 cases and 重粒子線治療 to about ¥3,140,000 over 462
cases R9. A count-weighted mean of just those three figures is about ¥92,300 — but the A
count is dominated by high-volume fertility technologies whose exposure is not this rider’s
R9, so the std severity sits about 1.6× above it. No public exposure denominator for the
frequency was retrieved, so it carries no observed range. The spread the std tag is
standing over is a factor of 46 between the 先進医療A average per case and 重粒子線治療’s
R9; no per-technology minimum was extracted, so the true spread is wider than that.
Lapse std. The only published industry-wide persistency figure in Japan is 解約・失効率 5.6% p.a. on 個人保険, measured on opening in-force sum assured REG-R31 — a sum-assured-weighted rate on a book dominated by 定期 and 終身 death cover, which a 医療保険 with no sum assured cannot even enter. No Japanese durational lapse curve is public. The std table is anchored to that figure by construction:
Policy year |
1 |
2 |
3 |
4 |
5 |
6–20 |
21+ |
|---|---|---|---|---|---|---|---|
|
9.0% |
7.0% |
6.0% |
5.5% |
5.0% |
4.5% |
3.0% |
The first ten years average 5.5%, at the sourced 5.6% REG-R31. The 21+ step down is
std reasoning stated openly: on a contract with no surrender value and rising morbidity
exposure, a long-duration policyholder has no cash incentive to lapse and a growing reason
not to. lapse_rate_mth(t) = 1 − (1 − lapse_rate(year(t)))^(1/12) std.
Premium waiver std. The base 保険料払込免除 is disability-triggered — 高度障害状態 from any
cause, or a listed 身体障害の状態 from an 不慮の事故 within 180 days [S1] [S2] [S10]. Because
第三分野標準生命表2018 excludes 高度障害 R5 REG-R20, the incidence cannot be read out of
the mortality basis, and no public Japanese 高度障害 incidence table was retrieved. The waiver
is therefore specified as a state with waiver_inc = 0 in the base run std, and a
suggested placeholder of 0.25 × mort_rate(age) when switched on. The anchor cell is 終身払,
so the waiver is live for the entire projection when it is switched on — which is exactly
why leaving it at zero must be stated rather than assumed.
Expenses and commission (all levels std; no Japanese medical expense or commission scale is public).
Input |
Value |
Basis |
|---|---|---|
Acquisition expense |
¥20,000 per policy at |
|
Initial commission |
1.5 × annualized premium at |
|
Renewal commission |
3.0% of premiums from policy year 2 |
|
Maintenance expense |
¥250 per policy per month, inflating 1.0% p.a. at each anniversary |
|
Claim expense |
¥3,000 per hospitalization event (covers the day benefit and any surgery on the same spell) |
|
Expense inflation |
1.0% p.a. flat |
Cash flow components and recursions#
Notation#
Symbol |
Meaning |
|---|---|
|
policy month, |
|
契約年齢 (満年齢); attained age |
|
policy year, |
|
入院給付金日額, JPY per day |
|
per-hospitalization day limit (60); 通算 day limit per limb (1,095) |
|
five-day minimum floor: 5 when |
|
length-of-stay band day-value and probability, |
|
monthly hospitalization incidence per in-force policy, |
|
limb split of incidence: 0.92 / 0.08 std |
|
expected paid days per hospitalization = |
|
expected benefit days per hospitalization = |
|
通算 ledgers, days, per surviving policy |
|
先進医療 ledger, JPY, per surviving policy; cap |
|
surgeries per hospitalization, in hospital / outpatient (0.35 / 0.15) |
|
surgery multiples of |
|
先進医療 monthly frequency and mean 技術料 per 療養 |
|
|
|
monthly office premium; monthly maintenance expense; claim expense per hospitalization |
Dimensional check. i(t), q(t), w(t) and pi_j are dimensionless probabilities per
month or per event. g_j, d_pay, d_ben, A_dis, A_acc, L1 and LA are days.
D is JPY/day, so D × d_ben is JPY per hospitalization and i(t) × D × d_ben is JPY per
policy-month. m_ih and m_op are dimensionless multiples of D, and s_ih, s_op are
surgeries per hospitalization, so i(t) × s_ih × m_ih × D is again JPY per policy-month.
V(t), S_adv, P, e(t) and ec are JPY. Every net_cf term is JPY per month. The
error this check catches is the commonest one in the product: multiplying a prevalence
(dimensionless) by a daily amount as if it were an incidence (per month).
The day-limit machinery#
Three limits act in a fixed order, and getting the order wrong is the classic implementation failure.
1 — the per-hospitalization limit L1. Applied inside the length-of-stay
expectation, spell by spell, before anything else:
d_pay = Σ_j pi_j × min(g_j, L1)
On the anchor cell’s 35–64 row this is 0.300×2 + 0.325×8 + 0.225×20 + 0.100×45 + 0.050×60 = 15.20 days, against an uncapped mean of 20.20 — the 60-day cap removes
24.75% of raw days. At L1 = 120 it is 18.20 days.
2 — the five-day minimum, which is an amount and not days. The carriers express the
floor as 「入院日数が5日以内の場合は、入院給付金日額×5」 — a payment of D × 5, not a credit of five
days [S4] [S6] [S7]. So it enters d_ben and not d_pay:
d_ben = Σ_j pi_j × max(F, min(g_j, L1))
With F = 5 the 35–64 row gives 16.10 benefit days against 15.20 paid days — the floor adds
0.90 days of benefit (+5.9%) and zero days to the 通算 ledger. A model that credits the
floor to the ledger would let a short stay consume days it never used.
3 — the aggregate limit LA, per limb, with memory. Two ledgers, because the 通算 limit
is applied separately to the 疾病 and 災害 limbs [S4] [S1]:
room_dis(t) = max(0, LA − A_dis(t))
d_pay_dis(t) = min(d_pay, room_dis(t))
d_ben_dis(t) = d_ben × d_pay_dis(t) / d_pay [std proportional scaling]
and identically for the 災害 limb. The scaling as written is the base run’s, where nothing
is exempt. Under the 三大疾病無制限 特則 the exempt days do not depend on the ledger at all,
so they are held out of the scaling and added back unscaled: writing d_ben_free for them
and d_ben_ltd for the rest, d_ben_dis(t) = d_ben_free + d_ben_ltd × d_pay_dis(t) / d_pay,
and d_pay itself carries only the non-exempt share. A model that scaled the exempt days
by the ledger room would re-impose the limit the 特則 removes. The 疾病/災害 split of incidence is std at 0.92 / 0.08:
損傷・中毒等 is 107 of the national 入院受療率 of 945 (11.3%) REG-R26, and not every 損傷
admission arises from an 不慮の事故 with admission inside 180 days [S1] [S4] [S9] [S10]. In the
base run the two limbs carry the same D, L1 and length-of-stay distribution, so the
split is economically inert in the cash flows and structurally essential in the ledgers —
which is precisely the reason there are two of them.
Benefit-driven termination. Cover ceases when both limbs are exhausted [S9]:
term(t) = 1 if A_dis(t) ≥ LA and A_acc(t) ≥ LA, else 0
The honest statement about the aggregate limit. On a deterministic expected-value grid,
A_dis grows by roughly inc_rate(age) × d_pay days a year — 0.709 days a year at age 40,
about 15.2 at 90+ — so for the anchor cell it reaches only single-digit hundreds of days by
the terminal age and LA never binds, term(t) stays 0, and the 先進医療 cap is never
approached either. That is a property of the expectation, not of the product:
E[min(Σ days, LA)] ≠ min(E[Σ days], LA), and the deterministic ledger therefore
understates the limit’s bite by ignoring dispersion std. The machinery is
specified and implemented anyway for two reasons. A seriatim or stochastic run needs it,
because the dispersion the expectation averages away is exactly what makes LA bite. And
the 三大疾病無制限 特則 cannot be expressed without it: the 特則 takes がん, 心疾患 and
脳血管疾患 days out of the 通算 count entirely [S1] [S2], which is a change in what the
ledger counts — and which defers the termination further still rather than bringing it
closer. It is not kept for the two deltas: neither dependant inherits it.
cancer (がん保険) records having no L1 and no LA at all, and
nursing care (介護保険) no d_pay, no d_ben and no agg_days_*
ledger — each states the deletion as a product fact of its own. Do not delete a ledger
because it reads zero.
先進医療 recursion#
pay(t) = min(S_adv, LV − V(t))
adv_claim(t) = f_adv × [ pay(t) + min(0.10 × pay(t), 500,000) ]
V(t+1) = V(t) + f_adv × pay(t)
The rider terminates when V reaches LV = ¥20,000,000 [S1] [S5]. Eligibility is tested at
the treatment date, so a technology that has left the 厚生労働大臣’s 先進医療 list pays nothing
[S1] [S5], and 患者申出療養 is a different scheme and is excluded [S6] — both are scope facts,
not modelled states.
Surgery recursion#
surg_ih_eff(t) = s_ih if surg_after_limit
= s_ih × d_pay / Σ_j pi_j g_j otherwise [std]
claims_surgery(t) = pols_if(t) × i(t) × D × ( surg_ih_eff(t) × m_ih + s_op × m_op )
The switch resolves a contradiction between carriers, not a gap: where surgery is
performed during a stay for which 入院給付金 is no longer payable because L1 is exhausted, one
carrier pays at the in-hospital multiple [S4] and another pays nothing at all [S10]. The
composite pays [S4]. With the switch reversed, and surgeries assumed uniform over stay-days
std, the truncated day fraction 1 − 15.20/20.20 = 24.75% of in-hospital surgeries
fall outside cover. The two differ by a quarter of the in-hospital surgery benefit —
they are not roundable into each other.
Processing order#
For t = 0, 1, …, proj_len − 1:
Start of month.
premiums(t) = P × pols_if(t) × (1 − waived(t)); maintenancee(t) × pols_if(t)withe(t) = 250 × 1.01^floor(t/12); renewal commission0.03 × premiums(t)fort ≥ 12. Att = 0additionally the acquisition expense ¥20,000 and the initial commission1.5 × 12P.Look up the age basis.
age(t), hencemort_rate(age(t)),inc_rate(age(t))and the length-of-stay row; henced_payandd_benat the model point’sL1andF.Apply the ledgers.
d_pay_dis,d_ben_dis,d_pay_acc,d_ben_accper the room formulas above;min(S_adv, LV − V(t))for the rider.End of month — claims.
claims_hosp(t) = pols_if(t) × D × i(t) × ( s_dis·d_ben_dis(t) + s_acc·d_ben_acc(t) ) claims_surgery(t) = pols_if(t) × i(t) × D × ( surg_ih_eff(t)·m_ih + s_op·m_op ) claims_advanced(t) = pols_if(t) × adv_claim(t) claims(t) = claims_hosp(t) + claims_surgery(t) + claims_advanced(t)and the claim-handling expense
pols_if(t) × i(t) × ec.End of month — decrements, mortality then lapse [std order], plus the benefit-driven termination:
pols_if(t+1) = pols_if(t) × (1 − q(t)) × (1 − w(t)) × (1 − term(t))
Lapse pays nothing — there is no surrender value on the anchor cell [S1] [S6] [S9] — so
claims_lapse(t)is identically zero, and that zero is the product fact worth publishing.Ledger update, unweighted by
pols_if:A_dis(t+1) = A_dis(t) + i(t) × s_dis × d_pay_dis(t) A_acc(t+1) = A_acc(t) + i(t) × s_acc × d_pay_acc(t) V(t+1) = V(t) + f_adv × min(S_adv, LV − V(t))
Net cash flow#
net_cf(t) = premiums(t)
− claims_hosp(t) − claims_surgery(t) − claims_advanced(t)
− expenses(t) − claim_expenses(t)
− commissions(t)
with expenses(t) = e(t)·pols_if(t) + 20,000·1{t = 0},
claim_expenses(t) = ec·i(t)·pols_if(t) and
commissions(t) = 1.5·12P·1{t = 0} + 0.03·premiums(t)·1{t ≥ 12}. net_cf is
income-positive in the shipped model, per the library convention.
expenses is acquisition and maintenance only, and the claim handling expense is a
line of its own — its own cells, its own subtraction above, and its own column in
result_cf(). That is the meaning the two names carry in every model in the three
libraries, and it keeps the acquisition strain and the morbidity-driven handling cost
from moving together in one figure.
Policyholder behavior modeling#
Lapse is real and immediate. On a product with a surrender value (kaiyaku-henreikin, 解約返戻金) the insurer would advance an unpaid premium under 自動振替貸付, which REG-R14 IV-1-12 requires be at the policyholder’s election with prompt notice. This chassis has none, and one carrier states that neither 契約者貸付 nor 自動振替貸付 is offered [S1]. So there is no mechanism that carries a policy through a missed premium, and no lapse-suppression term belongs in the recursion. This is the structural fork between the third-sector and savings chassis in
jplib, and it is why the 自動振替貸付 machinery of the whole life savings chassis (終身保険) must not be inherited here.Grace [std scope]. Grace runs to the last day of the month following the 払込期月 [S1] [S4] [S10] — roughly one month. The base run applies lapse at the end of the month in which the premium is missed and does not model the one-month lag or the grace-window claim rule (a claim in grace is paid net of the arrears, and if the benefit is smaller than the arrears and the balance is unpaid, neither the benefit nor the waiver is given [S4]). The lag is a one-month timing effect on an undiscounted projection; the grace-window rule is second-order and is named rather than modelled.
Reinstatement (復活) [std scope]. Available within one year at the composite [S4] [S9], but a reinstated policy is not the policy that lapsed: the 責任開始期 for pre-existing-condition tests resets to the 復活日 [S4] and waiting periods re-run from it [S9]. It therefore belongs in the model as a new model point, not as a negative lapse, and the base run treats lapse as absorbing. The composite’s choice of a one-year window is the widest carrier divergence in the product — not available at all at one carrier [S6] [S8], three years at another [S10] — and it is the parameter that decides whether lapse is absorbing.
No dynamic lapse from surrender value or interest. With no cash value, no assumed interest rate (yotei riritsu, 予定利率) disclosure on this chassis and no MVA, there is no economic surrender trigger to model. The 低解約返戻金型 cliff that drives the whole life (終身保険) surrender spike has no analogue here.
Anti-selective lapse std (optional module, off in the base run). Healthy lives lapse first; the persisting block is progressively impaired on the morbidity basis rather than the mortality one, which is the reverse of the term-assurance case:
inc_eff(t) = inc_rate(age(t)) × [ 1 + lam × max(0, w_cum(t) − w_ref) ]
with
w_cum(t)the cumulative lapse proportion,w_ref= 0.20,lam= 0.30 std. Base runlam= 0. No Japanese selective-lapse evidence was retrieved.型 elections are not behaviour.
L1,LAand the 三大疾病無制限 特則 are elected at issue and can never be changed [S4] [S9] [S2]. They are model-point attributes; a model that lets them move over the projection is modelling something that does not exist.Advance payment (前納) and mode. Monthly is the dominant retail mode and one net-direct product is 月払 only [S10]; 6- or 12-month prepayment at a company-set discount [S4] is treated as an immaterial modal refinement and is not modelled [std scope].
クーリング・オフ. Out of scope: it is a pre-inception decrement, eight days from dispatch under 保険業法 第309条 REG-R36 and contracted to fifteen at one carrier [S1], and modelling it would need a new-business funnel this library does not have.
Worked example#
Anchor cell (point_id = 1). Male, 契約年齢 40 (満年齢), 終身 chassis, 入院給付金日額
D = ¥5,000, L1 = 60 日型, LA = 1,095 日 per limb, 終身払, office premium P = ¥2,100
per month, 手術給付金 20倍 / 5倍, 先進医療特約 attached, five-day minimum off,
三大疾病無制限 特則 off, 入院一時金特約 off, waiver module off,
surg_after_limit true.
Assumption values used, every one of them:
Mortality. 第三分野標準生命表2018 男 q40 = 0.00076 R4 REG-R18, quoted here because a worked example needs it and
jplibquotes only the rates it uses REG-R21. Best estimatemort_rate(40) = 1.25 × 0.00076 = 0.00095std;mort_rate_mth = 1 − (1 − 0.00095)^(1/12) = 0.0000792012.Lapse. Policy year 1,
lapse_rate = 9.0%std;lapse_rate_mth = 1 − (1 − 0.09)^(1/12) = 0.0078284203.Incidence. 受療率(40–44) = 258 per 100,000 R6 REG-R26; 平均在院日数(35–64) = 20.2 days R6 REG-R27; so
inc_rate(40) = 0.00258 × 365 / 20.2 = 0.046618812per year andi(t) = 0.0038849010per month [std conversion].Length of stay. The 35–64 std row: days (2, 8, 20, 45, 160) with probabilities (0.300, 0.325, 0.225, 0.100, 0.050), mean 20.2 exactly. Hence
d_pay = d_ben = 15.20days (floor off).Surgery.
s_ih= 0.35,s_op= 0.15 std; benefit per hospitalization= 5,000 × (0.35 × 20 + 0.15 × 5) = 5,000 × 7.75 = ¥38,750.先進医療.
f_adv= 0.00040 / 12 = 0.0000333333 per month std; benefit per 療養= 150,000 + min(0.10 × 150,000, 500,000) = ¥165,000std.Expenses.
e(t)= ¥250 (policy year 1);ec= ¥3,000; acquisition ¥20,000; initial commission1.5 × 12 × 2,100 = ¥37,800; renewal commission 3% fromt = 12— so zero in every row below std.Limb split.
s_dis= 0.92,s_acc= 0.08 std.
Every decrement rate above is either quoted from 第三分野標準生命表2018 REG-R18 or from 患者調査 REG-R26 REG-R27 with its citation, or is marked std as an illustrative value in the shape of such a table. None of them is an insurer’s basis, and none could be: the 算出方法書 is not published REG-R2.
t |
|
|
|
|
|
|
|
|
|
|
|---|---|---|---|---|---|---|---|---|---|---|
0 |
1.000000 |
2,100.00 |
295.25 |
150.54 |
5.50 |
20,250.00 |
11.65 |
37,800.00 |
−56,412.95 |
0.0000 |
1 |
0.992093 |
2,083.40 |
292.92 |
149.35 |
5.46 |
248.02 |
11.56 |
0.00 |
+1,376.09 |
0.0543 |
2 |
0.984249 |
2,066.92 |
290.60 |
148.17 |
5.41 |
246.06 |
11.47 |
0.00 |
+1,365.20 |
0.1087 |
3 |
0.976466 |
2,050.58 |
288.30 |
147.00 |
5.37 |
244.12 |
11.38 |
0.00 |
+1,354.41 |
0.1630 |
Trace, month 0. pols_if(0) = 1. Premium = 2,100 × 1 = 2,100.00.
Incidence i(0) = 0.046618812 / 12 = 0.0038849010.
claims_hosp = 1 × 5,000 × 15.20 × 0.0038849010 = 76,000 × 0.0038849010 = 295.2525 — and
the 92/8 limb split does not change it, since 0.92 × 15.20 + 0.08 × 15.20 = 15.20.
claims_surgery = 0.0038849010 × 38,750 = 150.5399.
claims_advanced = 0.0000333333 × 165,000 = 5.50.
expenses = 250 (maintenance) + 20,000 (acquisition) = 20,250.0000;
claim_expenses = 0.0038849010 × 3,000 = 11.6547.
commissions = 1.5 × 25,200 = 37,800.00.
net_cf(0) = 2,100.00 − 295.2525 − 150.5399 − 5.50 − 20,250.0000 − 11.6547 − 37,800.00 = −56,412.95.
Ledgers: A_dis(1) = 0 + 0.0038849010 × 0.92 × 15.20 = 0.054326 days;
A_acc(1) = 0.0038849010 × 0.08 × 15.20 = 0.004724 days; V(1) = 0.0000333333 × 150,000 = ¥5.00. Neither ledger is anywhere near its limit and term(0) = 0.
Decrements: pols_if(1) = 1 × (1 − 0.0000792012) × (1 − 0.0078284203) = 0.992093.
Trace, month 1. pols_if(1) = 0.992093. Premium = 2,100 × 0.992093 = 2,083.3953.
Every per-policy rate is unchanged — age(1) = 40, policy year still 1 — so each claim
line is month 0’s scaled by pols_if: claims_hosp = 295.2525 × 0.992093 = 292.9179;
claims_surgery = 150.5399 × 0.992093 = 149.3496;
claims_advanced = 5.50 × 0.992093 = 5.4565.
expenses = 250 × 0.992093 = 248.0233 — no acquisition expense after t = 0;
claim_expenses = 11.6547 × 0.992093 = 11.5625. commissions = 0 (renewal commission
starts at t = 12).
net_cf(1) = 2,083.3953 − 292.9179 − 149.3496 − 5.4565 − 248.0233 − 11.5625 = +1,376.09.
A_dis(2) = 0.054326 + 0.0038849010 × 0.92 × 15.20 = 0.108653 days.
pols_if(2) = 0.992093 × 0.992093 = 0.984249.
Trace, month 2. Identical structure. Every line is month 0’s scaled by
pols_if(2) = 0.98424852: premiums = 2,066.9219; claims_hosp = 290.6018;
claims_surgery = 148.1687; claims_advanced = 5.4134; expenses = 246.0621;
claim_expenses = 11.4711; net_cf(2) = +1,365.20. A_dis(3) = 0.162979.
pols_if(3) = 0.976466.
Policy year 1 in aggregate (t = 0…11, all at age 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). Σ_{t=0}^{11} pols_if(t) = 11.491651, so:
Line |
Policy year 1 total |
|---|---|
|
24,132.47 |
|
3,392.94 |
|
1,729.95 |
|
63.20 |
|
22,872.91 |
|
133.93 |
|
37,800.00 |
|
−41,860.47 |
with pols_if(12) = 0.909136, agg_days_dis(12) = 0.651917, agg_days_acc(12) = 0.056688
and adv_paid(12) = ¥60.00. (The totals are sums of unrounded monthly values; the four
displayed monthly rows do not re-add to them, and the year-1 net_cf differs by ¥0.01 from
the sum of the rounded line totals.)
What the numbers say. Year-1 claims of ¥5,186.09 are 21.5% of year-1 premium — the
level premium prefunds a morbidity cost that rises steeply with age. On the std basis,
annual incidence runs from 0.0466 at age 40 to 0.6452 at 90 and over (a factor of 13.8 —
the 受療率 ratio of 24.3 REG-R26 damped by the 平均在院日数 ratio 20.2 / 35.5 REG-R27,
because a longer stay converts the same prevalence into fewer admissions), and expected
paid days per year from 0.709 to 15.16
(a factor of 21.4, once the 65+ length-of-stay row is applied REG-R27). Against that,
the ¥57,800 of acquisition expense and initial commission at t = 0 produce the
characteristic new-business strain, recovered out of the margin in the early durations. The
per-hospitalization limit is doing real work throughout — it removes 24.75% of raw days at
every age band with the 35–64 row and 33.8% with the 65+ row — while the 通算 limit and the
先進医療 cap, on the expectation, never bind at all.
Valuation and reserve pointers#
This library projects gross cash flows. Every valuation layer below consumes them and is cited, never reproduced.
標準責任準備金. 保険業法 第116条第1項 requires a policy reserve (sekinin-junbikin, 責任準備金) at each 決算期 and 第2項 delegates the accumulation method REG-R4; 施行規則 第68条 fixes scope R2 REG-R7; 平成8年大蔵省告示第48号 sets the method as net level premium (heijun jun-hokenryō-shiki, 平準純保険料式), with no Zillmer adjustment, on the standard valuation interest rate (hyōjun riritsu, 標準利率) and the standard table REG-R10. For contracts from 1 April 2018 the third-sector valuation mortality is 第三分野標準生命表2018 REG-R11 R4 REG-R18. The 標準利率 in force could not be established from a retrieved official document; any value asserted for it is unverified or must be derived under the 告示 machinery and labelled std REG-R10.
危険準備金, and the third-sector limb specifically. 施行規則 第69条第1項 divides the reserve into 保険料積立金, 未経過保険料, 払戻積立金 and 危険準備金 R2 REG-R8, and 第69条第6項第1号の2 requires a separately identified「第三分野保険の保険リスクに備える危険準備金」 R2. The 監督指針 requires it be computed under the ストレステスト of 平成10年6月8日大蔵省告示第231号, with a 負債十分性テスト, both reflecting the uncertainty that 保険事故発生率 deteriorates, run per contract grouping sharing the same 基礎率, with the calculating unit separated from internal audit R3 REG-R13 REG-R14. The notification itself was not retrieved and its stress magnitudes are unverified REG-R13.
jplibimplements the capability the regime demands — a re-runnable incidence basis, parameterized so a shock can be applied per grouping — and not the statutory stress. That distinction must not be blurred anywhere downstream.ESR. From 31 March 2026 insurers are supervised on the economic-value 経済価値ベース のソルベンシー規制, liabilities measured as 現在推計 + MOCE at each 基準日 on assumptions re-set then, required capital at 99.5%, early corrective action below an ESR of 100% REG-R15. It supersedes the ソルベンシー・マージン比率 200% trigger REG-R17, and the two are not comparable — the 2025 field test showed 生保単体 ESR 215% against SMR 873% REG-R15.
jplibcomputes neither. What it owes the regime is exactly what these notes deliver: a projection re-runnable on a re-set assumption basis at a stated 基準日.1号収支分析. The 保険計理人 appointed under 保険業法 第120条 REG-R5 submits an 意見書 under 第121条 REG-R6; the 実務基準 turns that into a forward income-and-outgo analysis over 「少なくとも将来10年間」, by 区分経理 segment, with sufficiency judged over the first five years REG-R22. That is the shape of this projection, and the reason it runs monthly over a whole lifetime rather than to a truncated horizon.
Three bases, one projection. J-GAAP statutory reserving REG-R10, the ESR economic balance sheet REG-R15 and IFRS 17 — voluntary in Japan, not mandatory REG-R47 — are three measurement bases fed by one set of projected cash flows. That is why these notes keep the cash flows basis-agnostic and undiscounted.
Not applicable to this chassis. 契約者配当 and the surplus-distribution methods of 施行規則 第30条の2 REG-R9 do not attach: the main contract is 無配当 [S1] [S6]. 価格変動準備金 under 第115条 is asset-driven and outside a liability projection entirely REG-R3.
Policyholder tax, not modelled. The premium falls in the 介護医療保険料 basket of the post-2012 生命保険料控除 R11 REG-R43; the anchor’s ¥25,200 annual premium sits in the second income-tax band for a deduction of about ¥22,600 R10. Benefits are not projected net of policyholder tax.
Key sensitivities and model risks#
In rough order of leverage on a third-sector block:
The morbidity basis is the whole model, and it is std. Incidence, stay length and surgery frequency are all constructions on public 患者調査 statistics REG-R26 REG-R27, not an insurer’s 危険発生率, which is unpublished by regulation REG-R2. The prevalence → incidence conversion, the five-band length-of-stay shape and the surgery frequencies are three independent std levers on the claim cost, and no observed range exists for any of them.
The length-of-stay distribution, not its mean. The 60-day limit removes 24.75% of raw days on the 35–64 row and 33.8% on the 65+ row; a distribution with the same mean and a fatter tail changes the capped expectation without changing the sourced calibration target at all. The sourced per-cause spread — 白内障 2.4 days against 精神及び行動の障害 290.4 REG-R27 — is the size of the risk being standardized over.
Stay lengths are falling and the data ages fast. The sourced series runs 40.8 days (平成8年) → 32.8 (平成23年) → 32.3 (令和2年, COVID-affected and flagged as such by 厚生労働省) → 28.4 (令和5年) R6 REG-R27. A duration basis calibrated on data more than a few years old systematically overstates a per-day benefit — and the market’s answer, the 一時金 design, does not shrink with it R6 [S1] [S9] [S10].
Mortality direction. On a health product death releases the liability, so an understatement of mortality overstates the liability. The valuation table is set deliberately low for exactly that reason R5 REG-R20; using it unadjusted as a best-estimate decrement is a conservative error in the reserving direction and a material one over the anchor cell’s 77-year projection.
Longevity, not mortality, is the tail risk. Incidence at 90 and over is 13.8× the age-40 rate and paid days 21.4× REG-R26 REG-R27, so the liability is concentrated in the ages where the survival assumption is least certain and where the projection horizon is set by a table’s terminal age rather than by a contract term.
The 三大疾病無制限 特則, when switched on. It does not merely raise the limits: it removes がん, 心疾患 and 脳血管疾患 days from the 通算 count entirely [S1] [S2], and lifetime cancer incidence in Japan is about 61.1% for men and 50.1% for women REG-R28. It is a mass-market feature, not a fringe option, and it defers the benefit-driven termination.
Expense inflation on a small premium. ¥250 a month of maintenance against a ¥2,100 premium is 11.9% of premium; the level premium is fixed for life and the expense is not.
Known modeling pitfalls#
受療率 is a prevalence, not an incidence. 入院受療率 is a point-in-time count per 100,000 REG-R26. Multiplying it by a daily amount, or treating it as an annual claim frequency, is the single commonest error in a Japanese medical model. The conversion needs 平均在院日数 REG-R27 and is an explicit std step.
The five-day minimum is an amount, not five days.
d_bengets the floor;d_payand therefore the 通算 ledger do not [S4] [S6] [S7]. Crediting the floor to the ledger lets a two-day stay consume five days of a lifetime limit it never used.Apply
L1inside the stay expectation, not to the annual total.Σ_j pi_j min(g_j, L1) = 15.20, butmin(Σ_j pi_j g_j, L1) = min(20.20, 60) = 20.20. Capping a mean instead of capping each stay silently removes the limit.The 通算 ledger is per surviving policy, unweighted by
pols_if. Weighting it by the in-force probability measures the block, not the policyholder, and defers the limit forever.Two ledgers, not one. The 通算 limit runs separately on the 疾病 and 災害 limbs, and termination requires both to be exhausted [S4] [S1] [S9]. One combined ledger terminates the contract roughly twice as early.
Do not delete the ledgers because they read zero. On the anchor cell’s expectation
LAnever binds and the ¥20,000,000 先進医療 cap is never approached — butE[min(Σ, LA)] ≠ min(E[Σ], LA), so the deterministic ledger understates the limit, and cancer (がん保険) and nursing care (介護保険) inherit the same code with limits that do bind.Radiation is not a separate claim stream. The composite folds 放射線治療 into 手術給付金 through the 放射線治療料 limb of the trigger, once per 60 days [S1] [S2] [S6] [S10]. Adding a separate 放射線治療給付金 — which one carrier does pay, at 日額 × 10 [S4] — double-counts.
Surgery during a limit-exhausted stay is a switch, not a default. One carrier pays at the in-hospital multiple [S4], another pays nothing [S10]; the two differ by 24.75% of the in-hospital surgery benefit on the std basis. Hard-coding either without the switch misstates one design.
No surrender value, no APL, no policy loan.
claims_lapse(t)is identically zero and no mechanism carries a policy through a missed premium [S1] [S6] [S9]. Importing the whole life (終身保険) 自動振替貸付 logic into this chassis suppresses lapses that really happen.No death benefit. Mortality is a pure release [S1] [S4] [S6] [S9] [S10]; a
claims_deathcolumn on this model is a benefit that does not exist.第三分野標準生命表2018 excludes 高度障害. R5 REG-R20. A model that treats 高度障害 as a termination or a waiver trigger must add its incidence separately; reading it out of the table double-counts nothing and under-counts the waiver.
The 型 is fixed at issue.
L1,LAand the 三大疾病無制限 特則 can never be changed after issue [S4] [S9] [S2]. Any code path that varies them overtmodels a contract term that does not exist.Age basis mismatch. The contract ages on 満年齢 [S4] [S10]; the standard table is built for 保険年齢 R5 REG-R20. Half a year of age sits between the projection basis and the valuation basis, and it must be stated, not silently absorbed.
The 180-day rule is a grouping rule, not a waiting period. Two admissions inside 180 days of the previous discharge are one hospitalization against
L1, with a new spell starting on the 181st day counting the day after discharge as day 1 [S1] [S2]. An implementation that resetsL1on every admission removes the limit for repeat claimants; one that treats 180 days as an exclusion pays nothing where the contract pays the balance of the limit.Monthly rounding does not re-add. The displayed monthly rows sum to a year-1
net_cfone yen away from the total computed on unrounded values; assert against the unrounded aggregation.