pvvar

Present value of varying cash flow

Syntax

PresentVal = pvvar(CashFlow, Rate, CFDates)

Arguments

CashFlow

A vector of varying cash flows. Include the initial investment as the initial cash flow value (a negative number). If CashFlow is a matrix, each column is treated as a separate cash-flow stream.

Rate

Periodic interest rate. Enter as a decimal fraction. If CashFlow is a matrix, a scalar Rate is allowed when the same rate applies to all cash-flow streams in CashFlow. When multiple cash-flow streams require different discount rates, Rate must be a vector whose length equals the number of columns in CashFlow.

CFDates

(Optional) A vector of serial date numbers or date strings on which the cash flows occur. Specify CFDates when there are irregular (nonperiodic) cash flows. The default assumes that CashFlow contains regular (periodic) cash flows. If CashFlow is a matrix, and all cash-flow streams share the same dates, CFDates can be a vector whose length matches the number of rows in CashFlow. When different cash-flow streams have different payment dates, specify CFDates as a matrix the same size as CashFlow.

Description

PresentVal = pvvar(CashFlow, Rate, CFDates) returns the net present value of a varying cash flow. Present value is calculated at the time the first cash flow occurs.

Examples

This cash flow represents the yearly income from an initial investment of $10,000. The annual interest rate is 8%.

Year 1

$2000

Year 2

$1500

Year 3

$3000

Year 4

$3800

Year 5

$5000

To calculate the net present value of this regular cash flow

PresentVal = pvvar([-10000 2000 1500 3000 3800 5000], 0.08)

returns

PresentVal =

             1715.39

An investment of $10,000 returns this irregular cash flow. The original investment and its date are included. The periodic interest rate is 9%.

Cash Flow

Dates

($10000)

January 12, 1987

$2500

February 14, 1988

$2000

March 3, 1988

$3000

June 14, 1988

$4000

December 1, 1988

To calculate the net present value of this irregular cash flow

CashFlow = [-10000, 2500, 2000, 3000, 4000];

CFDates = ['01/12/1987'
            '02/14/1988'
            '03/03/1988'
            '06/14/1988'
             '12/01/1988'];

PresentVal = pvvar(CashFlow, 0.09, CFDates)

returns

PresentVal =

             142.16

The net present value of the same investment under different discount rates of 7%, 9%, and 11% is obtained in a single call:

PresentVal = pvvar(repmat(CashFlow,3,1)', [.07 .09 .11], CFDates)
pv =

  419.0136  142.1648 -122.1275

See Also

| | | |

Was this topic helpful?