Skip to content
Property Value
Hex Value $BB00
Categories
Localizations
  • FR: vactNet(

npv(

Overview

Computes the sum of the present values for cash inflows and outflows.

Availability: Token available everywhere.

Syntax

npv(interest rate,CF0,CFList[,CFFreq])

Arguments

NameTypeOptional
interest rate
CF0
CFList
CFFreqYes

Location

apps, 1:Finance, CALC, 7:npv(


Description

The npv( command computes the net present value of money over a specified time period. If a positive value is returned after executing npv(, that means it was a positive cashflow; otherwise it was a negative cashflow. The npv( command takes four arguments, and the fourth one is optional:

  • interest rate — the percentage of the money that is paid for the use of that money over each individual period of time.
  • CF0 — the initial amount of money that you start out with; this number must be a real number, otherwise you will get a ERR:DATA TYPE error.
  • CFList — the list of cash flows added or subtracted after the initial money.
  • CFFreq — the list of frequencies of each cash flow added after the initial money; if this is left off, each cash flow in the cash flow list will just appear once by default.

Sample Problem

Your mom recently opened a bank account for you, with $500 as a gift to start you off. This is welcome news to you, until you find out that the bank charges 5% as the interest rate for the account. So, you get a job at Rocco's Pizzas delivering pizzas, which brings in \(1,000-\)2,000 each month. For the last five months, in particular, you have earned $1,250, $1,333, $1,575, $1,100, and $1,900. (Assume there are no other expenses, such as gas, car payment, etc.)

Plugging in all of the different values into the npv( command, this is what our code looks like:

:npv(5,500,{1250,1333,1575,1100,1900

Optimization

The npv( command's optional fourth argument should be left off if each cash flow of money in the list of cash flows just appears once.

:npv(5,1550,{2E3,3E3,4E3},{1,1,1
can be
:npv(5,1550,{2E3,3E3,4E3

At the same time, if there are cash flows that occur multiple times, it can be smaller to just use the frequency argument:

:npv(8,0,{200,200,300,300,300
can be
:npv(8,0,{200,300},{2,3

Formulas

Without a frequency list, the formula for npv( is the following:

(1) \(\begin{align} \texttt{npv}(i,\texttt{CF}_0,\{\texttt{CF}_j\})=\sum_{j=0}^N{\texttt{CF}_j\left(1+\frac{i}{100}\right)^{-j}} \end{align}\)

When a frequency list is used, the same formula can be applied if we expand the list with frequencies into a long list without frequencies. However, it's possible to do the calculation directly. We define the cumulative frequency Sj as the sum of the first j frequencies (S0 is taken to be 0):

(2) \(\begin{align} \texttt{npv}(i,\texttt{CF}_0,\{\texttt{CF}_j\},\{n_j\}) =\texttt{CF}_0+\sum_{j=1}^N{\texttt{CF}_j\left(1+\frac{i}{100}\right)^{S_{j-1}}\frac{(1-(1+\frac{i}{100})^{-n_j})}{i}} \end{align}\)

Error Conditions

  • ERR:DATA TYPE is thrown if you try to use anything other than a real number for the interest rate.
  • ERR:DIM MISMATCH is thrown if the list of cash flows and the list of cash flow frequencies have different dimensions.

Source: parts of this page were written by the following TI|BD contributors: burr, DarkerLine, GoVegan, kg583.

History

Calculator OS Version Description
TI-83 0.01013 Added

Last update: September 30, 2023 15:38:51
Created: February 23, 2023 23:15:01
Authors: Adrien Bertrand