General Accumulation Functions

The annuities supported by TmVal need not be limited to the main growth patterns supported by the Rate class. TmVal can also handle annuities governed by more complex growth patterns, such as polynomial growth.

Examples

Suppose we have a basic, 5-year term annuity-immediate governed by the following growth pattern:

a(t) = .05t^2 + .02t + .03

What is the present value of the annuity?

We can solve this problem by defining a function for the quadratic growth pattern and then passing it to the Accumulation class, which in turn is passed to the Annuity class:

In [1]: from tmval import Accumulation, Annuity

In [2]: def f(t):
   ...:     return .05 * t ** 2 + .02 * t + 1
   ...: 

In [3]: ann = Annuity(gr=Accumulation(gr=f), n=5)

In [4]: print(ann.pv())
3.36072951629534

What is the accumulated value?

In [5]: print(ann.sv())
7.897714363294049