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:
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 |
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.
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.
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.
ajayshah@mayin.org