Extended Internal Rate of Return (XIRR)

This component computes the XIRR (Extended Internal Rate of Return) just like in spreadsheet tools like Microsoft Excel and Google Sheet. Adopt this component to track the profitability of one or more investment projects with non-periodic transactions/cash flows.

The component adopts the Java library ‘java-xirr’ version 1.2 (MIT license). More info available at: github.com/RayDeCampo/java-xirr

DISCLAIMER: To adopt this library the component downloads on its first execution in a new workflow from search.maven.org. Make sure your KNIME has internet access when executing the component in a new workflow for the first time.

DISCLAIMER: The adopted library does not perform well with multiple negative cash flows.

The component calculates the internal rate of return for a schedule of cash flows that is not necessarily periodic. It starts from a series of cash flows and their date to approximate the value of XIRR for each of the defined portfolio/project that the cash flows are grouped by. Make sure that you have at least one column for the dates of the transactions in a date format, one column for the cash flows (for each portfolio/project the first transaction needs to be negative), and one column for the project/portfolio by which you want the transactions to be grouped by.

Microsoft Excel Docs: support.microsoft.com/en-us/office/xirr-function-de1242ec-6477-445b-b11b-a303ad9adc9d

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

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

Perform Extra Search:
This setting adds additional search when no value was found with the base search. Adding extra iterations might provide better results, but it also requires more computation time.
Date of of Transactions:
Specify a Zoned/Local Date (Time) column which represents the date of each transaction.
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. Make sure that for each project, there is at least one negative and one positive value.
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.
Guess Value:
Specify a double value which represents the starting “guess value” for the XIRR over all projects. The value is used as a starting point to cycle through the calculation until it arrives at the result.

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. A column of type Zoned/Local Date (Time) is necessary to identify the date of the transaction.

Output Ports

Icon
A table is returned with a column for the name of the project/portfolio and a column for the XIRR value of each project.

Nodes

Extensions

Links