Skip to main content
Skip table of contents

ROLLFORWARD

Category: Rollforward & time series

Overview

The ROLLFORWARD function rolls the values of the Original Node forward with the influence of optional driver nodes.

Use this function when you want to project a base series forward starting after the last available value with one or more driver nodes.

(info) Function alternative

The difference between this function and ROLLFORWARD_MUL 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('OriginalNode' [, 'DriverNode', ...])

Example usage: ROLLFORWARD('Revenue', 'Inflation')

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.'Inflation'). 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 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 summed per period, then applied. Use ROLLFORWARD_MUL if you need multiplicative combination instead.

  • Driver nodes are automatically rolled up to match the dimensionality of the Original Node if they have finer granularity.

  • If no driver nodes are specified, the last value is projected forward as a flat line (0% growth).


Examples

Rollforward with a percentage driver

This example uses a percentage driver. Each future period applies the driver value to the latest rolled result.

Input node: Revenue

Year

Value

2025

95

2026

100

Input node: Inflation

Year

Value in %

2026

0.02

2027

0.1

2028

0.2

Formula: ROLLFORWARD('Revenue', 'Inflation')

Year

→ ROLLFORWARD Result

2025

95

2026

100

2027

110

2028

132

Rollforward with an absolute driver

If the driver node is not a percent node, ROLLFORWARD converts it into a yoy-growth effect before applying it to the latest rolled value.

Input node: Revenue

Year

Value

2025

95

2026

100

Input node: Market Size

Year

Value

2026

10000

2027

10100

2028

10500

Formula: ROLLFORWARD('Revenue', 'Market Size')

Year

→ ROLLFORWARD Result

2025

95

2026

100

2027

100 + (10100/10000) = 101

2028

101 + (10500/10100) = 102.03

Rollforward with multiple driver nodes

With multiple drivers, ROLLFORWARD sums the individual effects per period before applying them to the latest rolled value.

Input node: Inflation

Year

Inflation

2026

10%

2027

10%

2028

10%

Input node: Growth

Year

Growth

2026

20%

2027

20%

2028

20%

Input node: Revenue

Year

Revenue

2026

1000

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

Year

→ ROLLFORWARD Result

2027

1000 + (1000 * 0.1) + (1000 * 0.2) = 1300

2028

1300 + (1300 * 0.1) + (1300 * 0.2) = 1690


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_MUL

When multiple drivers should influence each other within the same period instead of being summed first.

PREVIOUS

When you need older loop-style logic with a defined base case instead of a direct rollforward from the latest available value.

JavaScript errors detected

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

If this problem persists, please contact our support.