Skip to main content

future_value_annuity_solution

Function future_value_annuity_solution 

Source
pub fn future_value_annuity_solution<T, D>(
    rate: f64,
    periods: u32,
    cashflow: T,
    timing: D,
) -> FinanceResult<CashflowSolution>
where T: Into<f64> + Copy, D: Into<PaymentTiming>,
Expand description

Returns the future value of annuity (a series of constant cashflows) at a constant rate. Returns custom solution struct with additional information and functionality.

Related functions:

  • To calculate a future value returning an f64, use [present_value_annuity].
  • To calculate a future value with a varying rate or varying cashflow or both, use [present_value_annuity_schedule].

The future value annuity formula is:

future value ann = sum( cashflow * (1 + rate)period ) or future value ann = Constant_Cashflow * ((1+periodic_rate)^n -1) / periodic_rate

§Arguments

  • rate - The rate at which the investment grows or shrinks per period, expressed as a floating point number. For instance 0.05 would mean 5%. Often appears as r or i in formulas.
  • periods - The number of periods such as quarters or years. Often appears as n or t.
  • cashflow - The value of the constant cashflow (aka payment).
  • timing - PaymentTiming or bool (false = end of period).

§Errors

Same domain failures as [future_value_annuity].

§Examples

Future value of a $500 annuity at 3.4% for 10 years (ordinary):

use finance_solution::*;
let my_annuity = future_value_annuity_solution(
    0.034, 10, 500, PaymentTiming::EndOfPeriod
).unwrap();
assert!(my_annuity.future_value().abs() > 5_000.0);
assert!(!my_annuity.due_at_beginning());

Annuity due variant:

use finance_solution::*;
let due = future_value_annuity_solution(
    0.034, 10, 500, PaymentTiming::BeginningOfPeriod
).unwrap();
assert!(due.due_at_beginning());