Cassandra: Software for analysing pension investment and guarantees

Welcome to cassandra, a computer program which can help you obtain an understanding about pension investment strategies, for defined contribution individual-account systems, with or without certain kinds of guarantees. We seek to obtain numerical estimates for:

  1. The replacement rate associated with an investment strategy,
  2. The ex-ante risk faced by the pension system participant, measured by the dispersion of the distribution of the replacement rate,
  3. The probability of being in poverty at retirement date
  4. The price of a few kinds of guarantees.

All four calculations are done on a grid, where two numbers are varied: the initial income of the pension system participant, and the fraction of pension assets in equity.

A key strength of cassandra is that it is easy to plug in seven numerical parameters for a country of interest to you, and get a full set of results - some tables and some pictures - for that country. The parameters that you need to establish about the country of interest are:

Parameter Units Explanation Example for India
1. Wage range Local currency units per day A grid of values for the initial wage, over which calculations are made A grid from Rs.10 to Rs.200 per day
2. Wage growth over the lifetime Percent per year in real terms Estimated rate of growth of wage - a constant percentage growth per year over the full labour market career, reflecting both the accumulation of experience of the person, and productivity growth in the country. 3%
3. Riskless real rate of return Percent per year Estimate for short-end of the yield curve for government bonds, expressed in real terms 2.5%
4. Equity premium Percentage points The difference in the estimated future return on equities, minus the estimated riskless rate. 7%
5. Standard deviation of equity index returns Percent per day Estimated volatility of the equity index 1.3 %/day
6. Price of annuity Local currency units Local currency units that will be paid by a 60-year old in order to get an annuity of 1 LCU per day until death. Rs.3,842
7. Poverty line Local currency units per day The consumption flow required to cross the poverty line Rs.46/day

How to go about it: The big picture

  1. Read my paper Pension guarantees in developing countries.
  2. Download the R software system for the computer that you have. R runs on most computers.
  3. Download my programs from this page.
  4. Edit the file cassandra.R and modify the values early in the file to reflect the country of interest to you.
  5. Run cassandra.R and it makes a file results.rda (this is an R binary data file). This takes a lot of time and a lot of RAM.
  6. Run pretty.R and it gives you pretty pictures and tables by analysing the results found in results.rda.

How to go about it: Detailed instructions

  1. Download these materials:
  2. There are two program files:

    cassandra.R : The program itself, which runs for a long time, and writes a file results.rda

    pretty.R : This eats results.rda and generates pictures and tables.

    In order to run, you have to edit a few constants in the early lines of cassandra.R to suit the country of interest to you. In order to learn more about what these parameters mean, and how you should deal with difficult situations, read my paper Pension guarantees in developing countries.

    A key parameter you have to set in cassandra.R is the number of simulations that are done for each valuation of a guarantee. Assuming you have setup N.simulations of 5,000, this requires roughly 2G of RAM and requires roughly 12 hours of compute time on an AMD Athlon 3200+. Do worry about how much RAM you have, when setting N.simulations - if you set it to 10,000 then 2G of RAM is not adequate (so I have never run it with 10,000).

    The instructions ahead are based on the free software package "R". R runs on all computers, so you can download it and have it on the computer in front of you. The instructions here involve running R programs on Unix. If you are using a non-Unix machine, then you need to find out how to feed a program to R on that machine.

    Since R is free software, and since my code on this page is free software, there is no impediment against anyone taking these ideas and obtaining results for a country of interest to him.

  3. Once your edited-up file cassandra.R is ready to roll, say

         $ R --vanilla < cassandra.R > cassandra.out

    Assuming this works correctly, a file results.rda is written.

  4. With results.rda in hand, you say:

         $ R --vanilla < pretty.R > pretty.out

    This reads results.rda and creates four pictures in the files :

    median_rr.pdf Median replacement rate
    rr_IQR.pdf Interquartile range of replacement rate
    pr_poverty.pdf Probability of poverty in old age
    price.pdf Price of the guarantee.

    In addition, inside pretty.out, there are some useful tables. The tables are given in two formats: plain text and as latex-formatted tables.

Ajay Shah,