This document clearly explains how the Panel Formula and the Contract Formula work within the Results Program. Although they share the same expression language and concepts such as triggers and blocks, they operate at different levels and use different parameters in the final calculation.
Overview of the Formulas
Formulas are entirely optional. Each organization may choose to use only the Panel Formula, only the Contract Formula, or both together. They function independently but can be combined to create more sophisticated calculation logic.
When formulas are enabled in a Results Program, the final score calculation is divided into two layers:
- Panel Formula – responsible for adjusting the consolidated performance of the panel.
- Contract Formula – responsible for adjusting the final score of each individual contract.
These formulas offer flexibility in applying conditional rules and using triggers that directly influence scoring.
Panel Formula
The Panel Formula is executed before contract-level calculations and determines the Final Panel Score. Its primary parameter is PanelScore, which represents the weighted average of all contract scores, where the weight is the duration of each contract within the cycle.
PanelScore serves as the base value over which the formula may apply adjustments, conditions, and multipliers. This allows organizations to shape the behavior of the overall panel without affecting individual contract logic.
Contract Formula
The Contract Formula is applied individually to each contract. Its main parameter is ContractScore, representing the weighted average of all block scores in the contract, where each block contributes according to its assigned weight.
Starting from ContractScore, the formula may apply rules, triggers, and conditions relevant to that specific contract.
Available Variables
Formulas can use the following variables:
- PanelScore – base value for the Panel Formula.
- ContractScore – base value for the Contract Formula.
- Measures from indicators and blocks (available through triggers and contracted blocks).
These variables allow the creation of advanced expressions suitable for different business scenarios.
Triggers and Formulas
Triggers provide a flexible way to reference indicator measures without binding formulas to a specific indicator. This allows organizations to replace indicators without modifying the underlying expressions.
Blocks may also be referenced as triggers, enabling access to measures such as Score, Contribution, and Performance.
When used in either the Panel Formula or Contract Formula, triggers follow precedence rules and return values based on their existence in the context.
Supported Functions
The available functions vary depending on the type of formula — Panel Formula or Contract Formula — and each set accesses values at different levels of the Results Program.
Functions available in the Panel Formula
The Panel Formula can access only triggers applied at the panel level. It exclusively uses:
HasPanelTrigger(trigger, measure) – returns true/false indicating whether the trigger exists in the panel and contains the specified measure.
GetPanelTrigger(trigger, measure) – returns the value of the measure associated with the panel trigger.
PanelTrigger means that the trigger is configured at the panel level.
Functions available in the Contract Formula
The Contract Formula can access panel triggers, contract triggers, and block values.
Panel Triggers
A contract can also reference values defined at the panel level:
HasPanelTrigger(trigger, measure)
GetPanelTrigger(trigger, measure)
Contract Triggers
These replace the former HasTrigger and GetTrigger functions, now explicitly scoped to contracts:
HasContractTrigger(trigger, measure) – returns true/false depending on whether the trigger exists in the contract.
GetContractTrigger(trigger, measure) – returns the value of the measure associated with the trigger defined in the contract.
ContractTrigger means that the trigger is configured at the contract level.
Block Functions (only in the Contract Formula)
Because blocks exist only within contracts, these functions cannot be used in the Panel Formula:
HasBlockValue(block, measure) – returns true/false if the block exists and contains the specified measure.
GetBlockValue(block, measure) – returns the value of the block measure.
Measures Available for Use in Formulas
Formulas may use the following indicator or block measures:
- Actual (Real)
- Target (Goal)
- UpperTarget (Upper Goal)
- BottomTarget (Lower Goal)
- Forecast
- Projected
- Performance (%)
- Contribution
- Weight
- Score
Note: PanelScore and ContractScore are not indicator measures, therefore they cannot be used inside HasTrigger, GetTrigger, HasBlockValue, or GetBlockValue.
Using Panel Indicator Values
To use panel indicator values in the formula, it is necessary to hire this indicator in the panel and associate this indicator with a trigger, so it is possible to use the contribution, grade and weight values.
The image below demonstrates a program that has the formula GetTrigger("Panel Indicator","Contribution") * 2, what the user wants is to use the contribution of the panel indicator "Expenses (Millions)", for this he hired the indicator in the panel and associated it to the 'Dashboard Indicator' trigger, making it possible to access the contribution of “Expenses (Millions)” through the 'Dashboard Indicator' trigger.

Formula Example
Rating * (1 + If(HasTrigger("Agenda Compliance","Performance"),
If(GetTrigger("Agenda Compliance","Performance") <= 0.699,
-0.1,
If(GetTrigger("Agenda Compliance","Performance") <= 0.9 && GetTrigger("Agenda Compliance","Performance") >= 0.7, -0.7,
If(GetTrigger("Agenda Compliance","Performance") <= 0.99, -0.05, 0))), 0)) * GetTrigger("Bonus","Actual")
The first If checks if the performance measure for the agenda compliance trigger exists in the panel, if it does not exist, the value used in the calculation will be 0, if it exists, a new If is executed;
The other If checks if the performance of agenda compliance is less or equal to 0.6999, if this condition is true, the value used in the calculation will be -0.1, otherwise, the formula checks if this performance is between 0, 7 and 0.9, if it is, the value used in the calculation will be -0.07, otherwise, the formula checks if the performance is less or equal to 0.99, if it is, the value used in the calculation will be -0, 05, otherwise the value used in the calculation will be 0.
The value of this expression is added to the value 1, this result is multiplied by the previously calculated panel score. This can cause the previously calculated grade to be decreased if the performance of the Staff Compliance trigger is below 100. Then, the new grade is multiplied by the Real of the indicator related to the Bonus trigger, this last case is probably a bonus reference (value).
Example Scenario:
Given that a panel exists under the following conditions:
- This panel has grade 3
- This panel has the Agenda Compliance trigger
- The performance of this trigger is 0.8
- This panel has the Bonus trigger and theperformance of this trigger is 1.5
- When the formula is executed, the panel grade should become 4.185
Conclusion
Separating the Panel Formula and the Contract Formula provides significant flexibility to the Results Program, allowing organizations to adjust both the overall panel behavior and the detailed contract-level calculations.
This guide offers a clear and updated overview of how formulas can be used to adapt the Results Program to the specific needs of each organization.
Comments
0 comments
Article is closed for comments.