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 on paper. They describe no single
insurer’s contract. [S#] and [R#] resolve against sources.md in this directory, numbering
carried verbatim from _research/income-guarantee.md and frozen; [REG-R#] resolves against
references/regulatory-and-actuarial-references.md, whose own R-numbering is distinct and
must never be read across. std marks a standardization introduced for the reference
implementation; unverified marks a claim not confirmed against a retrieved document.
Every contractual parameter here is identical to product-spec.md’s. Two parameters are
new, and both are named as such where they appear: a rate-class mortality factor, which
product-spec.md footnote 6 explicitly defers to this file because no carrier publishes the
premium differential between classes, and a per-instalment annuity administration
expense, which the chassis has no need of because the chassis pays a lump sum.
This is a death benefit. Survivor income term (shūnyū hoshō hoken, 収入保障保険) pays on the
death of the insured, or on the contractual severe disability state (kōdo shōgai jōtai,
高度障害状態) treated as its accelerated equivalent, and pays it as a monthly income. It is not
income protection in uklib’s sense; uklib’s IP_UK_S insures disability. Nothing in
this file models a disability decrement.
This file states deltas. The term life technical notes (定期保険)
are the library’s protection chassis, implemented in
Term_JP_A. Inherited unchanged and not restated here: the
decrement recursion and its processing order, the premium chassis, the std mortality
construction with its 0.80 best-estimate factor, the lapse table, the expense and commission
levels, the age last birthday (man-nenrei, 満年齢) / age nearest birthday (hoken-nenrei,
保険年齢) age-basis reconciliation, and the treatment of 高度障害 as one decrement with death.
What changes: a monthly grid, a benefit that is an annuity-certain rather than a lump sum, a
premium stream that stops on the annuity event while the benefit stream runs on, and a
projection horizon that is longer than the policy term.
Model scope and conventions#
Purpose. Project gross best-estimate liability cash flows — premiums, the death and 高度障害 annuity instalments, claim expenses, annuity administration expenses, maintenance expenses and commission — for a single-policy model point, in the sense the ESR current estimate (genzai suikei, 現在推計) requires: probability-weighted future cash flows on assumptions re-set at the 基準日 rather than locked in at issue REG-R15. The same projection is the shape of the item-1 income-and-outgo analysis (ichi-gō shūshi bunseki, 1号収支分析) REG-R22.
Discounting, MOCE, required capital and reserving are out of scope, cited and not reproduced (see Valuation and reserve pointers).
jplibcomputes no ratio and builds no policy reserve (sekinin-junbikin, 責任準備金). The omission matters more on this product than on any other protection product in the library, and Key sensitivities quantifies why.Projection frequency. Monthly — the model is
IncomeTerm_JP_S. The grid is not a refinement here, it is the contract: the benefit is one instalment per monthly payment date [S1 第3条第2項] [S5], the instalment count is a month count [S5] [S14] [S15], and the minimum payment guarantee period (saitei shiharai hoshō kikan, 最低支払保証期間) is stated in years but binds in months. An annual grid cannot representmax(N − m + 1, G)without inventing a within-year convention for bothmandG.Timing conventions std. Premium at the start of each policy month, in advance, on the in-force population only; maintenance expense at the start of the month; acquisition expense and initial commission at issue. Claims arise at the end of the month, and the claim expense with them. The first annuity instalment falls at the end of the month of the insured event and each later instalment at the end of each later month — the contractual timetable is the day before the first monthly policy anniversary falling on or after the event, then the day before each subsequent anniversary [S1 第3条第2項] [S5], which on a monthly grid is exactly one payment per month starting in the month of the event. Lapse at the end of the month, after deaths. Premium frequency is a timing feature, not an inert flag std: on 半年払 and 年払 the premium falls as
12 / fmonths’ premium at the start of each payment period and nothing in between, with no 前納 and no frequency discount applied because the discount is insurer-set and unpublished [S1 第14条] — so a policy year costs the same at all three frequencies and only the timing moves. The worked example is 月払, the frequency the only published rate grid is quoted in [S6].Age basis std. Issue age (keiyaku nenrei, 契約年齢) is 満年齢 with the fraction truncated [S1 第37条] [S14]; attained age in month
tisx + floor((t − 1) / 12). 生保標準生命表2018(死亡保険用)is built for a 保険年齢 basis REG-R20 R2, so reading it at 満年齢 reads it half a year early and understates mortality. The chassis states the bias and the optionalsqrt(q_x · q_{x+1})shift; both apply here unchanged.Currency. JPY throughout [S1]. No FX layer.
Model points. Single-policy, on an expected (probability-weighted) basis. The anchor cell of the worked example is
point_id = 1.Termination — and the sentence this product exists to force. The policy terminates at the end of the policy term (hoken kikan, 保険期間) with nothing payable on survival: no 満期保険金, no surrender value (kaiyaku-henreikin, 解約返戻金) at any duration [S2] [S5] [S6] [S7] [S9] [S15]. But cash flow does not stop there. Where the insured event falls so late that fewer than
Gmonths remain, the annuity payment period is extended past the expiry date until the guarantee has run [S1 第3条第2項] [S3 第3条第3項] [S5] [S12] [S14]. The projection horizon is thereforeT = N + G − 1
months, not
N. On the anchor cellN = 420andG = 24, soT = 443: a death in policy month 420 pays its twenty-fourth instalment in month 443, twenty-three months after cover ended. Terminating the projection att = Ntruncates real, contractual liability, and it is the single easiest error to make in an implementation of this product.Contract boundary. Unlike the chassis, this contract has no renewal (kōshin, 更新) in any retrieved document [S5] [S6] [S8], and the premium is level and guaranteed for the whole 保険期間 with no review mechanic [S1] [S2] [S5] [S6] [S8] [S12]. The insurer therefore has no unilateral repricing right, the boundary is the full term, and the boundary argument that dominates the term life technical notes (定期保険) does not arise here. The run-off tail in months
N + 1 … Tis inside the boundary: it is the settlement of a claim that arose inside it.Rounding. Intermediates at full precision; displayed cash flows to two decimals of a yen; in-force to six decimals; the claim and annuity-ledger populations to nine decimals std. Nine is not decoration: on a monthly grid at age 30 the monthly claim probability is about 3.2e−5, so six decimals leaves the first policy year’s claim and ledger populations with two significant figures —
D(1) = 0.000031739displays as 0.000032, a 0.8% distortion of the largest single component of the benefit, and the twelve months of policy year 1 collapse onto four distinct displayed values.
Model point attributes#
Attribute |
Type |
Anchor cell ( |
|---|---|---|
|
enum {M, F} |
M |
|
int, 満年齢, 20–70 [S6] [S7] [S14] |
30 |
|
int, 45–90 [S8]; 歳満了 only, no 年満了 and no 更新 [S5] [S6] |
65 |
|
int months, |
420 |
|
int months, from {24, 60} [S3] [S5] [S7] [S9] [S12] |
24 |
|
JPY/month, ¥50,000 minimum in ¥10,000 steps [S6] [S8] [S12] |
150,000 |
|
enum {非喫煙者優良体, 喫煙者優良体, 非喫煙者標準体, 喫煙者標準体} [S2] [S5] [S14] |
非喫煙者優良体 |
|
float, mortality multiplier for the class |
0.70 std |
|
JPY/month |
2,565 [S6] |
|
enum {monthly, semiannual, annual} [S1 第12条] |
monthly |
|
bool (一括受取 at the claim date; base run false) |
false |
|
bool (リビング・ニーズ特約; base run false) |
false |
|
bool (保険料払込免除; base run false) |
false |
|
bool (復活 module; base run false) |
false |
P_m is a published figure: ¥2,565 is the 65歳満了 / 保証2年 / 非喫煙優良体型 / 年金月額¥150,000 monthly
rate for a male aged 30, as at 2025年12月2日 [S6]. Two honest qualifications carried over from
product-spec.md footnote 7: the publishing carrier runs a two-class structure, so its
非喫煙優良体型 is not exactly the composite’s 非喫煙者優良体 cell, and the total-benefit illustration the
cell is checked against is written on a 5年 guarantee by a different carrier [S14], which
changes nothing before the last two policy years. std here covers the choice of cell
and nothing else about the premium.
term_m is derived, not an input: every published contract example sets the term as
to a stated attained age (sai manryō, 歳満了) [S2] [S5] [S6] [S8] [S9] [S12] [S14] [S15]
[S17]. A model point supplying an n-year term is describing a product the composite does not
have.
State variables#
Variable |
Description |
Updated |
|---|---|---|
|
In-force probability at the start of month t; |
monthly recursion |
|
Best-estimate annual death-and-高度障害 rate (one decrement) at attained age |
assumption lookup |
|
Monthly equivalent, |
derived |
|
Annual and monthly ordinary lapse rate |
assumption lookup |
|
Expected new claims in month t = |
monthly |
|
Annuity streams in payment during month t — the in-payment ledger |
monthly recursion |
|
Net cash flow of month t, insurer perspective (+ = inflow) |
monthly |
R(t) is the state variable this product adds to the chassis, and it obeys a rule that has
no analogue anywhere else in jplib:
The in-payment ledger is never decremented. Not by the insured’s mortality — the insured is dead, and that is what opened the stream. Not by the recipient’s mortality — on the composite the instalments carry no survival condition [S1] [S5] [S14], so the stream is an annuity-certain. Not by lapse — a policy in claim cannot lapse, and premiums have ceased [S1 第12条第2項] [S3 第5条] [S8].
R(t)falls only when a stream reaches its contractual last instalment.
There is deliberately no cv_pp and no account value: the composite has no 解約返戻金 for
the whole term [S2] [S5] [S6] [S7] [S9] [S15], and with no cash value there is no automatic
premium loan (jidō furikae kashitsuke, 自動振替貸付) and no 契約者貸付 — one carrier states the
absence in terms [S2]. Grace to 失効 to 復活-or-not is the whole persistency machinery, exactly
as on the chassis.
Two contractual clocks are tracked and not monetized in the base run: the three-year suicide 免責期間 and the two-year 告知義務違反 contestability window, both running from the 責任開始期 and both restarted only by 復活 [S1] [S3] [S4] [S5] REG-R34 REG-R35.
Assumption inputs#
Three classes, kept separate.
(a) Contractual / guaranteed elements (cited)#
Input |
Value |
Basis |
|---|---|---|
Survivor annuity (izoku nenkin, 遺族年金) |
|
[S1 第3条] [S3 第3条] [S5] [S9] [S12] [S14] |
高度障害年金 |
The same |
[S1 第3条] [S3 第3条] [S5] [S9] |
Instalment count |
|
derivation below; [S5] [S14] [S15] |
Guarantee mechanic |
A term extension past expiry, not a benefit floor inside the term |
[S1 第3条第2項] [S3 第3条第3項] [S5] [S12] [S14] |
Survival condition |
None; the stream is an annuity-certain |
[S1] [S5] [S14] |
Premium |
Level for the whole 保険期間; 保険料払込期間 = 保険期間; no review, no 更新 |
[S1] [S2] [S5] [S6] [S8] [S12] |
Premium cessation |
On the annuity event: no further premium once the annuity begins |
[S1 第12条第2項] [S3 第5条] [S8] |
解約返戻金 |
None, whole term |
[S2] [S5] [S6] [S7] [S9] [S15] |
Grace (yūyo kikan, 猶予期間), 月払 |
To the last day of the month after the 払込期月; then 失効 |
[S1 第15条] [S3] [S4] |
復活 |
3 years from lapse, on fresh underwriting and arrears with interest; rate class carries over |
[S1 第17条] [S3] [S5] |
Suicide 免責 |
3 years from the 責任開始期, reset on 復活; 責任準備金 paid to the owner |
[S1] [S3] [S4] [S5] |
Commutation (一括受取) |
Present value of unpaid instalments, in whole, in part, or as the residue |
[S2] [S3] [S5] [S7] [S10] [S12] [S14] |
Residual floor |
A partial commutation leaving 年金月額 below ¥50,000 is refused |
[S7] [S1 第5条第3項] [S3 第6条第4項] |
Benefit cap |
年金現価保険金額 ¥300,000,000 — a cap on the present value |
[S8] |
リビング・ニーズ特約 |
年金現価 of the designated 年金月額 less 6 months’ interest and premium; cap ¥30,000,000; barred in the final year |
[S2] [S5] [S7] |
保険料払込免除 |
不慮の事故 on or after 責任開始期, 別表4 state within 180 days; disease-based waiver is a rider only |
[S1 第6条] [S3 第8条] [S5] [S6] |
Deriving the instalment count. With N the term in months, m the policy month of the
insured event and G the guarantee in months, n_pay(m) = max(N − m + 1, G) reproduces
every published illustration in the source set. On N = 420: 420 instalments for m = 1,
240 for m = 181, 60 for m = 361 [S14]; 411 for m = 10 and 178 for m = 243 [S15]; and
on a 5年 guarantee, 420 for m = 1, 246 for m = 175, and 60 for a death 33 years in,
where the remaining term is 24 months and the guarantee binds [S5]. Carriers label elapsed
duration inconsistently — one counts the month of the event, another counts completed months
— but the guarantee case is the only one where the two conventions could not both hold, and
it holds.
The stream opened in month m therefore pays its last instalment in month
ends_at(m) = m + n_pay(m) − 1 = max(N, m + G − 1)
which is the whole guarantee mechanic in one expression, and the expression a test should
assert. For m ≤ N − G + 1 every stream ends at exactly N; only later claims run past it.
(b) Insurer-discretionary current elements#
Input |
Snapshot value |
Basis |
|---|---|---|
契約者配当 |
Nil — every retrieved product is 無配当 |
[S1 第39条] [S2] [S5] [S15] |
Commutation basis |
Annuity-certain at 0.65% p.a. effective, monthly in arrears |
std (1) |
前納 discount, 高額割引 |
Insurer-set and unpublished; not modeled |
[S1 第14条] [S6]; scope std |
Pricing basis (assumed interest rate (yotei riritsu, 予定利率), 予定死亡率, 予定事業費率) |
Not published for any 収入保障 contract in the set; filed under 保険業法第4条第2項第4号 and not public |
REG-R2; gap |
The most important std number in this product, and the best-evidenced. No direct writer publishes the discount basis; the wordings are 「年金月額に所定の係数を乗じた額」 [S6] and 「将来に発生する利息を差し引いて算出した現在の保険契約の価値」 [S10]. One 特約条項 publishes the factor tables themselves — 年金の現価相当額 = 基本年金額 × a tabulated rate with no dependence on the annuitant’s age or sex, running 4.975 at a 5-year payment period, 9.801 at 10, 14.474 at 15, 18.997 at 20, 23.377 at 25, 27.616 at 30 and 39.542 at 45 [S13 別表1]. Fitting an annual annuity-due less a small constant to those gives about 0.61% p.a., and the second column of the same table, for a different main contract, about 1.45%; both fits are derivations recorded in
_research/income-guarantee.md, not published rates, and the constant is part of the derivation — a plain annuity-due with no constant fits the same seven factors at 0.59%. Three carriers publish a worked commutation amount instead: ¥100,000 × 180 to ¥16,594,260 [S6], ¥200,000 × 300 to 約¥55,310,000 [S10] and ¥100,000 × 300 to 約¥27,640,000 [S17] — ratios of 0.92190, 0.92183 and 0.92133, implying 1.10%, 0.66% and 0.66% respectively. The two independent anchors — 0.61% from the factor table and 0.66% from the two 300-instalment amounts — have a midpoint of 0.635%; the composite takes that rounded to the nearest 0.05%, 0.65% p.a. effective. Verified numerically at that rate, monthly in arrears: ¥200,000 × 300 commutes to ¥55,377,890.69 (+0.12% on the published 約 amount) and ¥100,000 × 300 to ¥27,688,945.35 (+0.18%), both inside the published rounding. It does not reproduce the 180-instalment amount: at 0.65% that stream commutes at ¥17,148,368.65, a ratio of 0.952687 against the published 0.921903. That is a fact about the data, not a failure of the fit — no single flat rate produces a near-constant ratio at both 180 and 300 instalments, so either the carriers’ bases differ or a term-dependent adjustment is in use, and neither is published. Observed range to test over: 0.61%–1.45%.
(c) Behavioral / experience assumptions (modeler’s view — all std)#
Mortality — one decrement. 生保標準生命表2018(死亡保険用)includes 高度障害 inside its death rate
R2 REG-R20, and the contract pays one annuity and the other is then not payable [S1
第3条第3・4項] [S3 第3条第6・7項]. Death and 高度障害 are therefore one decrement carrying one benefit.
The table is freely readable at a stable public URL R1 REG-R18 but its publisher
prohibits reproduction and transmission without written consent REG-R21, so the library
cites the table, quotes the rates the worked example needs, and ships
mort_table.csv as a std construction whose provenance column points at the IAJ
entries.
Step |
Rule |
Basis |
|---|---|---|
Anchors verified for this product |
Male 死亡保険用 |
|
Anchors carried from the chassis |
Male |
|
Shipped anchors |
The union of every anchor any |
one canonical std file, so a cell carries the same value and the same provenance in every product that ships it |
Female rates |
Read at the female anchors in their own right, not built as a ratio to the male rate |
|
Interpolation |
Log-linear in |
|
Best estimate |
|
|
Monthly conversion |
|
|
Improvement |
None in the base run |
The rate-class factor is the parameter
product-spec.mdfootnote 6 defers to this file. The composite has four classes [S2] [S5] [S14], their qualification is published and measured rather than declared — BMI 18.0 to under 27.0, 最大血圧 under 140 and 最小血圧 under 90 mmHg, no tobacco in the past year, verified by a cotinine (コチニン) test [S2] [S5] — and no carrier publishes the premium differential between them. The reference set is therefore wholly std, given a stated internal structure rather than four free numbers:Class
class_factorstd非喫煙者優良体
0.70
非喫煙者標準体
0.90
喫煙者優良体
1.05
喫煙者標準体
1.35
The structure is a smoker/non-smoker ratio of 1.50 and a preferred/standard ratio of 0.778, applied consistently in both directions, and the levels are pinned by one arithmetic constraint: 生保標準生命表2018 is an all-lives basis, so the mix-weighted mean of the four factors must be 1.00 or the class split silently re-levels the whole table. An illustrative mix of 25% / 35% / 10% / 30% gives exactly 1.000:
0.25 * 0.70 + 0.35 * 0.90 + 0.10 * 1.05 + 0.30 * 1.35 = 1.000
The mix is std and illustrative; it is used to check the normalization and is not a claim about the market. No observed range can be given, because nothing is published.
Lapse. The chassis table, unchanged and reconciled there to the LIAJ’s FY2024 個人保険 解約・失効率 of 5.6% REG-R31:
Policy year |
1 |
2 |
3 |
4 |
5+ |
|---|---|---|---|---|---|
Annual |
9% |
7% |
6% |
5.5% |
5% |
with w_m(t) = 1 − (1 − w(t))^(1/12) std. Lapse pays nothing: there is no 解約返戻金
[S2] [S5] [S6] [S7] [S9] [S15]. Nothing product-specific was found — the national household
survey does not break 収入保障保険 out at all R11 REG-R32 — so this table is the chassis’s
table used because it is the only one the library has, not because it was calibrated here.
Expenses and commission. All chassis levels, unchanged, plus one new item.
Input |
Value |
Note |
|---|---|---|
Acquisition expense |
¥15,000 per policy at issue |
chassis std |
Initial commission |
50% of the first-year annualized premium |
chassis std |
Renewal commission |
5% of premiums from month 13 |
chassis std |
Maintenance |
¥4,000 p.a. inflating 1.0% p.a., taken as |
chassis std |
Claim expense |
¥30,000 per claim, once, when the stream opens |
chassis std |
Annuity expense |
¥200 per instalment paid |
new std (3) |
The chassis pays a lump sum and closes the file. This product pays up to 420 instalments over up to 35 years after the claim, and the administration of that stream is a real cost that no cited document quantifies.
eais charged against the ledgerR(t), not againstl(t)— it is the one expense that survives the end of the policy term. The level is a std placeholder; its cash-flow weight on the anchor cell is small (¥591.08 undiscounted per policy issued against ¥443,313.69 of claims) but its structure is the point: an implementation that attaches every expense tol(t)charges nothing at all in months 421–443, when instalments are still being paid.
Cash flow components and recursions#
Notation#
Symbol |
Meaning |
cells |
|---|---|---|
|
policy month, |
— |
|
契約年齢 (満年齢); attained age in month t is |
|
|
policy year, |
|
|
保険期間 in months, |
|
|
最低支払保証期間 in months |
|
|
projection horizon in months, |
|
|
年金月額, JPY per month |
|
|
monthly office premium, JPY per month |
|
|
office premium falling due at the start of month t |
|
|
instalments generated by a claim in month m, |
|
|
month of that stream’s last instalment, |
|
|
annual and monthly death-and-高度障害 rate |
|
|
annual and monthly ordinary lapse rate |
|
|
in-force probability at the start of month t |
|
|
expected new claims in month t, |
|
|
annuity streams in payment during month t |
|
|
acquisition expense; initial commission; renewal commission rate |
|
|
monthly maintenance, |
|
|
claim expense per claim; annuity expense per instalment |
|
|
commutation rate p.a. effective; |
|
|
net cash flow of month t (+ inflow) |
|
Dimensional check. q, q_m, w, w_m, l, D, R are dimensionless — l and D
are probabilities per policy issued, and R is a count of instalments falling due, also
per policy issued, so it is dimensionless in the same sense and is not a population of
policies. A, P_m, e_m, ea are JPY per month; E0, c0, ec are JPY per event;
n_pay and ends_at are month counts. Every term of CF(t) is JPY per month per policy
issued. The two products that must not be confused: A × R(t) is JPY per month (annuity
outgo) while A × n_pay(m) is JPY (the total benefit for one claim).
The in-payment ledger#
The ledger is the whole model. For t = 1 .. T:
R(t) = R(t−1) − ended(t) + D(t), R(0) = 0
ended(t) = sum of D(s) over all s with ends_at(s) = t − 1
D(t) enters R(t) in the same month, because the first instalment falls at the end of
the month of the event. Two cases exhaust ended(t):
ended(t) = sum of D(s) for s = 1 .. N − G + 1 if t = N + 1
= D(t − G) if t > N + 1
= 0 otherwise
The first case is the structural fact worth a test: every stream opened in months 1 … N −
G + 1 pays its last instalment in month N exactly, whenever it opened, because the
expiry date is fixed at issue. It follows immediately that
R(N) = sum of D(s) for s = 1 .. N
— the ledger at the last month of cover equals every claim the contract has ever made. Two further identities a model must satisfy:
R(t) = sum of D(s) over s with s <= t <= ends_at(s) (direct form)
sum over t of R(t) = sum over s of D(s) * n_pay(s) (total instalments)
check_annuity_ledger() asserts the recursion against the direct form at every t and
returns a single bool.
Processing order#
For t = 1 .. T, in this order std:
Start of month — income and standing outgo, on the in-force population only. Premium
P_due(t) × l(t); maintenancee_m(t) × l(t); renewal commissionc_r × P_due(t) × l(t)fort ≥ 13. Att = 1additionallyE0 + c0per policy issued (l(1) = 1). Fort > Nall four are zero: cover has expired andl(t) = 0.P_due(t)is the premium falling due in montht, which on the anchor cell’s 月払 isP_mevery month; see the frequency rule in Timing conventions.Decrement lookup.
q(t)at attained agex + floor((t − 1) / 12);q_m(t)from it;w(t)from the lapse table byy(t);w_m(t)from it. Fort > N, all zero.End of month — new claims.
D(t) = l(t) × q_m(t). Claim expenseec × D(t). No lump sum is paid. The claim opens an annuity stream; it does not settle one.End of month — the ledger.
R(t) = R(t−1) − ended(t) + D(t). Annuity outgoA × R(t); annuity expenseea × R(t). This step runs for everytup toT, including the months after the policy term has ended.End of month — ordinary lapse.
l(t) × (1 − q_m(t)) × w_m(t)leave, applied to survivors of mortality. Nothing is paid.Roll forward.
l(t+1) = l(t) * (1 - q_m(t)) * (1 - w_m(t)) for t < N l(t+1) = 0 for t >= N
The identity
l(t) − l(t+1) = D(t) + lapses(t)holds fort < N, andcheck_pols_roll_fwd()asserts it over all sucht. Att = Nthe survivors leave with nothing: on the anchor cell that is 0.144342 of the original cohort.
Net cash flow#
CF(t) = P_due(t) * l(t) (premiums)
- A * R(t) (annuity instalments)
- ea * R(t) (annuity administration)
- ec * D(t) (claim expense)
- e_m(t) * l(t) (maintenance)
- c_r * P_due(t) * l(t) * 1{t >= 13} (renewal commission)
- (E0 + c0) * 1{t = 1} (acquisition)
net_cf is income-positive, per the library convention. Lapse contributes no term: it acts
only through l(t), and claims_lapse is identically zero — the zero is the product fact
worth publishing. Note which population multiplies which term: premiums, maintenance and
commission carry l(t); the annuity instalments and the annuity expense carry R(t); and
l(t) and R(t) are disjoint populations that must never be added.
Optional modules (all off in the base run)#
The numeric values, first. Each module below is switched off in the base run, so none of
these numbers touches the worked example — but the std rule is that a quantitative
parameter is written down with its rationale wherever it lives, not left to be read off the
model. Four rows are contractual and cited (ln_defer_m, ln_cap, reinst_window_m,
and commute_rate through its own footnote); no retrieved document quantifies any of the
other seven, so no observed range can be given for them. The “why this value” column says
what each number is chosen to do; a user switching a module on should replace the row
rather than calibrate to it.
Module |
Parameter |
Value std |
Why this value |
|---|---|---|---|
リビング・ニーズ特約 |
|
5% of the month’s claims |
A visible but non-dominant election, chosen so the module changes the claim mix without swamping it. The rider’s presence is sourced [S2] [S5] [S7]; only the take-up is invented |
リビング・ニーズ特約 |
|
6 months |
Contractual, not chosen: the payout is the 年金現価 less six months’ interest and premium equivalent [S2] [S5] [S7] |
リビング・ニーズ特約 |
|
¥30,000,000 |
Contractual [S2] [S5] [S7] |
保険料払込免除 |
|
0.06% p.a. |
An order of magnitude below |
保険料払込免除 |
|
10% p.a. |
A mean stay of about ten years in the waived state: the 別表4 states are permanent impairments, so recovery is slow rather than absent, and a zero recovery rate would make the waived fraction monotone and hide the two-state structure |
復活 |
|
15% of each month’s lapses |
Below the mid-range of what a three-year 復活 window could deliver, on the view that a 無解約返戻金型 policy gives an owner nothing to protect by reinstating. It is a single-lag approximation, so this rate carries the whole window’s take-up |
復活 |
|
6 months |
One lag standing for the whole three-year window, set at the point where arrears are still small enough to be paid in one instalment. The model rejects a lag outside |
復活 |
|
36 months |
Contractual: 復活 runs three years from lapse [S1 第17条] [S3] [S5] |
復活 |
|
0.65% p.a. |
復活 requires arrears with interest [S1 第17条], and no carrier publishes the rate. Set equal to |
Selective lapsation |
|
0 |
Off in the base run; the mechanism is real but unquantified (Policyholder behavior modeling) |
Selective lapsation |
|
1.0 |
The threshold |
一括受取 |
|
0.65% p.a. effective |
The one std number here with published anchors; assumption class (b) footnote 1 carries the derivation and the 0.61%–1.45% observed range |
Commutation (一括受取). With
commutation = true, a claim in monthmis settled at the claim date by a lump sum instead of the stream:L(n) = A * v * (1 - v^n) / (1 - v), v = (1 + i_c)^(-1/12), n = n_pay(m)
at
i_c = 0.65%std. The ledger is then not opened and the annuity expense collapses to one payment. On the anchor cell a death in month 1 commutes ¥63,000,000 of instalments to ¥56,352,381.90, a ratio of 0.894482; at 300 remaining instalments the ratio is 0.922965, against the 0.92133–0.92190 the three published illustrations show [S6] [S10] [S17]. Contractually a full commutation extinguishes the contract [S1 第5条第2項] [S3 第6条第3項] [S12] [S14], so in a projection it changes the shape of the claim payment and nothing else. Partial commutation (一部一括受取) is not modeled: it is barred once the first instalment has been paid [S3 第6条第4項第1号], limited to once during the term at two carriers [S10] [S12], and refused where the residual 年金月額 falls below ¥50,000 [S7] — three restrictions that make it an election on a claim already open rather than a cash-flow shape [std scope].リビング・ニーズ特約. Acceleration incidence std (no retrieved document gives one). The payout is the 年金現価 of the designated 年金月額 less six months’ interest and premium equivalent, capped at ¥30,000,000 and barred in the final year [S2] [S5] [S7]. The product-specific consequence: because the amount is the present value of an income stream, the cap binds far earlier in the term than it does on a level sum assured — on the anchor cell the full 年金現価 is ¥56,352,381.90 at issue, so the cap bites from month 1 and keeps biting until the unpaid stream has run down below ¥30,000,000 of present value.
保険料払込免除. A waiver state on the accident-plus-180-days-plus-別表4 test [S1 第6条] [S3 第8条] [S5] [S6] with std incidence. 別表4 is a materially lower bar than the 別表3 高度障害 schedule, so the waiver incidence is not the 高度障害 incidence and must not reuse
q(t).復活. The chassis’s lapsed-but-reinstatable population with a three-year window [S1 第17条] [S3] [S5] and a std reinstatement rate. Off in the base run. The rate class carries over unchanged on reinstatement [S3], which matters here because the class is a mortality parameter.
Recipient-mortality variant. One carrier alone conditions second-and-later instalments on the recipient being alive [S3 第3条第3項], commuting the residue to the 法定相続人 on the recipient’s death [S3 第7条]. Modeling it requires a post-event mortality basis on a life the contract never underwrote, and the 年金開始後用 table stays on the 2007 vintage REG-R11 — a whole second basis for one carrier’s wording. Out of scope std, and the contract side confirms the composite’s choice: the one published factor table depends on the payment period and the type of main contract and explicitly not on the annuitant’s age or sex [S13 別表1]. That is a published statement that the stream is an annuity-certain.
Policyholder behavior modeling#
All dynamic formulas are std reference constructions.
No renewal decision. The chassis’s largest behavioural lever, the 更新 decline rate, is absent here — no retrieved document offers 更新, and one states the absence in terms [S5]. A model that imports the chassis’s
d(t)invents a decision this contract does not have. Its nearest replacement is 保険契約の変換, conversion into a 定期保険 or 終身保険 without underwriting, blocked in the final two years [S6]; that creates a new contract on a different chassis at then-current rates, so it produces no liability on the modeled policy and is out of scope [std scope].Selective lapsation std (optional).
q_eff(t) = q(t) × [1 + λ × max(0, 1 − l(t)/l_ref)]withλstd and base runλ = 0. The mechanism is weaker than on the chassis because there is no periodic no-underwriting renewal to select against, but it is not absent: the rate class is fixed at issue and cannot be changed even if BMI, blood pressure or smoking status changes [S2] [S14], so a life whose health deteriorates keeps a preferred rate while a life whose health improves cannot get one and may re-shop.Commutation take-up. Zero in the base run std. No carrier publishes an election frequency. The election is the recipient’s, not the policyholder’s, and it is made after the insured event, so it cannot be driven off any pre-claim behavioural variable.
減額. Permitted above an insurer-set floor; on the 無解約返戻金型 composite it produces no refund at all [S1 第28条] [S3] [S7]. Not modeled: it changes
AandP_mtogether, which is a model-point re-parameterization rather than a decrement [std scope].クーリング・オフ. Out of scope: the model begins with cover in force and the eight-day statutory population REG-R36 already out. One carrier contracts for 14 days [S5].
Worked example#
Anchor cell (point_id = 1). Male, 契約年齢 30 (満年齢), 65歳満了 so N = 420 months,
最低支払保証期間 2年 so G = 24 months, T = 420 + 24 − 1 = 443 months, 年金月額
A = ¥150,000, rate class 非喫煙者優良体, 月払保険料 P_m = ¥2,565 [S6]. Base run: no commutation,
no リビング・ニーズ, no waiver, no 復活, no selective lapsation.
Headline arithmetic, for orientation. A death in policy month 1 pays 420 instalments of
¥150,000 = ¥63,000,000 [S14]; total premium if the contract runs to expiry is
¥2,565 × 420 = ¥1,077,300, about 1.7% of that. A death in policy month 419 pays
max(420 - 419 + 1, 24) = 24 instalments, running from month 419 to month 442 —
twenty-two months past the expiry date.
Every assumption value the cell uses. The mortality anchor q30 = 0.00068 is read
from 生保標準生命表2018(死亡保険用)男 R1 REG-R18; it is a sourced value, not an illustration. The
best-estimate rate is q(t) = 0.80 × 0.70 × q_x^tab — the chassis’s 0.80 std factor and
this product’s 0.70 std 非喫煙者優良体 class factor — so at attained age 30
q(t) = 0.80 * 0.70 * 0.00068 = 0.000380800 (annual)
q_m(t) = 1 - (1 - 0.000380800)^(1/12) = 0.000031738873 (monthly)
Policy-year-1 lapse is 9% std, so w_m = 1 − 0.91^(1/12) = 0.007828420342. Expenses
and commission, all std chassis levels: E0 = ¥15,000; c0 = 0.50 × 12 × 2,565 = ¥15,390; c_r = 5% from month 13; e_m(t) = (4,000 / 12) × 1.01^(y(t) − 1), so
¥333.333333 a month in policy year 1 and ¥336.666667 in year 2; ec = ¥30,000; ea = ¥200.
Further table rates used later in the projection. Three are themselves sourced anchors —
q31 = 0.00069, q32 = 0.00070, q45 = 0.00177 R1 REG-R18 — and three are log-linear
interpolations in ln q between the neighbouring anchors, rounded to 5 decimals std:
q44 = 0.00163, q63 = 0.00851, q64 = 0.00929.
t |
age |
|
Premiums |
|
|
Annuity claims |
Claim + ann. exp |
Maint. + acq. |
Comm. |
|
|---|---|---|---|---|---|---|---|---|---|---|
1 |
30 |
1.000000 |
2,565.00 |
0.000031739 |
0.000031739 |
4.76 |
0.96 |
30,723.33 |
0.00 |
−28,164.05 |
2 |
30 |
0.992140 |
2,544.84 |
0.000031489 |
0.000063228 |
9.48 |
0.96 |
330.71 |
0.00 |
+2,203.68 |
3 |
30 |
0.984342 |
2,524.84 |
0.000031242 |
0.000094470 |
14.17 |
0.96 |
328.11 |
0.00 |
+2,181.60 |
13 |
31 |
0.909653 |
2,333.26 |
0.000029296 |
0.000394122 |
59.12 |
0.96 |
306.25 |
116.66 |
+1,850.27 |
420 |
64 |
0.145023 |
371.98 |
0.000063023 |
0.016779783 |
2,516.97 |
5.25 |
67.80 |
18.60 |
−2,236.63 |
421 |
— |
0.000000 |
0.00 |
0.000000000 |
0.001463980 |
219.60 |
0.29 |
0.00 |
0.00 |
−219.89 |
443 |
— |
0.000000 |
0.00 |
0.000000000 |
0.000063023 |
9.45 |
0.01 |
0.00 |
0.00 |
−9.47 |
Trace, month 1. l(1) = 1; premium = 2,565 × 1 = 2,565.00. D(1) = 1 × 0.000031738873 = 0.000031738873. The claim opens a stream and pays no lump sum, so R(1) = R(0) − 0 + D(1) = 0.000031738873 and annuity outgo = 150,000 × 0.000031738873 = 4.76083098. Annuity
expense = 200 × 0.000031738873 = 0.00634777; claim expense = 30,000 × 0.000031738873 = 0.95216620; the two together are 0.95851397. Maintenance = 4,000 / 12 = 333.33333333;
acquisition = E0 + c0 = 15,000.00 + 15,390.00 = 30,390.00, so the column shows
30,723.33333333. CF(1) = 2,565.00 − 4.76083098 − 0.00634777 − 0.95216620 − 333.33333333 − 30,390.00 = −28,164.05267828 → −¥28,164.05. Roll forward: l(2) = 1 × (1 − 0.000031738873) × (1 − 0.007828420342) = 0.9921400892.
Trace, month 2. Premium = 2,565 × 0.9921400892 = 2,544.83932893. q_m(2) = 0.000031738873 still — the attained age is unchanged for the first twelve months — so D(2) = 0.9921400892 × 0.000031738873 = 0.000031489408. R(2) = 0.000031738873 + 0.000031489408 = 0.000063228282: nothing ended, because the first stream runs to month 420. Annuity
outgo = 150,000 × 0.000063228282 = 9.48424226 — already double month 1’s, on 0.99 of the
population, because the ledger accumulates while l(t) decays. Annuity expense = 200 × 0.000063228282 = 0.01264566; claim expense = 30,000 × 0.000031489408 = 0.94468225.
Maintenance = 333.33333333 × 0.9921400892 = 330.71336308. No commission before month 13.
CF(2) = 2,544.83932893 − 9.48424226 − 0.01264566 − 0.94468225 − 330.71336308 = +2,203.68439568 → +¥2,203.68. Roll forward: l(3) = 0.9921400892 × (1 − 0.000031738873) × (1 − 0.007828420342) = 0.9843419567.
Trace, month 3. Premium = 2,565 × 0.9843419567 = 2,524.83711893.
D(3) = 0.9843419567 × 0.000031738873 = 0.000031241905;
R(3) = 0.000063228282 + 0.000031241905 = 0.000094470186; annuity outgo
= 150,000 × 0.000094470186 = 14.17052794; annuity expense = 0.01889404; claim expense
= 0.93725714; maintenance = 333.33333333 × 0.9843419567 = 328.11398557.
CF(3) = 2,524.83711893 − 14.17052794 − 0.01889404 − 0.93725714 − 328.11398557 = +2,181.59645425 → +¥2,181.60.
Trace, month 13 — the first month of policy year 2. Three things change at once and an
implementation can get any of them wrong. The attained age moves to 31, so q(13) = 0.80 × 0.70 × 0.00069 = 0.000386400 and q_m(13) = 0.000032205704. The lapse rate moves to the
year-2 row, w = 7%, w_m = 0.006029308066. And maintenance inflates: e_m(13) = (4,000 / 12) × 1.01 = 336.66666667. With l(13) = 0.9096534720: premium = 2,565 × 0.9096534720 = 2,333.26115568; renewal commission = 0.05 × 2,333.26115568 = 116.66305778, the first one
paid; D(13) = 0.9096534720 × 0.000032205704 = 0.000029296030; R(13) = 0.000364825643 + 0.000029296030 = 0.000394121674; annuity outgo = 150,000 × 0.000394121674 = 59.11825109;
annuity expense = 0.07882433; claim expense = 0.87888091; maintenance = 336.66666667 × 0.9096534720 = 306.25000224. CF(13) = 2,333.26115568 − 59.11825109 − 0.07882433 − 0.87888091 − 306.25000224 − 116.66305778 = +1,850.27213932 → +¥1,850.27.
Trace, month 420 — the last month of cover. l(420) = 0.1450233243; premium = 2,565 × 0.1450233243 = 371.98482677, the four-hundred-and-twentieth and last. q(420) = 0.80 × 0.70 × 0.00929 = 0.005202400, q_m(420) = 0.000434570514, so D(420) = 0.000063022861. Nothing
has ended yet, so R(420) = 0.016716760543 + 0.000063022861 = 0.016779783403 — and this is
exactly the sum of D(s) over the whole term, because every stream is still paying in
month 420. Annuity outgo = 150,000 × 0.016779783403 = 2,516.96751047; annuity expense = 3.35595668; claim expense = 1.89068582; maintenance = (4,000/12) × 1.01^34 × 0.1450233243 = 67.80212570; commission = 18.59924134. CF(420) = 371.98482677 − 2,516.96751047 − 3.35595668 − 1.89068582 − 67.80212570 − 18.59924134 = −2,236.63069323 →
−¥2,236.63. Survivors leave with nothing: 0.1450233243 × (1 − 0.000434570514) × (1 − 0.004265318778) = 0.1443419995, and l(421) = 0.
Trace, month 421 — the first month past expiry, and the row a wrong model does not have.
No premium, no maintenance, no commission, no new claims: l(421) = 0. Every stream opened
in months 1–397 ended at month 420, so ended(421) = sum of D(s) for s = 1 .. 397 = 0.015315803299, and R(421) = 0.016779783403 − 0.015315803299 + 0 = 0.001463980104 — the
streams from months 398–420, which the guarantee carries past expiry. Annuity outgo = 150,000 × 0.001463980104 = 219.59701556; annuity expense = 0.29279602. CF(421) = −219.59701556 − 0.29279602 = −219.88981158 → −¥219.89. From here ended(t) = D(t − 24), so the ledger runs down one month’s claims at a time until R(443) = D(420) = 0.000063022861 and CF(443) = −9.46603365 → −¥9.47. The projection ends at t = 443.
Totals over the 443 months, undiscounted, per policy issued.
Line |
Amount |
|---|---|
Premiums |
¥461,030.83 |
Annuity instalments |
¥443,313.69 |
Annuity administration |
¥591.08 |
Claim expense |
¥503.39 |
Maintenance |
¥67,706.86 |
Commission (renewal) |
¥21,577.36 |
Acquisition ( |
¥30,390.00 |
Net cash flow |
−¥103,051.56 |
Structural quantities behind those totals: expected claims over the term sum D(s) = 0.016779783; expected instalments sum R(t) = 2.955425 per policy issued, which reconciles
exactly to sum D(s) × n_pay(s); average total benefit per claim ¥26,419,511.96; lapses
over the term 0.838878 and survivors at expiry 0.144342 of the original cohort. ¥2,645.21
of the claim outgo — 0.5967% — falls in months 421 to 443, after the policy has expired.
Read the sign honestly. The undiscounted net is negative, and the reason is not a bug. The premium is a published preferred-non-smoker rate and the assumption basis is a std adjustment of a valuation table carrying a 2σ margin R2 REG-R20; the pricing basis that would reconcile them — 予定利率, 予定死亡率, 予定事業費率 — sits in the 算出方法書 filed under 保険業法第4条第2項第4号 and is not public REG-R2. More importantly, on this product an undiscounted total is close to meaningless: the benefit is paid over up to 35 years after a claim that itself arises over 35 years, so the claim leg discounts far harder than the premium leg. Present-valuing the same projection at flat annual effective rates gives −¥103,051.56 at 0%, −¥73,865.82 at 0.5%, −¥49,216.50 at 1% and −¥10,895.85 at 2%. Discounting is out of scope for the model and those four numbers are a diagnostic, not a result — but a reader who takes the undiscounted total as the liability has mis-read this product more badly than on any other in the library.
Valuation and reserve pointers#
This library projects gross cash flows. Every valuation layer consumes them and is cited, never reproduced.
Standard policy reserve (hyōjun sekinin junbikin, 標準責任準備金). A conventional guaranteed 収入保障 contract is inside the regime: 保険業法第116条第2項 delegates the method and the coefficients REG-R4, and 施行規則第68条 excludes only separate-account-linked contracts, contracts with no 保険料積立金, contracts where the insurer has disclosed it may change the basis, and residually designated classes — none of which catches this product R8 REG-R7. 第69条 requires 保険料積立金, 未経過保険料, 払戻積立金 and contingency reserve (kiken junbikin, 危険準備金) per category R8 REG-R8. 平成8年大蔵省告示第48号 supplies the method — net level premium method (heijun jun-hokenryō-shiki, 平準純保険料式) — and the table vintage: contracts from 2018-04-01 value on 生保標準生命表2018(死亡保険用)REG-R10 REG-R11 R3. The discount rate is the standard valuation interest rate (hyōjun riritsu, 標準利率), which the supervisory guideline defines as 「責任準備金告示に規定する予定利率」 R9 REG-R10; its current numeric value could not be established from any retrieved document and is unverified — the 新旧対照表 attachments on the regulator’s page were not fetched R10.
The valuation table is not this model’s basis. 標準生命表2018 carries a ~2σ margin capped at 130% of the unadjusted rate plus a forward improvement allowance R2 REG-R20, while
q(t)here is a std adjustment of it and is further multiplied by a std rate- class factor. Three separate departures from the statutory basis sit between this projection and a 責任準備金; say which basis is in use at every point.ESR. From 2026-03-31 insurers report on the 経済価値ベースのソルベンシー規制: assets at fair value, liabilities as 現在推計 + MOCE, required capital at 99.5% over one year, early corrective action below ESR 100% REG-R15, replacing as the trigger the ソルベンシー・マージン比率 threshold of 200% REG-R17 REG-R15.
jplibcomputes neither ratio. What the regime change means for this product is specific: a benefit whose amount is a function of when the claim occurs, settled over decades and re-discounted on a curve that moves at every 基準日, is far more interest-sensitive than a level sum assured, and a locked-in basis conceals that.The professional use of this projection. 保険業法第121条第1項第1号 requires the 保険計理人’s 意見書 REG-R6; the IAJ practice standard turns it into the 1号収支分析 — a forward projection of premiums, claims, expenses and surrenders by 区分経理 segment over at least ten future years, sufficiency-tested over the first five REG-R22. Note the mismatch this product creates: a ten-year window on a 35-year contract sees only the earliest, largest instalment counts and none of the run-off tail.
Accounting. IFRS 17 is voluntary in Japan; IFRS applies as 指定国際会計基準 to insurers that elect it REG-R47. One projection feeds three measurement bases — J-GAAP REG-R10, ESR REG-R15 and IFRS where adopted — and conflating them gets wrong which assumptions are locked in.
On insurer failure, 生命保険契約者保護機構 covers up to 90% of the 責任準備金 under a rate delegated by 保険業法第270条の3 to ordinance REG-R40 REG-R41. Cited, never modeled.
Tax is not a model output but changes what the numbers mean. At the death the object taxed for 相続税 is the 年金受給権, valued at the greatest of the surrender value, the lump sum available in lieu, and the average annual amount times the 複利年金現価率 at the contract’s 予定利率 R6 R5; on a 無解約返戻金型 design the first limb is zero, so the commutation basis of assumption class (b) is also the tax valuation — the ¥300,000,000 年金現価 cap [S8] and the published factors [S13] are tax-relevant numbers. Instalments are then 雑所得 in part R4. On the premium side the contract sits in the 一般生命保険料 basket R7 REG-R43.
Key sensitivities and model risks#
In rough order of leverage on the anchor cell. Every figure below is the undiscounted net cash flow or claim outgo per policy issued, from the same projection.
The rate-class mortality factor.
class_factor = 0.70std is the largest lever and the least evidenced parameter in the file, because no carrier publishes a class differential for this product [S2] [S5] [S6] [S14] [S16]. Annuity outgo runs ¥443,313.69 at 0.70, ¥568,289.70 at 0.90, ¥661,538.07 at 1.05 and ¥846,803.38 at 1.35 — a factor of 1.9 across the composite’s own four classes, on a premium the carrier quotes for the cheapest of them.The chassis’s 0.80 best-estimate factor. Annuity outgo is ¥426,306.73 at 0.769 (the arithmetic implied by removing a margin at its 130% cap REG-R20), ¥443,313.69 at 0.80 and ¥552,708.11 at 1.00 (the raw valuation table). Items 1 and 2 multiply: the two corners of the joint range give ¥426,306.73 (0.769 × 0.70) and ¥1,053,287.56 (1.00 × 1.35), a factor of 2.47, and no document narrows either input.
Discounting, which this library does not do. Net cash flow is −¥103,051.56 undiscounted and −¥10,895.85 at 2% p.a. Nowhere else in
jplibdoes the discount rate move the answer this far, because nowhere else is the benefit a 35-year stream beginning at an uncertain date. Any user comparing this product’s undiscounted output with the term life chassis (定期保険)’s is comparing two quantities of different economic meaning.The guarantee length. Annuity outgo is ¥440,668.48 with no guarantee, ¥443,313.69 at 2年, ¥457,179.73 at 5年 and ¥503,961.05 at 10年 — so the composite’s 2年 guarantee is worth 0.60% of claims, the 5年 alternative in the composite menu 3.7%, and the 10年 option one carrier publishes [S5] 14.4%, each measured against the no-guarantee run. The guarantee is cheap precisely because it binds only in the last
Gmonths of a 420-month term, where few lives remain. The 0-month and 120-month runs are outside the composite’s menu, so reproducing them means relaxing the model’s ownguar_mvalidator; the 2年 and 5年 figures are the two shipped configurations.Lapse, whose sign is the opposite of the chassis’s. Net cash flow is −¥269,617.32 at zero lapse, −¥103,051.56 on the std table and −¥68,603.79 at 1.5× those rates. On this assumption set lapse relieves the liability, because expected claims exceed premiums; on a pricing basis it would not. A sensitivity whose sign flips with the basis needs both runs reported, not one.
The commutation basis, if the module is on. Total claim outgo under full commutation at the claim date is ¥415,875.64 at 0.61%, ¥414,176.30 at the std 0.65% and ¥382,513.43 at 1.45% — the published range [S13] [S6] [S10] [S17] moves claim outgo by 8%, and the commutation module itself cuts claim outgo to 93.43% of the instalment total. Off in the base run, so the exposure is latent, not live.
Expense structure on a small premium. ¥30,780 of annual premium carries ¥4,000 of maintenance; the five non-benefit lines total ¥120,768.70 against ¥461,030.83 of premium, 26.2%. The 1.0% std inflation rate compounds over 35 years and no Japanese public source supports any of these levels.
Known modeling pitfalls:
The projection horizon is not the policy term.
T = N + G − 1, notN[S1 第3条第2項] [S3 第3条第3項] [S5] [S12] [S14]. Terminating att = Non the anchor cell drops ¥2,645.21 of contractual claim outgo, 0.5967% of the total, all of it in months 421–443. It is the most natural error to make and the least visible, because every remaining number still looks reasonable.最低支払保証期間 is a term extension, not a benefit floor. Both readings pay the same
max(N - m + 1, G)instalments, so an undiscounted total cannot distinguish them; they differ in when. A floor implementation compresses the guaranteed instalments inside the term and produces zero cash flow after month 420; the contract pays them after expiry, on the same monthly timetable [S1 第3条第2項]. Test months 421–443 individually, not the total.The in-payment ledger is never decremented. Not by the insured’s mortality, not by the recipient’s, not by lapse [S1] [S5] [S14] [S13 別表1]. Applying the surviving-policy factor
(1 − q_m)(1 − w_m)toR(t)— the natural thing to do ifRis mistaken for a population of policies — cuts annuity outgo on the anchor cell from ¥443,313.69 to ¥245,605.66, an understatement of 44.6%. This is the largest single error available in this model.Premiums stop on the annuity event; the benefit does not. Premium income carries
l(t)and onlyl(t)[S1 第12条第2項] [S3 第5条] [S8]. Netting premiums against claims on one combined population collects ¥7,535.43 of premium — 1.63% of the total — from policies that are in claim and paying nothing.l(t)andR(t)are disjoint and must never be summed.l(t)is a probability of being in force;R(t)is a count of instalments falling due. They have different units in the model’s economics even though both are dimensionless, andR(420) = 0.016779783whilel(420) = 0.145023— adding them produces a number with no meaning.The ledger peaks at exactly month
N. Every stream opened in months 1 …N − G + 1ends at monthNwhenever it opened, soR(N)equals the sum ofD(s)over the whole term: 0.016779783 on the anchor cell. An implementation that ends streams atm + n_pay(m) - 1computed with an off-by-one gets this identity wrong by one month’s claims and nothing else visibly changes.高度障害 is not a second decrement. 生保標準生命表2018(死亡保険用)includes 高度障害 in its death rate R2 REG-R20, and the two annuities are mutually exclusive [S1 第3条] [S3 第3条] [S5] [S9]. Adding a 高度障害 incidence on top of the table double-counts the benefit.
There is no 更新 on this chassis. No retrieved document offers renewal and one states the absence in terms [S5] [S6] [S8]. Importing the chassis’s renewal repricing and
d(t)decline invents a decision, a premium ladder and a decrement the contract does not have; the term is 歳満了 only and the premium is level for allNmonths.Lapse pays nothing. No 解約返戻金 at any duration on the composite [S2] [S5] [S6] [S7] [S9] [S15], so
claims_lapseis identically zero. One carrier in the set does write a 低解約返戻金型 design at 70% of the ordinary value [S12] — and on that design, because 保険料払込期間 equals 保険期間, there is no 払込満了 step-up, so the cliff that characterises 低解約返戻金型 whole life has no analogue here. A model importing that cliff invents it.There is no 自動振替貸付. With no cash value there is no collateral, and one carrier states the absence in terms [S2]. The APL mechanic specified in the whole life technical notes (終身保険) must not be imported; the supervisory guideline in any case requires an APL, where one exists, to run at the policyholder’s election rather than automatically REG-R14.
A full commutation settles the claim; it does not alter the policy. Paying the whole present value extinguishes the contract [S1 第5条第2項] [S3 第6条第3項] [S12] [S14], so with the module on, the ledger must not open at all for that claim. A model that pays the lump sum and opens the stream doubles the benefit.
The リビング・ニーズ cap binds early here, not late. The payout is the present value of an income stream capped at ¥30,000,000 [S2] [S5] [S7], and on the anchor cell the full 年金現価 at issue is ¥56,352,381.90. The cap therefore bites from month 1 and stops biting only once the unpaid stream falls below it — the opposite pattern to a level sum assured, where a cap either always binds or never does.
Read the table at the right age, and only on the death basis. 契約年齢 is 満年齢 [S1 第37条] [S14] while 標準生命表2018 is built for 保険年齢 R2 REG-R20, so the base run reads early and understates; the optional shift must move
qup. And the 年金開始後用 table has no role on this product at all, because the composite’s stream is an annuity-certain [S13 別表1].