Reference Updated April 10, 2026

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.

Function alternative

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

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

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.'Inflation'). 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 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 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

YearValue
202595
2026100

Input node: Inflation

YearValue in %
20260.02
20270.1
20280.2

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

Year→ ROLLFORWARD Result
202595
2026100
2027110
2028132

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

YearValue
202595
2026100

Input node: Market Size

YearValue
202610000
202710100
202810500

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

Year→ ROLLFORWARD Result
202595
2026100
2027100 + (10100/10000) = 101
2028101 + (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

YearInflation
202610%
202710%
202810%

Input node: Growth

YearGrowth
202620%
202720%
202820%

Input node: Revenue

YearRevenue
20261000

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

Year→ ROLLFORWARD Result
20271000 + (1000 * 0.1) + (1000 * 0.2) = 1300
20281300 + (1300 * 0.1) + (1300 * 0.2) = 1690

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.
ROLLFORWARD_MULWhen multiple drivers should influence each other within the same period instead of being summed first.
PREVIOUSWhen you need older loop-style logic with a defined base case instead of a direct rollforward from the latest available value.
Was this page helpful?