MULTIPLICATION (*)
Category: Arithmetic operators
Overview
The MULTIPLICATION operator multiplies nodes by performing a join along the shared levels of the nodes (dimension union). The result has all the finest levels that are present in either of the input nodes.
Use this operator for standard multiplication across shared levels without additional validation handling.
Syntax
'Node1' * 'Node2'
Example usage: 'Volume' * 'Price'
Parameters
Parameter | Description | Type | Required |
|---|---|---|---|
Node1 | First factor node, specified using the node name in single quotes (e.g. | Node reference | Yes |
Node2 | Second factor node, specified using the node name in single quotes (e.g. | Node reference | Yes |
Output Shape
Aspect | Behavior |
|---|---|
Dimensionality | Union of all dimensions from both inputs. Per shared dimension, the finest level is used. Dimensions that exist on only one side are kept as-is. |
Level values | Matched on shared dimensions. Non-shared dimensions are applied across all matching rows (cross product). |
Row count | Equal or expanded. |
Watch Out
Multiplication uses dimension union, not intersection. This is the opposite of addition/subtraction. If Node1 has [Year] and Node2 has [Year, Product], the result keeps [Year, Product]. Each Year value from Node1 is applied to every Product row.
This dimension expansion is one of the most common sources of unexpected output shape. If your result has more rows than expected, check whether the inputs have different dimensionality.
Units are multiplied along with values. For example, EUR multiplied by Quantity produces a combined unit EUR*Quantity.
Examples
All shared dimensions
This example shows the basic case where both inputs share the same dimensions. The multiplication is performed row by row on matching intersections.
Input node: Node1
Year | Value |
|---|---|
2025 | 2 |
2026 | 4 |
Input node: Node2
Year | Value |
|---|---|
2025 | 3 |
2026 | 1 |
Formula: 'Node1' * 'Node2'
Year | → MULTIPLICATION Result |
|---|---|
2025 | 2 * 3 = 6 |
2026 | 4 * 1 = 4 |
Some shared dimensions
This example shows how multiplication works when one input has additional dimensions. The shared level values are matched first, then the finer dimension from Node2 is retained in the result.
Input node: Node1
Year | Value |
|---|---|
2025 | 2 |
2026 | 4 |
Input node: Node2
Year | Product | Value |
|---|---|---|
2025 | A | 2 |
2025 | B | 0 |
2026 | A | 1 |
2026 | B | 4 |
Formula: 'Node1' * 'Node2'
Year | Product | → MULTIPLICATION Result |
|---|---|---|
2025 | A | 2 * 2 = 4 |
2025 | B | 2 * 0 = 0 |
2026 | A | 4 * 1 = 4 |
2026 | B | 4 * 4 = 16 |
Without shared dimensions
This example shows the case where the second input has no shared dimension except a single constant value. That value is applied across all matching rows of the first input.
Input node: Node1
Year | Value |
|---|---|
2025 | 2 |
2026 | 4 |
Input node: Node2
Value |
|---|
2 |
Formula: 'Node1' * 'Node2'
Year | → MULTIPLICATION Result |
|---|---|
2025 | 2 * 2 = 4 |
2026 | 4 * 2 = 8 |
Related Functions
Function | When to use instead |
When you want multiplication with explicit validation options and clearer mismatch handling instead of standard operator behavior. | |
When you want to combine nodes through the same shared-level join logic but divide values instead of multiplying them. |