EXPAND

EXPAND('Node', "Level1" [, "Level2", ...])

In Dimensionality & hierarchies

The EXPAND function expands a node by creating a full cross product of all existing rows with all values of the specified level(s).

Use this function when you need to create an empty data room (a set of rows with placeholder values) that can serve as a driver inside ROLLFORWARD_ADVANCED, or when you want to expand an existing node with additional levels: EXPAND('Growth Rate', "Product").

Parameters

NodeNode reference or numberRequired
Input node or scalar value, specified in single quotes (e.g. 'Growth Rate') or as a number (e.g. 0)
Level1, Level2, …Level nameRequired
Level names to expand, specified in double quotes (e.g. "Product")

Output shape

Dimensionality
Adds the specified levels (and their upper levels in the dimension hierarchy) to the result
Values
Existing values are duplicated across all members of the new level(s). Scalar inputs fill every cell with that value.
Row count
Full cross product

Watch out

  • EXPAND creates the full cross product of all values in the specified level(s). If you only need specific values, use EXPANDSINGLE instead.
  • Expanding a node copies each row’s value into every member of the new level. Be aware this changes totals. For example, if a row has value 100 and you expand across 3 products, the sum becomes 300 instead of 100.

Examples

Expand a scalar to full dimensionality

Initialize an empty simulation node with zeros across all years, regions, and products.

Formula: EXPAND(0, "Year", "Region", "Product")

YearRegionProductEXPAND Result
2025EMEAAlpha0
2025EMEABeta0
2025APACAlpha0
2025APACBeta0
2026EMEAAlpha0

The scalar 0 is replicated across every combination of Year × Region × Product. The result makes the simulation node eligible for use with ROLLFORWARD.

Expand a node to add a dimension

A growth-rate node only has a Year level, but should also include the Product level.

Input node: 'Growth Rate'

YearValue
20250.03
20260.05

Formula: EXPAND('Growth Rate', "Product")

YearProductEXPAND Result
2025Alpha0.03
2025Beta0.03
2026Alpha0.05
2026Beta0.05

The same growth rate per year is now available for each product.

Expand into a finer level within an existing dimension

A revenue node already has a "Region" level. You want to break it down to individual countries, a finer level in the same dimension hierarchy.

Input node: 'Revenue Target'

YearRegionValue
2025EMEA500
2025APAC300
Total800

Formula: EXPAND('Revenue Target', "Country")

YearRegionCountryEXPAND Result
2025EMEAGermany500
2025EMEAFrance500
2025APACJapan300
2025APACAustralia300
Total1600

Because "Country" is a finer level below "Region" in the hierarchy, EXPAND adds only the child values belonging to each region, not a full cross product of all countries with all regions.

Note that the values are duplicated into each child row, so totals will increase.

See also

EXPANDSINGLE
When you only need specific level values instead of a full cross product.
DROPLEVEL
When you need to remove levels instead of adding them.
ROLLUP
When you want to aggregate to fewer levels.
ROLLFORWARD_ADVANCED
When you need to project expanded driver nodes forward in time.
Was this page helpful?