Skip to contents

Financial Mathematics and Interest Rates

Accumulation, discounting, equivalent rates, equations of value, cash-flow valuation, and internal rates of return.

accumulation_factor()
Accumulation factor under conventional or time-varying interest
discount_factor()
Discount factor under conventional or time-varying interest
standardize_interest()
Standardize an interest rate to the annual effective rate i
interest_equivalents()
Equivalent interest rates in FM actuarial notation
present_value()
Present value of a single payment
future_value()
Future value of a single payment
pv_flow()
Present value of a general cash flow
fv_flow()
Future value of a general cash flow
solve_value()
Solve a scalar equation of value
irr_flow()
Internal rate of return for a cash flow
irr_flow_multi()
Multiple internal rates of return for a cash flow
plot_cash_flow()
Plot a cash-flow diagram

Annuities and Loans

Level and varying annuities, amortization schedules, and loan repayment.

a_angle()
Level annuity factor a-angle-n
s_angle()
Level annuity accumulation factor s-angle-n
annuity_arith()
Arithmetic annuity factor
annuity_geom()
Geometric annuity factor
amort_schedule()
Amortization schedule with optional prepayment adjustment
amort_schedule_general()
General amortization schedule with variable rates and payments
sinking_fund_schedule()
Sinking fund amortization schedule for a loan

Bonds, Duration, Convexity, and Immunization

Bond valuation, yield, book value, callable bonds, duration, convexity, portfolio measures, and immunization.

bond_cash_flows()
Cash flow structure of a level coupon bond
accrued_interest()
Accrued coupon interest and clean/dirty bond prices
bond_price()
Price of a level coupon bond from its yield
bond_ytm()
Yield to maturity of a level coupon bond
bond_book_value()
Book value of a level coupon bond at a coupon date
bond_callable_price()
Price of a callable bond at a target minimum yield
duration_cash_flow()
Duration of a general cash-flow stream
convexity_cash_flow()
Convexity of a general cash-flow stream
bond_duration()
Macaulay and modified duration of a level coupon bond under a flat yield
bond_convexity()
Discrete convexity of a level coupon bond under a flat yield
portfolio_duration()
Compute portfolio duration as a market-value-weighted average
portfolio_convexity()
Compute portfolio convexity as a market-value-weighted average
immunize_duration()
Duration-based immunization with multiple assets
immunize_duration_convexity()
Duration and convexity immunization with multiple assets
plot_immunization_gap()
Plot immunization performance under interest-rate shifts

Term Structure of Interest Rates

Spot discount factors, yield curves, and forward rates.

discount_factor_spot()
Spot discount factor
yield_curve()
Validate a yield curve and compute discount factors
forward_rate()
Compute an implied forward rate from a discrete spot curve
bootstrap_spot_curve()
Bootstrap a spot yield curve from instrument prices
forward_curve()
Construct a forward-rate curve from spot rates
par_rate()
Par coupon rate implied by a spot yield curve

Life Tables and Survival

Life-table construction, mortality laws, Kaplan-Meier estimation, survival probabilities, life expectancy, and commutation functions.

lifetable()
Build an annual life table (tidy tibble) from lx, qx, px, or mx
mortality_law_table()
Generate a tidy life table from a theoretical mortality law
km_lifetable()
Kaplan–Meier survival curve and a lifetable-style life table
plot_km()
Plot a Kaplan–Meier survival curve
t_px()
t-year survival probability from a life table
t_qx()
t-year death probability from a life table
t_Ex()
Pure endowment (discounted survival): \({}_tE_x\)
e_x()
Expected future lifetime from an annual life table
commutation_table()
Build an annual commutation table (discrete ages)

Single-Life Contingencies

Life annuities, life insurance, premiums, reserves, and contract workflows for a single life.

life_contract()
Create a life-contingency contract specification
add_insurance()
Add an insurance benefit specification to a life contract
add_premium_schedule()
Add a contingent premium-payment schedule to a life contract
annuity_x()
Actuarial present value of a life annuity
insurance_x()
Actuarial present value of a life insurance
insurance_variable_k()
Actuarial present value of a life insurance with variable k-thly benefits
apv_life_flow()
Actuarial present value of a payment stream under mortality
plot_contingent_cash_flow()
Plot discrete life-contingent cash flows
premium_x()
Net premium for single-life insurance by the equivalence principle
premium_gross()
Gross premium under a simple expense-loaded equivalence principle
reserve_x()
Benefit reserves for single-life insurance

