Files
IronCalc/docs/src/functions/financial/pv.md
2024-12-29 13:28:56 +01:00

5.0 KiB

layout, outline, lang
layout outline lang
doc deep en-US

PV function

::: warning Note: This draft page is under construction 🚧 :::

Overview

PV (Present Value) is a function of the Financial category that can be used to calculate the present value of a series of future cash flows.

PV can be used to calculate present 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.

Usage

Syntax

PV(rate, nper, pmt, fv=0, type=FALSE) => pv

Argument descriptions

  • rate (number, required). The fixed percentage interest rate or yield per period.
  • nper (number, required). "nper" stands for number of periods, in this case the number of compounding periods to be taken into account. While this will often be an integer, non-integer values are accepted and processed.
  • pmt (number, required). "pmt" stands for payment, in this case the fixed amount paid or deposited each compounding period.
  • fv (number, optional). "fv" is the future value at the end of the final compounding period (default 0).
  • type (Boolean, optional). A logical value indicating whether the payment due dates are at the end (FALSE or 0) of the compounding periods or at the beginning (TRUE or any non-zero value). The default is FALSE when omitted.

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 fv arguments should be expressed in the same currency unit.
  • To ensure a worthwhile result, one of the pmt and fv arguments should be non-zero.
  • The setting of the type argument only affects the calculation for non-zero values of the pmt argument.

Returned value

PV returns a number representing the present value expressed in the same currency unit that was used for the pmt and fv arguments.

Error conditions

  • In common with many other IronCalc functions, PV propagates errors that are found in any of its arguments.
  • If too few or too many arguments are supplied, PV returns the #ERROR! error.
  • If the value of any of the rate, nper, pmt or fv arguments is not (or cannot be converted to) a number, then PV returns the #VALUE! error.
  • If the value of the type argument is not (or cannot be converted to) a Boolean, then PV again returns the #VALUE! error.
  • For some combinations of valid argument values, PV may return a #NUM! error or a #DIV/0! error. In paticular, PV always returns a #DIV/0! error if the value of the rate argument is set to -1.

Details

  • If \text{type} \neq 0, \text{pv} is given by the equation: $$ \text{pv} = - \Biggl(\dfrac{(\text{fv} \times \text{rate}) + \bigl(\text{pmt} \times (1+\text{rate})\times \bigl({(1+\text{rate})^{\text{nper}}-1\bigr)\bigr)}}{\text{rate} \times (1+\text{rate})^{\text{nper}}}\Biggl)


* If $\text{type} = 0$, $\text{pv}$ is given by the equation:
$$ \text{pv} = - \Biggl(\dfrac{(\text{fv} \times \text{rate}) + \bigl(\text{pmt}\times \bigl({(1+\text{rate})^{\text{nper}}-1\bigr)\bigr)}}{\text{rate} \times (1+\text{rate})^\text{{nper}}}\Biggl)
  • For any \text{type}, in the special case of \text{rate} = 0, \text{pv} is given by the equation:

\text{pv} = -\text{fv} - (\text{pmt} \times \text{nper})

Examples

See some examples in IronCalc.