Skip to content

FV function

Overview

FV (Future Value) is a function of the Financial category that can be used to predict the future value of an investment or asset based on its present value.

FV can be used to calculate future value over a specified number of compounding periods. A fixed interest rate or yield is assumed over all periods, and a fixed payment or deposit can be applied at the start or end of every period.

If your interest rate varies between periods, use the FVSCHEDULE function instead of FV.

Usage

Syntax

FV(rate, nper, pmt, pv=0, type=false) => fv

Argument descriptions

  • rate. (number) The fixed percentage interest rate or yield per period.
  • nper. (number) The number of compounding periods to be taken into account. While this will often be an integer, non-integer values are accepted and processed. It stands for number of periods.
  • pmt. (number) The fixed amount paid or deposited each compounding period. Short for payment
  • pv (number, optional). The present value or starting amount of the asset (default 0). Short for present value.
  • type (boolean, optional). A logical value indicating whether the payment due dates are at the end (0) of the compounding periods or at the beginning (any non-zero value). The default is 0 when omitted.

Returned value

The retruned value is a number with currency units

Errors

  • If any of the arguments is an error returns the error
  • If any of the argumets is not a number (or cannot be converted to a number) it returns #VALUE!
  • Some ranges of the parameters produce #NUM! error. For instnace =FV(-3,1/2,1).
  • Some ranges of the parameters produce the #DIV/0! error. For instance =FV(-1, -1, 1)

Additional guidance

  • Make sure that the rate argument specifies the interest rate or yield applicable to the compounding period, based on the value chosen for nper.
  • The pmt and pv arguments should be expressed in the same currency unit. The value returned is expressed in the same currency unit.
  • To ensure a worthwhile result, one of the pmt and pv arguments should be non-zero.
  • The setting of the type argument only affects the calculation for non-zero values of the pmt argument.
  • For information about the different types of errors that you may encounter when using IronCalc functions, visit our Error Types page.

Details

  • If type0, fv is given by the equation:
fv=pv×(1+rate)nperpmt×((1+rate)nper1)×(1+rate)rate
  • If type=0
fv=pv×(1+rate)nperpmt×((1+rate)nper1)rate
  • In both cases, in the limmit rate=0, fv is given by the equation:
fv=pv(pmt×nper)

Formula derivation

The money you have now might grow in a bank by compound interest. Say you have $100, that is the present value, and your bank gives you 10% interest rate yearly.

At the end of 1 year you will have $110. In general that is pv×(1+rate). At the end of two years (the second annuity) you will have 10% more of the $110. That is the compound part. You will have at the end of the second period $121 or in general if you invest an ammount pv at an interest rate and wait for nper periods the future value of this lump sum will be:

fvls=pv×(1+rate)nper

Note that the periods may be years, months or anything else.

Now, supose that you also make regular payments of ammount pmt each period. To find the future value of these payments, you sum the future value of each payment at the end of the investment horizon.

There are two posibilities here:

  • You make the payments at the end of the periods (type 0). This is also called an ordinary annuity.
  • You make the payments at the beginning of each period (type 1). This is the annuity due case.

To derive the formula for either of them we need to add an geometric progression. To simplify things. Say we are at the end of period 5 and we are making the payments at the end of the period.

pmt×(1+rate)4+pmt×(1+rate)3+pmt×(1+rate)2+pmt

This is because the first payment has been around for 4 periods, and the second payment has been around for 3 periods... The general formula for the sum of nper terms in a geometric progression is given by a(1rn)/(1r), where a=pmt and r=1+rate

pmt×(1+rate)nper1rate

Examples

See this example in IronCalc.