Computes prospective or recursive terminal reserves for joint-life and last-survivor insurance. For k-thly premiums, `P` is the annualized premium and each installment equals `P / k`.
Usage
reserve_xy(
lt,
x = NULL,
y = NULL,
i = NULL,
i_type = "effective",
m = 1L,
type = c("whole", "term", "endowment", "pure_endowment"),
status = c("joint", "last"),
n = Inf,
h = 0L,
benefit = 1,
P = NULL,
n_prem = NULL,
k = 1L,
timing = c("due", "immediate"),
premium_start = c("issue", "deferred"),
frac = c("UDD", "CF", "CML", "Balducci"),
woolhouse = c("none", "first", "second"),
t = NULL,
method = c("prospective", "recursive"),
output = c("summary", "value", "audit", "table"),
tidy = NULL,
check = TRUE,
tol = 1e-10,
...
)Arguments
- lt
One life table, `list(lt_x, lt_y)`, or a two-life [life_contract()] object.
- x, y
Integer ages at issue. Optional for a life contract.
- i
Annual interest-rate input. Optional for a life contract.
- i_type
Interest-rate type.
- m
Conversion frequency for nominal rates.
- type
One of `"whole"`, `"term"`, `"endowment"`, or `"pure_endowment"`.
- status
`"joint"` or `"last"`.
- n
Insurance term in years after deferment.
- h
Nonnegative integer deferment in years.
- benefit
Positive benefit amount.
- P
Optional annualized premium. If `NULL`, [premium_xy()] is used.
- n_prem
Premium-paying term. Fractional values require `n_prem * k` to be an integer.
- k
Number of premium payments per year.
- timing
`"due"` or `"immediate"`.
`"issue"` or `"deferred"`.
- frac
Fractional-age assumption.
- woolhouse
`"none"`, `"first"`, or `"second"`.
- t
Integer policy durations.
- method
`"prospective"` or `"recursive"`. Recursion currently requires `h = 0`, `k = 1`, due premiums, and premiums starting at issue.
- output
`"summary"`, `"value"`, or `"audit"`. `"table"` is a compatibility alias for `"summary"`.
- tidy
Deprecated logical output selector.
- check
Logical input-check switch.
- tol
Numeric tolerance.
- ...
Deprecated argument aliases.
Details
The prospective reserve is $${}_tV = \operatorname{APV}_t(\text{future benefits}) - P^{(k)}\operatorname{APV}_t(\text{future premium annuity}).$$ Because [annuity_xy()] assigns amount `1 / k` to each payment, `P` is annualized and the actual installment is `P / k`.
Reserves are measured immediately before a premium payable at duration `t`. With immediate premiums this includes the installment scheduled exactly at `t`, including a last installment at maturity. Future installments use the selected annuity method; the current installment is an exact `P / k`. Pure endowments use direct discounted survival to maturity, avoiding a subtraction of nearly equal insurance values. Both lives are assumed alive at the valuation duration, under independent mortality. In particular, `status = "last"` selects the insured event; it does not condition on an unspecified surviving life. Last-survivor recursion tracks the both-alive and each single-survivor state separately. Both recursive statuses use backward conditional transition identities, direct annual `lx` decrements and the original log interest basis. This avoids forward cancellation and loss from an effective-rate conversion. Unreachable transitions contribute exactly zero. The recursion's existing timing and deferment restrictions are retained. Conditional states whose reserves themselves overflow double precision are not generally recoverable.
See also
[premium_xy()], [annuity_xy()], [insurance_xy()], [reserve_x()]
Other life-contingencies:
add_insurance(),
add_premium_schedule(),
annuity_multi(),
annuity_x(),
annuity_xy(),
insurance_variable_k(),
insurance_x(),
insurance_xy(),
life_contract(),
premium_gross(),
premium_x(),
premium_xy(),
reserve_x(),
simulate_annuity_x(),
simulate_insurance_x()