Math & numeric
Use this category when you need numeric transformations and helpers in formulas.
These functions change values row-wise and support tasks such as rounding, caps and floors, powers, roots, logarithms, and element-wise adjustments.
Start here if…
- You want numeric helpers such as rounding, caps/floors, sign, or modulo
- You want to apply an element-wise constant change
- You need powers, roots, or logarithms
- You need controlled multiplication or division with optional mismatch validation
Not here if…
- You want to reshape output granularity → see Dimensionality & hierarchies
- You want conditions, comparisons, or branching logic → see Logical functions
- You want time comparisons or projections → see Compare periods or Rollforward & time series
Mental model
- Most functions in this category work row-wise and usually keep the input shape
- Constants are 0-dimensional; if
+ 1causes unexpected aggregation effects, useADDEACH(...)for an explicit element-wise adjustment
Common patterns
Add a constant to every cell
ADDEACH('Sales', 1)
Use when you want an element-wise change without aggregation side effects.
Compute a ratio while keeping only shared dimensions
RATIO('Gross Profit', 'Revenue')
Use when you want a display-style ratio that keeps only the joint dimensionality of both inputs. RATIO must be an end node.
Cap / floor values
MAX('Margin', 0) or MIN('Node1', 'Node2')
Use when you need simple numeric thresholds without IF(...).
Round for reporting
ROUND('Revenue')
Use when you need stable rounding for display or downstream steps.
Safe divide or multiply with validation
DIVIDE('Node1', 'Node2', "FailOnMissingFirst")
Use when you want clearer mismatch feedback instead of raw / or *.
Transform with logs, power, or roots
LN('Node'), LOG('Node1', 'Node2'), POWER('Node1', 'Node2'), SQRT('Node')
Use when your method requires non-linear scaling.
Functions in this category
| Function | Description |
|---|---|
| ABS | Returns the absolute value of each value in the node. |
| ADDEACH | Adds the specified amount to each row in the node without aggregation. |
| DIVIDE | Divides the first input by the second with optional validation that provides detailed errors on mismatches. |
| MULTIPLY | Multiplies inputs with optional validation that provides detailed errors on mismatches. |
| EXP | Calculates e raised to the power of the input values. |
| FACT | Returns the factorial of each input value. |
| LN | Returns the natural logarithm of the input. |
| LOG | Returns the logarithm of a value with respect to a specified base. |
| MAX | Returns the row-wise maximum of two nodes. |
| MIN | Returns the row-wise minimum of two nodes. |
| MOD | Returns the remainder after dividing the first input by the second. |
| POWER | Raises values from the first node to exponents from the second input. |
| RATIO | Divides the first node by the second while retaining only joint dimensions. Must be an end node, the result cannot be used in further calculations. |
| ROUND | Rounds each value to a specified number of decimal digits. |
| SIGNUM | Returns the sign of each number: 1 for positive, −1 for negative, 0 for zero. |
| SQRT | Returns the square root of each value in the node. |
Choosing between similar functions
ADDEACH vs + with a constant
- Use
ADDEACHwhen you want an explicit element-wise adjustment - Use
+with a constant only if you intentionally want standard arithmetic behavior with a 0-dimensional value
DIVIDE/DIVISION (/) vs RATIO
- Use
DIVISION (/)for standard division - Use
DIVIDEwhen you want standard division with optional mismatch validation - Use
RATIOwhen you want a ratio that keeps only joint dimensions for display purposes;RATIOmust be an end node
MIN/MAX vs IF
- Use
MIN/MAXfor simple caps and floors - Use
IFwhen the rule depends on broader conditional logic
LN vs LOG vs EXP
- Use
LNfor natural logarithm - Use
LOGwhen you need a specific base - Use
EXPfor exponentiation with basee
Pitfalls & troubleshooting
- Unexpected aggregation after adding a constant: replace
+ 1style adjustments withADDEACH(...) - RATIO cannot be reused downstream: if the result must feed other nodes, use
/orDIVIDEand set aggregation appropriately - Division looks wrong: check denominators for zero or missing values and validate both inputs at the same intersections
- LN/LOG/SQRT return missing results: confirm the input domain (negative values or zeros where not supported)
- Rounding drift: apply
ROUNDlate, not in intermediate calculations
Related sections
- Operators: arithmetic used around numeric functions
- Logical functions: conditions and branching with
IF(...) - Troubleshooting guide: missing values, alignment issues, and unexpected shape changes
- Function catalog: full signatures, parameters, and examples