## Tuesday, July 07, 2015

### What is the cost of one-rank-one-pension?

by Renuka Sane and Ajay Shah.

### The question

If we switch one person from a simple nominal annuity to one rank one pension', how much more expensive does the pension become?

### Backdrop of India's pension reform

The traditional civil servants pension in India has proved to be very expensive. Bhardwaj and Dave (2006) estimated that the implicit pension debt on account of current civil servants alone, was already 64.5% of GDP. If one were to add new recruits to civil services, and military personnel, this would be even higher. Pension payments were growing sharply. In December 2002, the NDA government made a decision to move new recruits into an individual account defined contribution program, the National Pension System (NPS) [link, link].

The reform was never carried over into defence even though that was long expected to be done the moment NPS had stabilised. As a consequence, we now run two parallel worlds: uniformed defence personnel are on the traditional civil servants pension while others have shifted out to the NPS if they were recruited after 1/1/2004.

The present debate concerns one-rank-one-pension (OROP). In order to understand the fiscal implications of OROP, we must calculate what it costs to produce such a pension.

### Calculations about one rank one pension

A pension, which is a stream of payments while the recipient is alive, is an "annuity". There are three kinds of annuities: nominal annuity, inflation indexed annuity i.e. where the annuity value is linked to inflation, and wage indexed annuity, where the annuity value is linked to wage growth. The third is the costliest and is also generally not produced by private insurance companies worldwide. In the extreme, OROP is tantamount to wage indexation i.e. the value of the pension is linked to the wage growth. Hence, in order to price a pension, we have to price the annuity embedded in it.

The full information base required to make these calculations correctly can only be accessed through the government. In the calculations shown here, we make suitable assumptions and proceed. At every step, we have complete transparency about assumptions and computer programs. The gentle reader is requested to actually run the code, and experiment with modified assumptions. The program is written in the free statistics software system, R.

### How to price a pension?

Suppose we promise 100 people (all at age 60) that we will pay them Rs.1 per day for the rest of their lives. What is the cost of such a promise today? This depends on two things: the discount rate, and the number of people of this cohort who survive every year. Lets say that the last surviving member lives upto 100 years. This implies a horizon of calculation of 40 years. So in year 1, Rs.1 per day is paid to 100 people. In year two, if 2 people die, this is paid to 98 people and so on.

### An approximate survivor function

The rate at which people die away is called the survivor function'. Our first job is to obtain a survivor function for India and to look at its graph. We use the male mortality rate (as of 2015) from the 2010 the UN Population Projections for India and convert this into the survivor function:

# Convert conditional death probabilities into the survivor function.
calculate.survivorfn <- function(age){
cooked <- rep(NA, 101)
cooked[age+1] <- 100
for(i in (age+2):100) {
cooked[i] <- cooked[i-1] - a$qxm[i]*cooked[i-1] } return(cooked) } # Work out two survivor functions, starting at age 60 and starting at age 35 -- a <- read.csv("http://www.mayin.org/ajayshah/lfs/india_male_mortality2015.csv", sep=",") a$cooked.60 <- calculate.survivorfn(60)
a$cooked.35 <- calculate.survivorfn(35) # Draw a graph with the two survivor functions -- par(mai=c(.8,.8,.2,.2)) plot(35:100,a$cooked.35[36:101], type="l", lwd=2,col="blue", xlab="Age",ylab="Survivors")
lines(60:100,a$cooked.60[61:101], type="l", lwd=2,col="red", xlab="Age", ylab="Survivors") legend(x="bottomleft",lwd=2,col=c("blue","red"), bty="n", cex=.75, legend=c("Starting at age 35","Starting at age 60"))  This shows that as the age of the cohort increases, the number of people surviving decreases. Of the 100 people who start out at age 60, by age 75, roughly half are still alive. The data used here to calculate the survival function is the mortality rate of the general population. Survival is likely to be better for those with higher income and better access to health care, as is the case with employees of the government. Hence, our use of this survivor function makes annuities appear cheaper than they are in the context of government pensions. ### Pricing the annuity using this survivor function Once we have the survivor function, we work out the NPV of the annuity. Lets say we are paying Rs.1 per day or Rs.365 per year to this cohort, and that the discount rate is 7%. What is the cost of this promise? # Make the NPV of an annuity p, where people die off based on the # survivor function S, when the interest rate is r, l is the number of # years the pension has to be paid. value.of.pension <- function(p, S, r, l=0) { (1/r)^(1:l) %*% (p * S) } # As an example: Price an annuity of Rs.1 per day at age 60: value.of.pension(rep(365,40), a$cooked.60[61:100]/100, 1.07,l=40)


