Reference Updated April 8, 2026

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

ParameterDescriptionTypeRequired
NodeInput node, specified using the node name in single quotes (e.g.'GrowthFactor')Node referenceYes

Output Shape

AspectBehavior
DimensionalitySame as input.
ValuesEach value is the product of all values from the first time period up to and including the current one.
Row countSame 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

YearValue
20251.1
20261.2
20271.2

Formula: RUNNINGPROD('GrowthFactor')

Year→ RUNNINGPROD Result
20251.1
20261.1 * 1.2 = 1.32
20271.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%)

YearValue
20250.05
20260.10
20270.03
20280.00

Formula: RUNNINGPROD(ADDEACH(‘GrowthRate’, 1))

Year-> RUNNINGPROD Result
20251.05
20261.05 * 1.10 =1.155
20271.05 * 1.10 * 1.03 =1.18965
20281.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.


FunctionWhen to use instead
RUNNINGSUMWhen you need additive accumulation over time instead of a cumulative product.
FACTWhen you need multiplication across discrete integer steps rather than a running product over a time series.
Was this page helpful?