Please enable JavaScript to view this site.

Vensim Help

Navigation: Reference Guide > Functions > Financial and Accounting

NET PRESENT VALUE(stream,dr,fperiod,fstart,foffset) NET PRESENT VALUE of cash flow stream

Scroll Prev Top Next More

Returns the net present value of stream computed using the discount rate dr.  Unlike the NPV and NPVE functions the NET PRESENT VALUE actually accumulates things over a fiscal period fperiod and allows you to specify where in that fiscal period to do the discounting by setting foffset to a number between 0 and 1.  You can also specify what time the value should be reported with respect to bye setting fstart to something different from Time.

Restrictions:NET PRESENT VALUE must directly follow the equal sign and there can be nothing else on the right hand side of the equation.

The NET PRESENT VALUE function is most useful for working with models that are written with time units that are different from those for fiscal reporting.  For example, suppose you have a model with time unites of Week then you would use

Npv proj1 = NET PRESENT VALUE(proj1 stream,dr,

Week Per Year,Time,1)

dr = .08 ~ 1/Year

Week Per Year = 52 ~ Week/Year

The important thing to note is that the discount rate is in units 1/Year – not 1/Week.  It is helpful to use a model constant such as Week Per Year rather than just a number to help support units checking.

If the fiscal period fperiod is less than TIME STEP then the initial value of TIME STEP is used as the fiscal period.  The fiscal period should be a multiple of TIME STEP.  If this is not true, or if TIME STEP is not a constant, the computations may end up being made on irregularly quantized flows with some fiscal periods averaging over a large number of measured flows than others.  The results will still be useable but should be reviewed carefully.

The values for fperiod, fstart and foffset are all used to initialize the function.   Changes to these values at later times during the simulation will not have any impact on the behavior of the function.  This is why it is fine to use Time for fstart.

All values are discounted as if they had occurred at the point in the fiscal period specified by foffset.  Use 1.0 to discount at the end of the period (the most common usage), .5 for the middle and 0 for the beginning.

Units: NET PRESENT VALUE (units/time,1/Ftime,time/Ftime,time,dimensionless) --> units

Where Ftime is a fiscal time units.  For example you might use Month_per_year (=12 Month/Year) as the fperiod argument to get annual results.  In this case the discount rate would have units 1/Year.  If fperiod is dimensionless then the discount rate is in the units of time the model is in.


NET PRESENT VALUE(1,.1,1,Time,1.0) 

asymptotes toward 10.

NOTEThe NET PRESENT VALUE function creates a variable that acts as an auxiliary, but also has some built in dynamic behavior.  The return value is held constant within a TIME STEP when using the Runge Kutta integration techniques.

Availability:  Not Vensim PLE or PLE Plus.


Sample model: NET PRESENT VALUE.mdl in FunctionExamples