Why has the interest rate of 7% been chosen, for the next 40 years? Here is a long answer. The short answer: Because India now has an inflation target of 4%, and assuming this works, the real return on government bonds may work out to roughly 3 per cent.

The code above yields an answer of Rs.3,163.22. This is a little lower than the price charged by LIC for this annuity, of Rs.3,800. That is to be expected, as our survivor function is of the general population, and not of the annuitant population. Also, our calculations do not take into account the administrative costs of providing the annuity.

This gives us the price of a nominal annuity. Now let's make things more difficult, by introducing inflation indexation and wage indexation.

### Pricing inflation indexed and wage indexed annuities

In order to do this, we have to make assumptions about inflation and wage growth.

India now has an inflation target of 4%. This suggests three scenarios for inflation: 3%, 4% and 5%.

We also need to make a range of assumptions for wage growth. We propose three scenarios at 7%, 8% and 9% wage growth. At the baseline scenario of 4% inflation, these correspond to 3%, 4% and 5% real wage growth.

# Do scenarios based on inflation and wage growth --
inflation <- c(0.03, 0.04, 0.05)
wagegrowth <- c(0.07, 0.08,0.09)

# A function to make the stream of pension payments. l is the number
# of years these have to be paid, and index is either the inflation or
# wage index.
make.pension.mat <- function(l, index){
p1 <- matrix(NA, l, 3)
p1[1,] <- 365
for(i in 2:l){
p1[i,1] <- p1[i-1,1] + index[1]*p1[i-1,1]
p1[i,2] <- p1[i-1,2] + index[2]*p1[i-1,2]
p1[i,3] <- p1[i-1,3] + index[3]*p1[i-1,3]
}
return(p1)
}

# Now do lots of cases.
# Price indexation
p1 <- make.pension.mat(40, inflation)
value.of.pension(p1, a$cooked.60[61:100]/100, 1.07,l=40) # Wage indexation p1 <- make.pension.mat(40, wagegrowth) value.of.pension(p1, a$cooked.60[61:100]/100, 1.07,l=40)


This gives us the following annuity prices (in Rs.):

• Inflation at 3% - 3940.37
• Inflation at 4% - 4269.79
• Inflation at 5% - 4644.56
• Wage growth at 7% - 5563.41
• Wage growth at 8% - 6128.46
• Wage growth at 9% - 6781.57

### How does all this change when retirement is at 35?

The retirement age of the military is different from that of civil services. Approximately 80% of the military retires between the age of 35-40, 18-19% retires between the ages of 54 and 60. Only about 1% retire at the age of 60. This implies that expenditure on pensions will be incurred for a lot longer than if the workforce retired at 60. We estimate the cost of a pension for a person retiring at age 35. As before, we first estimate the survival function, and then the cost of the pension under a price and wage indexed annuity.

# Retirement at 35
value.of.pension(rep(365,65), a$cooked.35[36:100]/100, 1.07,l=65) # Price indexation p1 <- make.pension.mat(65, inflation) value.of.pension(p1, a$cooked.35[36:100]/100, 1.07,l=65)
# Wage indexation
p1 <- make.pension.mat(65, wagegrowth)