Thursday, August 30, 2007

Calculating a Graduated Annuity

(Use the calculator to skip the math below.)

Calculating the future value of a savings program with fixed savings installments and a fixed interest rate (a simple annuity) is fairly straightforward with a geometric series:

T_1 = p ; T_2 = pr + p ; T_3 = pr^2 + pr + p ; T_n = pr^{n-1} + pr^{n-2} + pr^{n-3} + \dots + pr^2 + pr + p

To calculate the value after n periods, we multiply the last equation by r and subtract the result:

rT_n = pr^n + pr^{n-1} + pr^{n-2} + \dots + pr^3 + pr^2 + pr ; (r-1)T_n = pr^n - p ; T_n = p{r^n-1\over r-1}

So, saving $1,000/year for 10 years at 5% interest would give:

T_{10} = \$1,000{1.05^{10}-1\over 1.05-1} = \$12,577.89

And if we had the goal of saving $100,000 over 30 years with a 8%
interest rate, we could calculate the yearly deposit required:

p = T_n{r-1\over r^n-1} = \$100,000{1.08-1\over 1.08^{30}-1} = \$882.74

Now, since the real value of the periodic deposit degrades over time due to inflation, and since one's ability to save will hopefully increase over time due to increased income through cost-of-living increases and promotions, a real-life long-term savings plan will likely include deposits that increase over time (a graduated annuity). These, too, can be represented with a series:

T_1 = p ; T_2 = pr + pa ; T_3 & = pr^2 + par + pa^2 ; T_4 = pr^3 + par^2 + pa^2r + pa^3 ; T_n & = pr^{n-1} + par^{n-2} + pa^2r^{n-3} + \dots + pa^{n-3}r^2 + pa^{n-2}r + pa^{n-1}

where a is the geometric ratio describing the rate of increase (the graduation) of the deposits. This series is similar in form to the binomial series, except that the coefficients in this series are all the same. To solve for the sum, we multiply by a/r and subtract:

{a\over r}T_n = par^{n-2} + pa^2r^{n-2} + \dots + pa^{n-1} + p{a^n\over r} ; (1-{a\over r})T_n = p(r^{n-1} - {a^n\over r}) ; {r-a\over r}T_n = p{r^n-a^n\over r} ; T_n = p{r^n - a^n \over r-a}

Notice how this simplifies to the result for constant deposits, when a=1.

This equation can be rearranged to the elegant form:

{T_n\over p}r - r^n = {T_n\over p}a - a^n, r \ne a

When asked to solve for either rate, Mathematica complained that this equation involves variables in "an essentially non-algebraic way," which I found a bit odd. Nevertheless, to determine the interest rate necessary to achieve a given sum with a set rate of deposit graduation (or vice versa), one can evaluate one side of the equation, move the resulting constant to the other side, and calculate the positive real roots of the n-th degree polynomial.

In any case, after 10 years, a savings program that begins at $1,000/year
and increases by 4% each year with 8% interest would give:

T_{10} =  \$1,000{1.08^{10}-1.04^{10}\over 1.08-1.04} = \$16,967.02

This equation is also useful for determining savings left after a series of increasing withdraws. If one starts with $500,000 in retirement savings invested at 5%, taking a 2% inflation-adjusted $30,000 annuity for 5 years would leave:

T_n = Ar^n - p{r^n - a^n \over r-a} = \$500,000\cdot1.05^5 - \$30,000{1.05^5-1.02^5\over1.05-1.02} = \$465,940.02

One can rearrange the formula to achieve a somewhat unwieldy but functional equation for the number of years before the retirement savings will run out:

0 = Ar^n-p{r^n-a^n\over r-a} ; {A(r-a)\over p}r^n = r^n - a^n ; a^n = [1-{A(r-a)\over p}]r^n ; n\log a = n\log r + \log[1-{A(r-a)\over p}] ; n(\log a - \log r) = \log[1-{A(r-a)\over p}] ; n = \log[1-{A(r-a)\over p}] \div \log {a\over r}

So, to find out how long the $500,000 investment from the previous example will last:

n = \log[1-{\$500,000(1.05-1.02)\over\$30,000}] \div \log{1.02\over1.05} = 23.9 years

All of these calculations assume that payments occur at the end of the year (an ordinary annuity). The calculations for payments at the beginning of the year (an annuity due) are equally straightforward, and yield:

T_n = pr{r^n-a^n\over r-a}


Annuity Rates said...

Great attempt!!! Very nice blog providing good entertainment mathemetical stuff as well as various facilities.

Anonymous said...
This comment has been removed by a blog administrator.