RUNNINGPROD
Category: Rollforward & time series
Overview
The RUNNINGPROD function calculates the cumulative product of a node along the time axis. Each value is multiplied by all preceding values in the time series. The accumulation is computed independently for each combination of non-time dimensions.
Use this function when you need to accumulate multiplicative effects over time, such as chained growth factors.
Syntax
RUNNINGPROD('Node')
Example usage: RUNNINGPROD('GrowthFactor')
Parameters
Parameter | Description | Type | Required |
|---|---|---|---|
Node | Input node, specified using the node name in single quotes (e.g. | Node reference | Yes |
Output Shape
Aspect | Behavior |
|---|---|
Dimensionality | Same as input. |
Values | Each value is the product of all values from the first time period up to and including the current one. |
Row count | Same as input. |
Watch Out
The input must have a time level. If the input has no time dimension, the function fails.
A zero value at any point makes all subsequent values zero, since every following product includes that zero.
The accumulation starts from the first time period in the series. There is no window parameter.
The accumulation is computed independently for each combination of non-time dimensions.
Examples
Cumulative product over time
This example shows how RUNNINGPROD multiplies each value by all previous values along the time axis.
Input node: GrowthFactor
Year | Value |
|---|---|
2025 | 1.1 |
2026 | 1.2 |
2027 | 1.2 |
Formula: RUNNINGPROD('GrowthFactor')
Year | → RUNNINGPROD Result |
|---|---|
2025 | 1.1 |
2026 | 1.1 * 1.2 = 1.32 |
2027 | 1.1 * 1.2 * 1.2 =1.584 |
Compounding a base value with growth rates
Multiplying a base value by the running product of (1 + growth rate).
Input node: GrowthRate (as decimal, e.g. 0.05 = 5%)
Year | Value |
|---|---|
2025 | 0.05 |
2026 | 0.10 |
2027 | 0.03 |
2028 | 0.00 |
Formula: RUNNINGPROD(ADDEACH('GrowthRate', 1))
Year | -> RUNNINGPROD Result |
|---|---|
2025 | 1.05 |
2026 | 1.05 * 1.10 =1.155 |
2027 | 1.05 * 1.10 * 1.03 =1.18965 |
2028 | 1.05 * 1.10 * 1.03 * 1.00 =1.18965 |
Multiplying a base value (e.g. 1000) by this result gives the compounded projection: 1000 * 1.18965 = 1189.65 in 2028.
Related Functions
Function | When to use instead |
|---|---|
When you need additive accumulation over time instead of a cumulative product. | |
When you need multiplication across discrete integer steps rather than a running product over a time series. |