Pricing Mortality Swaps using R - Part 1

This series discusses a novel approach to modelling mortality swaps: an esoteric derivative insuring against the risk of life-contingent assets like annuities and life insurance policies.

Before I begin: As my formal training is in Theoretical Physics and Quantitative Finance rather than Actuarial Science, in this particular modelling work I sometimes I feel a bit like the guy in the following XKCD comic strip. I think the fundamental approach of this modelling is a reasonable one, but if you if you spot any subtle flaws in this article, please correct me. I was never fond of blissful ignorance.

XKCD Physicists


What is a Mortality Swap?

North America has quite a vibrant secondary-market for various financial instruments that would usually be associated with the life insurance industry. For example, the life settlement business involves a third-party purchasing a life insurance policy from the policy holder for an agreed-upon sum. At that point, the purchaser takes over the premium payments and receives the death payment upon the death of the original holder.

Another well-established line of business involves the purchasing of annuities from people for a lump sum, at which point the purchaser receives some or all of future annuity payments. At that point, the new owner of the annuity holds the mortality risk that the original annuitant dies.

Companies can mitigate this risk by constructing portfolios of such annuities, similar to how a money manager buys a broad basket of stocks, bonds or currencies to help diversify the risk.

Doing this sensibly involves underwriting the health-risk of the annuitant, and you also want to ensure that none of the annuities in the portfolio are very large compared to the total value of the portfolio: having a portfolio of 200 annuities with a Net Asset Value (NAV) of 10MM USD is not very diversified if one of those annuities has an NAV of 4MM USD. That is a lot of risk focused on the on-going health and life of a single individual.

With all of this in place, such a portfolio will start to carry a significant amount of mortality risk - as there is always the chance that some of the original annuitants will die early. However there is also the risk that the underwriting was flawed, and that the basic mortality assumptions for life expectancy - a key part of pricing such annuities - proves to be incorrect.

A mortality swap is an instrument that insures against such risks by guaranteeing the payments of these annuities. The seller thereby takes on all the mortality risk, but will require the upfront payment of a premium to do so.

The obvious question is then: how much premium should you charge to take on this risk? How do you price such an instrument?


Basic Approach

Where to begin? When first thinking about ways to tackle this problem, I quickly realised I should first learn the basics of pricing life insurance, as that is probably closely related.

Also, the fact that the instrument was referred to as a swap immediately got me thinking about interest-rate swaps which I will get into a little later as I used a key idea from that.

Finally, I have a bias towards simulation as a general technique. I almost always develop intuition on a new topic via simulation whenever possible, and is often a natural fit when dealing with probabilistic problems.

So, my idea is that I will somehow simulate the consequences of this swap, use the simulation outputs to produce a distribution of total liabilities, and then average this to calculate a 'fair value' for the swap.1


Pricing Life Insurance

Before I can do any of this, we first need to discuss the pricing of life insurance, as this is likely to give us some key ideas for developing a pricing methodology for the swap.

Life insurance in its current form has been around since the early-18th century. Many different variants exist today, but in its basic form the policy owner pays a fixed amount of money - the premium - for a fixed amount of time, say 20 years. Should the holder die within this insured period, a fixed sum - the sum insured - is paid. If the holder survives past the end of the policy term, no payment is due.

The problem thus reduces to how much premium to charge for a given individual and the desired sum insured.

Since payment occurs at different points in time, and the sum insured, if paid, will occur in the future, we need to discuss the concept of the time value of money.

Money today can be put on deposit and earn interest. Thus, the value of 100 USD today is different to the value of 100 USD 3 years from now. If interest rates are 5% per annum2, 100 USD today is worth \(100 * 1.05^{3} = 115.76\) USD in 3 year's time. Conversely, 100 USD in 3 year's time is worth \(\frac{100}{1.05^{3}} = 86.38\) USD today.

So, if we want to properly combine future cashflows, we need to compound or discount them to a common point in time, and the standard way to do this is to discount future cashflows back to today. We also assume continuous compounding, so that for a given interest rate \(r\), a payment of amount \(A\) at time \(t\) in the future has a present value \(PV\):

$$ PV = A e^{-rt} $$

So, by discounting the expected value of the future premium payments back to today, along with the expected present value of the sum insured, we can equate the two to calculate the fair value of the premium to be paid. Anything above this will be profit to the insurer, so this is the absolute minimum you would expect to be charged.3

Life Tables

Future payments of premium and payment of the sum insured are contingent on the insured person being alive, so we need to know some life expectancy data. In the actuarial profession, this data is collected into a life table. Most countries produce their own life expectancy data, so we will use some data from the US Government's Center for Disease Control's National Vital Statistics Reports.

Here's a snippet the data from United States Life Tables 2010 entry:

   Age        q(x)     l(x)     d(x)    L(x)    T(x)    e(x)
 1 0-1 0.006122943 100000.0 612.2943 99465.5 7866026 78.6603
 2 1-2 0.000428382  99387.7  42.5759 99366.4 7766561 78.1441
 3 2-3 0.000274978  99345.1  27.3177 99331.5 7667194 77.1774
 4 3-4 0.000210585  99317.8  20.9148 99307.3 7567864 76.1985
 5 4-5 0.000157760  99296.9  15.6650 99289.1 7468556 75.2144
 6 5-6 0.000145108  99281.2  14.4065 99274.0 7369267 74.2262

