

Parameters for Formulas
A formula can have zero to unlimited number of parameters. Parameters can be constants, NULL values, expressions, wildcard patters, functions, arithmetic or logical operations, or any combination of these. See the Type Conversions section below for information about how different values behave in conversion situations, as especially formulas where logical and arithmetic operations are combined can produce unexpected results if the characteristics of the value conversions are not taken into account.
Note: Formula parameters are not case sensitive. Therefore, the formula parameters can be entered in both uppercase and lowercase letters.
Note: Text series can be used in textual and numeric formulas instead of textual constants with the following limitations:
Symbolic references that return several series are supported only if either all returned series are numeric, or if only one textual series is returned. That is, symbolic references returning string lists are not supported, nor are references that return mixed lists. For example:
•SUM_(?.ACT()) works OK if ?.ACT() is resolved to numeric values, such as "1, 2, 3".
•SUM_(?.ACT()) will return an error if ?.ACT() is resolved to numeric values "1, 2" and a textual value "3" (all returned series are not numeric).
•SUM_(?.ACT()) will return an error if ?.ACT() returns two textual values: "1" and "2" (string lists are not supported)
Note: As a general rule, text and numeric series can be mixed freely in formulas. If the usage expects a numeric value and the series is textual, the calculation engine tries to convert the text value into a number. If it doesn't succeed, an error is returned. In addition, when string processing formulas are applied to a number, the calculation engine converts the number to text before calculation.
Type Conversions
All QPR Metrics formula results, except those coming from string processing formulas, are always converted to numbers. The following table shows all possible conversions and how they are handled in the calculation engine.
From 
To 
Conversion method 

Number 
Number list 
Produces a number list filled with the number. 
Number 
String 
Produces number presented as a string. 
Number 
Boolean 
0 is converted to "false", and all other values are converted to "true". 
Number list 
Number 
The result is a number which is the first number in the number list. 
Number list 
String 
Produces a string containing all numbers in a number list separated by spaces. 
String 
Number 
Produces a number, which is the first number in the string. 
String 
Number list 
Produces a number list from the numbers in the string. 
Boolean 
Number 
"False" is converted to 0 and "true" is converted to anything else than 0. The actual result value depends on the context in which the operation is performed. 
Automatic Recalculation
A measure (an element) can have values which are derived from some other measure values. To prevent situations where dependent measure values are not up to date, any change in any measure value triggers a recalculation which will guarantee the coherence of a model.
The following events will trigger the automatic recalculation:
Event 
Actions 

Element's value changed 
Recalculation of the related period. 
Element's value deleted 
Recalculation of the related period. 
New element value added 
Recalculation of the related period. 
Element's value settings changed 
Verification for recalculating all periods is requested. If user confirms the recalculation, all related elements will be updated. 
New formula created 
Verification for recalculating all periods is requested. If user confirms the recalculation, all related series will be updated. 
Formula changed 
Verification for recalculating all periods is requested. If user confirms the recalculation, all related series will be updated. 
New period created 
All elements the formulas of which have a reference to the created period, will be updated. 
Element identifier changed 
If any formula is using the related identifier, verification for recalculating all periods will be requested. If user confirms the recalculation, all series utilizing the related element, through wildcard pattern(s), will be updated. 
Range value changed 
Verification for recalculating all periods is requested. If user confirms the recalculation, the related model will be updated. 
New element added 
None. 
Element moved 
Verification for recalculating all periods is requested. If user confirms the recalculation, previous and current parent elements, utilizing wildcard patterns, will be updated. 
Element deleted 
Verification for recalculating all periods is requested. If user confirms the recalculation, all related elements will be updated. 
Scorecard identifier changed 
Verification for recalculating all periods is requested. If user confirms the recalculation, all elements utilizing the identifier through wildcard patterns will be updated. 
Value Accumulation
When elements form a hierarchical structure of parent and child elements, parent elements often need to accumulate values from their child elements. If a parent element has a longer period level than its child elements, conversion is needed for accumulating the values.
The transformation is made with a limited set of functions. To learn more about value accumulation, see Periodic Accumulation.
To learn more about constants, see Constants.
To learn more about expressions, see Expressions.
To learn more about wildcards, see Wildcards.
To learn more about functions, see Buildin Functions.
To learn more about arithmetic and logical operations, see Operators.