Reference Updated April 10, 2026

ROLLFORWARD_MUL

Category: Rollforward & time series

Overview

The ROLLFORWARD_MUL function rolls the values of the Original Node forward, optionally influenced by one or more driver nodes whose effects are compounded multiplicatively.

Use this function when multiple driver effects should compound with each other before being applied to the base node. Without drivers, the last value is carried forward as a flat projection.

Function alternative

The difference between this function and ROLLFORWARD is how they treat multiple influence nodes. ROLLFORWARD sums the effects and then applies them to the original node. ROLLFORWARD_MUL multiplies the effects and then applies them to the original node.

Syntax

ROLLFORWARD_MUL('OriginalNode' [, 'DriverNode', ...])

Example usage: ROLLFORWARD_MUL('Revenue', 'Price Change', 'Volume Change')

Parameters

ParameterDescriptionTypeRequired
Original NodeInput node whose values are rolled forward, specified in single quotes (e.g.'Revenue')Node referenceYes
Driver NodeOne or more driver nodes that influence the rollforward, specified in single quotes (e.g.'Price Change'). Multiple drivers can be provided as additional arguments.Node referenceNo

Output Shape

AspectBehavior
DimensionalitySame as the Original Node
ValuesOriginal values are preserved for existing time periods. Future periods are projected from the last value, adjusted by cumulative compounded driver effects (or flat if no drivers).
Row countExpands to fill time periods within the horizon where driver data exists

Watch Out

  • All input nodes (original and drivers) must have a time level.
  • The driver’s time level cannot be coarser than the original node’s time level (e.g. yearly driver with monthly original data is not allowed).
  • If a driver node is not a percent node, it is automatically converted to relative year-over-year changes before being applied.
  • Original data values are preserved as-is. The rollforward only applies to time periods after the last existing data point.
  • With multiple drivers, effects are multiplied per period (compounded), not summed. Use ROLLFORWARD if you need additive combination instead.
  • Driver nodes are automatically rolled up to match the dimensionality of the Original Node if they have finer granularity.
  • Driver partitions that do not match the Original Node are ignored. For example, a driver value for country FR is ignored if the Original Node has no FR data.
  • If no driver nodes are specified, the last value is projected forward as a flat line (0% growth).

Examples

Compounding multiple drivers

This example shows how a level-less percentage driver and a country-specific percentage driver are combined. The driver effects are multiplied first and then applied to the base value.

Input node: Revenue

YearCountryValue
2025DE100
2025US100

Input node: Price Change

YearValue in %
202610%

Input node: Volume Change

YearCountryValue in %
2026DE10%
2026FR20%

Formula: ROLLFORWARD_MUL('Revenue', 'Price Change', 'Volume Change')

YearCountry→ ROLLFORWARD_MUL Result
2025DE100
2025US100
2026DE100 * ((0.1 + 1) * (0.1 + 1)) = 121
2026US100 * (0.1 + 1) = 110

Both countries receive a 10% growth from the level-less Price Change node. In addition, the DE row receives another 10% growth from Volume Change, compounding to 21% total. The FR row from Volume Change is ignored because FR is not present in the base node. US only receives the price change because no volume change is defined for US.

Comparing SUM vs MUL with the same inputs

This example highlights the difference between ROLLFORWARD (additive) and ROLLFORWARD_MUL (multiplicative).

Input node: Revenue

YearRevenue
20261000

Input node: Inflation

YearValue in %
202710%

Input node: Growth

YearValue in %
202720%

Formula: ROLLFORWARD_MUL('Revenue', 'Inflation', 'Growth')

Year-> ROLLFORWARD_MUL Result
20261000
20271000 * (0.1 + 1) * (0.2 + 1) = 1320

With ROLLFORWARD (additive), the same inputs would produce: 1000 + (1000 * 0.1) + (1000 * 0.2) = 1300. The multiplicative version yields a higher result because the effects compound.


FunctionWhen to use instead
ROLLFORWARD_ADVANCEDWhen you need a more configurable rollforward setup with explicit control over timing, base behavior, or advanced driver handling beyond the standard ROLLFORWARD logic.
ROLLFORWARDWhen you want to combine multiple driver effects additively before applying them to the base node instead of compounding them with each other.
Was this page helpful?