The first column is the age-bracket for the data, and the most interesting columns we care about are the \(q(x)\) and \(l(x)\) values.

\(q(x)\) is known as the curtate mortality from time \(x-1\) to time \(x\), that is, the probability of the person dying between time \(x-1\) and time \(x\) given that the person is alive at time \(x-1\). Note the indexing can appear counter-intuitive, but is the standard.

\(l(x)\) is the expected number of individuals still alive at time \(x\), assuming there are \(l(0)\) individuals alive at the start - this number is termed the radix of the life table - for these tables the radix is 100,000.

Thus, \(q(x) = 1 - \frac{l(x+1)}{l(x)}\) which can be easily verified using the above numbers.

A Worked Example

Using all of the above data, let's calculate the annual premium of 20 year term-limited policy for a 30-year old in average health with a sum insured of 100,000 USD.

For a 20-year policy, we have 20 payments of \(A\), paid at times \(t = 0, 1, ..., 19\). At time \(T\), the probability of that payment being made is the same as the probability of the holder being alive, which is:

$$\prod^T_{t=0} \left(1 - q(30 + t)\right)$$

So the actuarial present value (APV) of the payment at time \(T\) is:

$$ A e^{-rT} \prod^T_{t=0} (1 - q(30 + t)) $$

Thus, total of the payments is:

$$ LHS = \sum^{19}_{t=0} A e^{-rt} \left( \prod^{t-1}_{k=0} (1 - q(30 + k)) \right)$$

On the sum insured side, we need to calculate its expected value: each year it will be the sum insured times the probability of that the policy holder dies that year. So we need to calculate the probability the person survived to that year, but then dies. The probability of this occurring in year \(t\) is

$$ q(t) \prod^{t-1}_{k=0} (1 - q(30 + k)) $$

(Note that if \(t = 1\) we are assuming the product term is just 1)

The total expected value will then be the sum of all the yearly expected values.

$$ RHS = \sum^{20}_{t=1} 100000 \, e^{-rt} q(t) \left( \prod^{t-1}_{k=1} (1 - q(30 + k)) \right) $$

So, equating the two, we get the following equation for \(A\):

$$ A \sum^{19}_{t=0} e^{-rt} \left( \prod^t_{k=0} (1 - q(30 + k)) \right) = \sum^{20}_{t=1} 100000 \, e^{-rt} q(t) \left( \prod^{t-1}_{k=1} (1 - q(30 + k)) \right)$$

More generally, for a policy holder aged Y years and a policy duration \(N\) years with a sum insured of \(L\), we get the equation:

$$ A \sum^{N-1}_{t=0} e^{-rt} \left( \prod^{t}_{k=0} (1 - q(Y + k)) \right)= \sum^{N}_{t=1} L e^{-rt} q(t) \left( \prod^{t-1}_{k=1} (1 - q(Y + k)) \right)$$

Putting all this into an R function:

price.term.assurance <- function(q, L = 100000, r = 0.05, P = 0) {  
    N <- length(q);
    c <- cumprod(1 - q);
    c <- c(1, c[1:(N - 1)]);

    LHS <- sum(c * exp(-r * 0:(N-1)));

    RHS <- P + sum(L * q * cumprod(1 - q) * exp(-r * 1:N));

    return(RHS / LHS);
}

Thus, assuming we know the curtate mortalities for a 30-year old in vector \(q\), we can price the assurance, giving us a price of 161.67 USD / year.

So, for pricing a mortality swap, we will definitely need those \(q(x)\) probabilities to proceed.


Interest-Rate Swaps

An interest rate swap is a financial instrument that allows two financial institutions or individuals to 'swap' two interest payment streams, typically one being fixed-rate and the other being floating-rate, and on the same nominal amount. Thus, one of the counter-parties is swapping its fixed-rate payment for a floating-rate payment and vice-versa for the other counter-party.

This is achieved by each paying or receiving the cashflows of the counter-party.

Much more information (including a few illustrative graphics) is available on wikipedia:https://en.wikipedia.org/wiki/Interest_rate_swap.


Getting Started

Now that we have set up the basic concepts, we are almost ready to start working on pricing the swap. We will need to make some simplifying assumptions but we will get into those details in the next article.

The basic idea is simple: we will use Monte Carlo simulation to simulate the cashflows from the portfolio of annuities. We will compare those cashflows to those that are guaranteed by the mortality swap. The difference between the two cashflows is the net gain or loss induced by the guarantee.

Repeating this process for \(N\) iterations will give us an approximation of the distribution of net cashflows, which we can then use to price the guarantee, and hence the swap.

Whilst a fairly straightforward approach, we still end up with quite an interesting problem, and will motivate a discussion on the pricing of tail risk.



  1. As a spoiler for later developments, this thinking proved flawed, but spotting the flaw leads to interesting consequences.

  2. At the time of writing, interest rates are negative or zero - causing all sorts of problems with financial modelling.

  3. More realistically, the insurance company will also need to recoup costs involved in setting up the policy, such as broker fees, administration and regulatory costs, medical and underwriting costs, not too mention a profit margin, so the minimum premium charged to the customer will certainly be higher.

Cover image by Eureka Life Insurance Company Inc. via Wikimedia Commons

Mick Cooney

Mick is highly experienced in probabilistic programming, high performance computing and financial modelling for derivatives analysis and volatility trading.