ROLLFORWARD

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

In Rollforward & time series

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: ROLLFORWARD('Revenue', 'Inflation').

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.

Parameters

Original NodeNode referenceRequired
Input node whose values are rolled forward, specified in single quotes (e.g.'Revenue')
Driver NodeNode referenceOptional
One or more driver nodes that influence the rollforward, specified in single quotes (e.g.'Inflation'). Multiple drivers can be provided as additional arguments.

Output shape

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.

Original node: 'Revenue'

YearValue
202595
2026100

Driver node: 'Inflation'

YearValue in %
20260.02
20270.1
20280.2

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

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

Original node: 'Revenue'

YearValue
202595
2026100

Driver node: 'Market Size'

YearValue
202610000
202710100
202810500

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

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

Driver node: 'Inflation'

YearInflation
202610%
202710%
202810%

Driver node: 'Growth'

YearGrowth
202620%
202720%
202820%

Original node: 'Revenue'

YearRevenue
20261000

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

YearCalculationResult
20271000 + (1000 × 0.1) + (1000 × 0.2)1300
20281300 + (1300 × 0.1) + (1300 × 0.2)1690

See also

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.
Was this page helpful?