Multiple-Life Contingencies

Joint-life, last-survivor, and multi-life survival and contingent values.

t_pxy()
Two-life survival probability for independent lives
e_xy()
Expected future lifetime for two independent lives
annuity_xy()
Actuarial present value of a two-life annuity
insurance_xy()
Actuarial present value of a two-life insurance
premium_xy()
Net premium for two-life insurance by the equivalence principle
reserve_xy()
Benefit reserves for two-life insurance
annuity_multi()
Actuarial present value of a multi-life annuity (up to 3 independent lives)

Multiple Decrements

Multiple-decrement tables, total-decrement life tables, cause-specific probabilities, and cause-specific insurance values.

md_table()
Multiple decrement table (annual, discrete ages)
lt_tau()
Total-decrement lifetable from a multiple decrement table: lt_tau
t_qxj()
t-year probability of decrement by cause j: t_qxj
insurance_xj() A_xj()
Cause-specific term/whole-life insurance APV under multiple decrements

Simulation and Actuarial Risk

Lifetime simulation, Monte Carlo valuation, loss distributions, reserves, multi-life simulation, and simulation summaries.

simulate_lifetime()
Simulate future lifetimes from a life table
simulate_lifetimes()
Simulate future lifetimes for multiple lives
simulate_annuity_x()
Monte Carlo simulation of a life annuity
simulate_insurance_x()
Monte Carlo simulation of a life insurance
mc_annuity()
Compute simulated present values for life annuities
mc_insurance()
Compute simulated present values for life insurance benefits
mc_premium()
Compute Monte Carlo net premiums for life contingencies
mc_reserve()
Compute Monte Carlo prospective reserves for life contingencies
mc_loss()
Compute Monte Carlo loss random variables for life contingencies
mc_multilife_status()
Compute multiple-life simulated status variables
summary_mc()
Summarise Monte Carlo simulation output

Collective Risk, Coverage, and Tail Measures

Frequency and severity models, insurance payments, aggregate losses, simulation, and risk measures.

frequency_spec()
Specify a claim frequency distribution
severity_spec()
Specify an individual claim severity distribution
empirical_frequency()
Specify an empirical claim frequency distribution
empirical_severity()
Specify an empirical claim severity distribution
distribution_moments()
Calculate moments of a frequency or severity distribution
collective_risk_spec()
Specify a collective risk model
coverage_spec()
Specify an insurance coverage contract
apply_coverage()
Apply an insurance contract to a loss severity specification
to_payment_basis()
Specify a change from per-loss to per-payment basis
discretize_severity()
Discretize a continuous claim severity distribution
distribution_convolution()
Specify a convolution of probability distributions
aggregate_moments()
Calculate moments of a collective aggregate loss
aggregate_distribution()
Compute the aggregate loss distribution
simulate_frequency()
Simulate claim counts from a frequency model
simulate_severity()
Simulate individual claim severities
simulate_aggregate()
Simulate a collective risk model
value_at_risk()
Value at Risk for actuarial losses
tail_value_at_risk()
Tail Value at Risk (Expected Shortfall)
stop_loss_premium()
Net stop-loss premium
print(<tidyact_aggregate_distribution>)
Print an aggregate loss distribution
print(<tidyact_collective_risk_spec>)
Print a collective risk model specification
print(<tidyact_convolution_spec>)
Print a convolution specification
print(<tidyact_frequency_spec>)
Print a frequency distribution specification
print(<tidyact_payment_spec>)
Print a payment severity specification
print(<tidyact_severity_spec>)
Print a severity distribution specification

Datasets

Reproducible datasets for financial and actuarial examples.

bonds_sample
Sample bond contracts for fixed-income examples
cash_flows_sample
Sample cash flows for interest theory examples
loans_sample
Sample loan contracts for amortization examples
mortality_colombia_tables
Colombian mortality tables
mortality_world_sample_2015_2023
World mortality sample panel, 2015–2023
mortality_world_sample_2023
World mortality sample, 2023
multiple_decrement_sample
Sample multiple decrement probabilities
soa08lt
SOA Illustrative Life Table