Skip to main content
Skip table of contents

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 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.

(info) Function alternative

The difference between this function and ROLLFORWARD is how they treat multiple influence nodes. ROLLFORWARD sums up the effects and then applies them to the original node. ROLLFORWARD_MUL multiplies up 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

Parameter

Description

Type

Required

Original Node

Input node whose values are rolled forward, specified in single quotes (e.g.'Revenue')

Node reference

Yes

Driver Node

One 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 reference

No

Output Shape

Aspect

Behavior

Dimensionality

Same as the Original Node

Values

Original 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 count

Expands 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

Year

Country

Value

2025

DE

100

2025

US

100

Input node: Price Change

Year

Value in %

2026

10%

Input node: Volume Change

Year

Country

Value in %

2026

DE

10%

2026

FR

20%

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

Year

Country

→ ROLLFORWARD_MUL Result

2025

DE

100

2025

US

100

2026

DE

100 * ((0.1 + 1) * (0.1 + 1)) = 121

2026

US

100 * (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

Year

Revenue

2026

1000

Input node: Inflation

Year

Value in %

2027

10%

Input node: Growth

Year

Value in %

2027

20%

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

Year

-> ROLLFORWARD_MUL Result

2026

1000

2027

1000 * (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.


Related Functions

Function

When to use instead

ROLLFORWARD_ADVANCED

When you need a more configurable rollforward setup with explicit control over timing, base behavior, or advanced driver handling beyond the standard ROLLFORWARD logic.

ROLLFORWARD

When you want to combine multiple driver effects additively before applying them to the base node instead of compounding them with each other.

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.