qfinbox.tvm.annuities
Annuity calculations.
Functions
|
Calculate future value of annuity due. |
|
Calculate present value of annuity due. |
|
Calculate future value of annuity (ordinary or due). |
|
Calculate present value of annuity (ordinary or due). |
|
Calculate present value of a growing annuity. |
|
Calculate future value of ordinary annuity. |
|
Calculate present value of ordinary annuity. |
|
Calculate present value of a perpetuity. |
|
Validate that a value is positive. |
- qfinbox.tvm.annuities.ordinary_annuity_pv(payment: float, rate: float, periods: int) float[source]
Calculate present value of ordinary annuity.
- Parameters:
- Returns:
Present value of ordinary annuity.
- Return type:
Examples
>>> ordinary_annuity_pv(1000, 0.05, 10) 7721.73
- qfinbox.tvm.annuities.ordinary_annuity_fv(payment: float, rate: float, periods: int) float[source]
Calculate future value of ordinary annuity.
- Parameters:
- Returns:
Future value of ordinary annuity.
- Return type:
Examples
>>> ordinary_annuity_fv(1000, 0.05, 10) 12577.89
- qfinbox.tvm.annuities.annuity_due_pv(payment: float, rate: float, periods: int) float[source]
Calculate present value of annuity due.
- Parameters:
- Returns:
Present value of annuity due.
- Return type:
Examples
>>> annuity_due_pv(1000, 0.05, 10) 8107.82
- qfinbox.tvm.annuities.annuity_due_fv(payment: float, rate: float, periods: int) float[source]
Calculate future value of annuity due.
- Parameters:
- Returns:
Future value of annuity due.
- Return type:
Examples
>>> annuity_due_fv(1000, 0.05, 10) 13206.79
- qfinbox.tvm.annuities.annuity_pv(payment: float, rate: float, periods: int, due: bool = False) float[source]
Calculate present value of annuity (ordinary or due).
- qfinbox.tvm.annuities.annuity_fv(payment: float, rate: float, periods: int, due: bool = False) float[source]
Calculate future value of annuity (ordinary or due).
- qfinbox.tvm.annuities.perpetuity_value(payment: float, rate: float) float[source]
Calculate present value of a perpetuity.
A perpetuity is a stream of equal payments that continues forever.
- Parameters:
- Returns:
Present value of perpetuity.
- Return type:
- Raises:
ValidationError – If any parameter is invalid.
Examples
>>> perpetuity_value(50000, 0.04) 1250000.0
Notes
The formula for a perpetuity is simply: PV = Payment / Rate
- qfinbox.tvm.annuities.growing_annuity_pv(payment: float, rate: float, growth_rate: float, periods: int) float[source]
Calculate present value of a growing annuity.
A growing annuity has payments that grow at a constant rate each period.
- Parameters:
- Returns:
Present value of growing annuity.
- Return type:
- Raises:
ValidationError – If any parameter is invalid.
Examples
>>> growing_annuity_pv(2, 0.09, 0.05, 20) 24.36
Notes
If rate equals growth_rate, the formula becomes: PV = PMT * n / (1 + r) Otherwise: PV = PMT * [(1 - ((1 + g) / (1 + r))^n) / (r - g)]