Language: Deutsch · English
Data sheet and documentation entry point for the XIRR Nuclet (calculation of the internal rate of return (XIRR)).
CONCEPT INTEGRATORS UPDATED: JUL 2026 APPLIES TO NUCLOS 4.2026.X
On this page
Machine-translated – under review
This page was machine-translated from German as a first draft and is currently under review. The authoritative source remains the German original (see the language switch above).
| Name: | XIRR |
| Package: | org.nuclet.xirr |
| Version: | 1.4.0 |
| Date: | 27.09.2017 |
| Nuclos compatibility: | from Nuclos 4.19.3 |
The XIRR Nuclet offers functions for calculating the internal rate of return. The calculation is based on a series of payments (amounts of money, bound to date values).
The calculation corresponds to the Excel functions XIRR (or XINTZINSFUSS).
The calculation is based on an initial start or estimated value. For a successful calculation, this must lie within a convergence range.
Within the .nuclet file, the XIRR Nuclet comprises
various Java rules (distributed across packages),
a job control (for controlling a test job).
Type | Name, English | Name, German | Short description |
|---|---|---|---|
Java package | in.satpathy.financial | XIRR functionality used internally by the Nuclet | |
in.satpathy.math | XIRR functionality used internally by the Nuclet | ||
org.nuclet.xirr.data | XIRR data structures | ||
org.nuclet.xirr.logic | rule interface for XIRR functions | ||
org.nuclet.xirr.parameter | system parameter definitions | ||
org.nuclet.xirr.test | test routines | ||
Job control | XIRR Test | test job for calling test routines |
Table 1: Nuclet components
The Java rules are divided into five packages. Of these rules, normally only four Java classes are really relevant for the Nuclet integration:
org.nuclet.xirr.data.XIRRSeries, as a data structure for a series of payments
org.nuclet.xirr.logic.XIRRLogic, as logic for calling the XIRR calculations
org.nuclet.xirr.test.XIRRTestJob, as a job for calling tests
org.nuclet.xirr.parameter.XIRRSystemParameters, for configuring system parameters
The integration of the XIRR Nuclet takes place in 3 steps:
Download
Nuclet import
Configuration of system parameters
Connecting your own Java code to the XIRR logic
All integration steps are explained in detail below.
Step 1: Download
Download der ZIP-Datei „XIRR-v1.4.0-4.19.3.zip“ auf der Nuclos-Webpage unter „Nuclos Services“ > „Download“ > „Nuclet Download“. Das ZIP anschließend lokal entpacken.
Step 2: Nuclet import
Import des XIRR-Nuclets unter „Konfiguration“ > „Nuclet Management“ > „Importieren“ in Ihre bestehende Nuclos-Instanz, Auswahl der Datei „XIRR-v1.4.0-4.19.3.nuclet“
Step 3: Configuration of the system parameters
In version v1.0.0, the used Nuclos system parameter is set up by adjusting the constant XIRR_DEFAULT_GUESS in the class org.nuclet.xirr.parameter.XIRRSystemParameters:
Parameter | Short description |
|---|---|
XIRR_DEFAULT_GUESS | Default start value for the XIRR iterations |
Table 2: System parameters
Note: In a future version – i.e. as soon as the new Nuclos API supports reading system parameters – this step will no longer run via an adjustment of the source code.
Step 4: Connecting your own Java code to the XIRR logic
The XIRR logic is integrated by initialising an org.nuclet.xirr.data.XIRRSeries, which is filled with the payment amounts and calendar dates of the payments. Optionally, a specific start value („guess“) can be passed. If no start value is specified, the default start value is used (see step 3). The series object is then passed to an instance of the class org.nuclet.xirr.logic.XIRRLogic for the calculation.
Here is an example of integration in an UpdateRule:
@Rule(name="AktualisiereZahlungsverkehr", description="Aktualisiert den Zahlungsverkehr")
public class AktualisiereZahlungsverkehr implements UpdateRule
{
public void update(UpdateContext context)
{
(...)
XIRRLogic logic = new XIRRLogic(context); // Initialisierung der XIRR-Logik
XIRRSeries series = new XIRRSeries(); // es ist möglich, den Startwert (guess) mizugegeben
Zahlungsverkehr zvk = context.getBusinessObject(Zahlungsverkehr.class);
List<Zahlung> lstZahlungen = zvk.getZahlung();
for (Zahlung z : lstZahlungen) {
series.add(z.getDatum(), z.getBetrag());
}
BigDecimal bgdXirrValue = logic.calculate(series); // ohne Konvergenz ist der Wert „null“!
(...)
}
}
Note: See also the method test2() in the class org.nuclet.xirr.test.XIRRTestJob.
Version | Date | Type | Changes |
|---|---|---|---|
| 1.0.0 | 19.04.2013 | initial version | - |
| 1.1.0 | 13.12.2013 | Migration to Nuclos 4.0 |
|
| 1.2.0 | 24.03.2017 | Migration to Nuclos 4.13 | Migration to Nuclos 4.13 |
| 1.3.0 | 22.08.2017 | Migration to Nuclos 4.18 | Migration to Nuclos 4.18 |
| 1.4.0 | 27.09.2017 | Migration to Nuclos 4.19 | Migration to Nuclos 4.19 |