Overview
A calculation modifier condition is a reusable rule that must be true for a calculation modifier to be applied.
Conditions are created once on this screen and then attached to one or more modifiers through the modifier’s Additional Condition(s) field. When a modifier has conditions attached, every attached condition must pass at calculation time, otherwise the modifier is skipped for that product.
A condition can test one of three things:
- Question - the answer given to an appointment or job question.
- Product Attribute - an attribute value of the product being calculated.
- Calculation - the already-computed result of another calculation type.
Note: If the tested question is unanswered, or the product does not have the
tested attribute, the condition fails and the modifier is not applied.
Adding a Modifier Condition
- Navigate to the Calculation Modifier Condition Management screen through Calculations Calculation Modifier Conditions
- Fill in the configuration options
- Select Add Calculation Modifier Condition
- Attach the condition to the relevant modifier(s) via the Additional Condition(s) field on the Calculation Modifiers screen
Updating a Modifier Condition
- Navigate to the Calculation Modifier Condition Management screen through Calculations Calculation Modifier Conditions
- Select the Calculation Modifier Condition
- Update the configuration options
- Select Update Calculation Modifier Condition
Important: A condition can be attached to many modifiers - updating it
changes the behaviour of every modifier that uses it (on the next recalculation).
Configuration Options
| Configuration | Description |
|---|---|
| Calculation Modifier Condition ID | A system-generated identifier |
| Name | A description of the condition - shown in the Additional Condition(s) picker on the Calculation Modifier screen |
| Match on | What the condition tests: a Question answer, a Product Attribute of the product being calculated, or the result of another Calculation |
| Match Question | For Question: the question whose answer is tested. For list questions the answer’s stored value is compared. If the question is unanswered the modifier is skipped |
| Match Product Attribute | For Product Attribute: the attribute whose value is tested. If the product does not have this attribute the modifier is skipped |
| Calculation Type | For Calculation: the calculation type whose already-computed result is tested |
| Calculation Match | Which result of the selected calculation type to test: the Primary or Secondary result, taken per Product (per unit), per Block (area subtotal), or for the whole Appointment |
| Condition | How the tested value is compared: Equal to, Greater than, Greater than or equal to, Less than, Less than or equal to, or Range |
| Match Field | Leave as Custom to compare against the Value below. Selecting the activity date option instead compares the tested value against the appointment’s activity date (its expected installation date, falling back to the scheduled date) formatted as YYYYMMDD - useful for testing date questions or date attributes against the appointment date |
| Value | The value the tested answer or attribute is compared with (case-insensitive). Not used when Condition is Range or when Match Field is the activity date |
| Opening Range | Lower bound when Condition is Range - the tested value must be greater than this |
| Closing Range | Upper bound when Condition is Range - the tested value must be less than or equal to this |
Notes on comparisons
- Comparisons are case-insensitive and ignore leading/trailing spaces.
- A value of
0is valid and can be matched - only an empty answer or missing attribute causes the modifier to be skipped. - When testing another calculation’s result, the tested calculation type must run before the calculation whose modifier carries the condition - give it a lower Calculation Run Order on the Calculation Types screen.
- Dates compare correctly because they are formatted as YYYYMMDD (e.g. a date attribute
20260805is greater than or equal to20260101).