--- title: "CUMIPMT" slug: "cumipmt" updated: 2025-07-01T15:52:13Z published: 2025-07-01T15:52:13Z canonical: "documentation.decisions.com/cumipmt" --- > ## Documentation Index > Fetch the complete documentation index at: https://documentation.decisions.com/llms.txt > Use this file to discover all available pages before exploring further. # CUMIPMT | Step Details | | --- | | **Introduced in Version** | 4.0.0 | | **Last Modified in Version** | 7.12.0 | | **Location** | Data > Financial > Excel Functions | The CUMIPMT step is available in the Finance module. It is designed to calculate cumulative interest over a specified range of periods based on financial parameters, such as interest rate, number of periods, present value (PV), start period, end period, and payment type. This step is crucial for financial professionals and developers working on financial applications, as it helps in determining the cumulative interest accrued on a financial instrument or investment over time. ### Prerequisites This step requires the [Financial](https://documentation.decisions.com/docs/financial-module) module to be [installed](https://documentation.decisions.com/docs/installing-modules-decisions) before it will be available in the toolbox. --- ## Properties #### Inputs | Property | Description | Data Type | | --- | --- | --- | | End Period | This property represents the last period in the calculation. It defines the endpoint for calculating cumulative interest. The calculation will include all periods from the start period up to and including the end period. | Double | | Interest Rate per period | This property represents the interest rate for each compounding period. It defines the rate at which interest accrues over time. | Double | | Number of Periods | This property represents the total number of payment periods. It defines the duration over which cumulative interest is calculated. The number of periods can be a whole number or a decimal depending on the frequency of payments. | Double | | Payment due | This property indicates the timing of the payment, which can be either "End of Period" or "Beginning of Period." It determines whether payments are made at the end or the beginning of each compounding period. | PaymentDue | | Present Value | The present value represents the initial principal amount or the current value. | Double | | Start Period | This property signifies the first period in the calculation. | Double | #### Outputs | Property | Description | Data Type | | --- | --- | --- | | Done | | | | | Output | The cumulative interest between the start and end periods. | Double | ![](https://cdn.document360.io/6ef8bcc1-6489-4486-9ad1-83acff7e5df0/Images/Documentation/2025-07-01_11h05_32.png) --- ## Example Inputs and Outputs | Interest Rate per period | Number of Periods | Present Value | Start Period | End Period | Payment due | Output | | --- | --- | --- | --- | --- | --- | --- | | 0.09 | 360 | 125000 | 13 | 24 | BeginningOfPeriod | -123853.21100915881 | | 0.09 | 360 | 125000 | 1 | 1 | EndOfPeriod | -11250 | #### ![](https://cdn.document360.io/6ef8bcc1-6489-4486-9ad1-83acff7e5df0/Images/Documentation/2025-07-01_10h54_31.png) --- ## Common Errors ### Invalid Inputs If the Interest Rate per period ≤ 0, the Number of Periods ≤ 0, or the Present Value ≤ 0, the step will return an error. Please ensure these inputs have data mapped correctly. #### Exception Message: ```csharp Exception Stack Trace: DecisionsFramework.Design.Flow.ErrorRunningFlowStep: Error running step CUMIPMT 1[CUMIPMT] in flow [Financial Module]: Exception invoking method CUMIPMT on class ExcelFunctions ---> DecisionsFramework.LoggedException: Exception invoking method CUMIPMT on class ExcelFunctions ---> System.Exception: r must be more than 0 at Excel.FinancialFunctions.Loan.calcCumipmt(Double r, Double nper, Double pv, Double startPeriod, Double endPeriod, PaymentDue pd at Excel.FinancialFunctions.Financial.CumIPmt(Double rate, Double nper, Double pv, Double startPeriod, Double endPeriod, PaymentDue typ at Decisions.Financial.ExcelFunctions.CUMIPMT(Double intRate, Double noOfPeriods, Double presentVal, Double startPeriod, Double endPeriod, PaymentDue payDue at InvokeStub_ExcelFunctions.CUMIPMT(Object, Object, IntPtr* at System.Reflection.MethodInvoker.Invoke(Object obj, IntPtr* args, BindingFlags invokeAttr) --- End of inner exception stack trace --- at DecisionsFramework.Design.Flow.StepImplementations.InvokeMethodStep.Run(StepStartData data at DecisionsFramework.Design.Flow.FlowStep.RunStepInternal(String flowTrackingID, String stepTrackingID, KeyValuePairDataStructure[] stepRunDataValues, AbstractFlowTrackingData trackingData at DecisionsFramework.Design.Flow.FlowStep.Start(String flowTrackingID, String stepTrackingID, FlowStateData data, AbstractFlowTrackingData trackingData, RunningStepData currentStepData) --- End of inner exception stack trace --- ``` ### Invalid Start and End Periods If the Start Period or End Period inputs are less than 1 or the Start Period is greater than the End Period, the step will return an error. #### Exception Message: ```csharp Exception Stack Trace: DecisionsFramework.Design.Flow.ErrorRunningFlowStep: Error running step CUMIPMT 1[CUMIPMT] in flow [Financial Module]: Exception invoking method CUMIPMT on class ExcelFunctions ---> DecisionsFramework.LoggedException: Exception invoking method CUMIPMT on class ExcelFunctions ---> System.Exception: startPeriod must be more or equal to 1 at Excel.FinancialFunctions.Loan.calcCumipmt(Double r, Double nper, Double pv, Double startPeriod, Double endPeriod, PaymentDue pd at Excel.FinancialFunctions.Financial.CumIPmt(Double rate, Double nper, Double pv, Double startPeriod, Double endPeriod, PaymentDue typ at Decisions.Financial.ExcelFunctions.CUMIPMT(Double intRate, Double noOfPeriods, Double presentVal, Double startPeriod, Double endPeriod, PaymentDue payDue at InvokeStub_ExcelFunctions.CUMIPMT(Object, Object, IntPtr* at System.Reflection.MethodInvoker.Invoke(Object obj, IntPtr* args, BindingFlags invokeAttr) --- End of inner exception stack trace --- at DecisionsFramework.Design.Flow.StepImplementations.InvokeMethodStep.Run(StepStartData data at DecisionsFramework.Design.Flow.FlowStep.RunStepInternal(String flowTrackingID, String stepTrackingID, KeyValuePairDataStructure[] stepRunDataValues, AbstractFlowTrackingData trackingData at DecisionsFramework.Design.Flow.FlowStep.Start(String flowTrackingID, String stepTrackingID, FlowStateData data, AbstractFlowTrackingData trackingData, RunningStepData currentStepData) --- End of inner exception stack trace --- ```