Skip to main content Skip to complementary content

NPV - script function

NPV() returns the aggregated net present value of an investment based on a discount_rate per period and a series of future payments (negative values) and incomes (positive values), represented by the numbers in value, iterated over a number of records, as defined by a group by clause. The payments and incomes are assumed to occur at the end of each period.

Syntax:  

NPV(discount_rate, value)

Return data type: numeric. The result has a default number format of money.

Arguments:  

Arguments
Argument Description
discount_rate

discount_rate is the rate of discount over the length of the period.

value The expression or field containing the data to be measured.

Text values, NULL values and missing values are disregarded.

Learn more

 

Examples and results:  

Add the example script to your app and run it. To see the result, add the fields listed in the results column to a sheet in your app.

Examples and results
Example Year NPV1_2013

Cashflow:

LOAD 2013 as Year, * inline [

Date|Discount|Payments

2013-01-01|0.1|-10000

2013-03-01|0.1|3000

2013-10-30|0.1|4200

2014-02-01|0.2|6800

] (delimiter is '|');

 

Cashflow1:

LOAD Year,NPV(0.2, Payments) as NPV1_2013 Resident Cashflow Group By Year;

2013

-$540.12

 

Examples and results
Example Year Discount NPV2_2013

Given that the Cashflow table is loaded as in the previous example:

LOAD Year,NPV(Discount, Payments) as NPV2_2013 Resident Cashflow Group By Year, Discount;

Note that the Group By clause sorts the results by Year and Discount. The first argument, discount_rate, is given as a field (Discount), rather than a specific number, and therefore, a second sorting criterion is required. A field can contain a different values, so the aggregated records must be sorted to allow for different values of Year and Discount.

;

2013
2013

0.1
0.2

-$3456.05
$5666.67

Did this page help you?

If you find any issues with this page or its content – a typo, a missing step, or a technical error – let us know how we can improve!