Net Present Value (NPV)

This component computes the NPV (Net Present Value) just like in spreadsheet tools like Microsoft Excel and Google Sheet. Adopt this component to track the total value of one or more investment projects with periodic transactions/cash flows.

The metric computation is implemented using Group Loop, Math Formula and Column Expression nodes.

The component calculates the net present value of an investment by using a discount rate and a series of future payments (negative values) and income (positive values) defined as transactions. The calculation iterates for each of the defined portfolio/project IDs. Make sure that you have at least one single value column with the Interest rate, one column for the cash flows and one column for the project/portfolio by which you want the transactions to be grouped.

DISCLAIMER: Similarly to when adopting the NPV() function in spreadsheet tools, the NPV component by default considers all input cash flows to be future cash flows. If you provide at the input also the current period “T_0” cash flows (usually negative), enable the check box “Current Period Transaction in Input”. When this is enabled the component outputs a second column “NPV+T_0” where the NPV on future cash flows is automatically summed to the current period cash flow.

Microsoft Excel Docs: support.microsoft.com/en-us/office/npv-function-8672cb67-2576-4d07-b67b-ac28acf2a568

Google Sheets Docs: support.google.com/docs/answer/3093184

This component, verified by KNIME, was developed by finance analytics experts at Mydral, KNIME Partner of the Year 2022: mydral.com/en/knime-uk

Options

Current Period Transaction in Input:
Enable this setting if your input “Value of Transactions” column also contains the current period cash flow. The component in this case properly computes the NPV only on future cash flows. If enabled the component additionally outputs a second column “NPV+T_0” where NPV is automatically summed to the cashflow at the current period “T_0” for each project/portfolio.
Value of Transactions:
Specify a Double or Integer column which represents a series of cash flows that corresponds to a schedule of payments in dates. By default this column should provide only cash flows on future periods. If you also provide the cashflow for the current period “T_0” for each project, make sure to enable below “Current Period Transaction in Input”.
Portfolio ID to Group By:
Specify a String column which name/ID of the project or portfolio corresponding to each transaction. If you have only one project to analyze, make sure you still provide a single value column with a project name.
Discount Rate:
Specify a Double column (all the rows of the column should contain the same value for the same ID) with the discount rate to be applied.

Input Ports

Icon
A KNIME Table where each row represents a financial transaction. A column of type String is necessary to identify the financial project/portfolio. A column of type Double or Integer is necessary to identify the value of the financial transactions. By the default this should be future transactions/cash flows. You can provide the first period value of each project, but you need to enable “Current Period Transaction in Input” in the configurations. A single value column of type Double is necessary to identify the discount rate.

Output Ports

Icon
A table is returned with a column for the name of the project/portfolio and a column for the NPV value of each project. If enabled the output additionally outputs “NPV+T_0 '' where the project NPV is summed to its current period cash flow.

Nodes

Extensions

Links