I’ve debugged this exact issue multiple times. You need to systematically address all three areas:
Calculated Field Logic Review:
Your formula structure is correct, but there are likely hidden issues. First, verify the actual field references. Navigate to the calculated field definition and use the “View Field References” option to confirm comp1, comp2, and comp3 are pointing to the correct competency rating fields. After go-live, sometimes field IDs change if data was migrated or templates were rebuilt.
<calculated_field name="Overall_Performance_Rating">
<formula>ROUND(((Competency_Leadership * 0.3) + (Competency_Technical * 0.3) + (Competency_Results * 0.4)), 2)</formula>
<data_type>decimal(4,2)</data_type>
<null_handling>treat_as_zero</null_handling>
</calculated_field>
Note I changed data_type to decimal(4,2) to accommodate ratings up to 99.99 and added explicit null handling.
Weighted Average Formula Validation:
The key issue is usually order of operations and data type conversions. Workday processes formulas left to right unless you use explicit parentheses. Your weights (0.3, 0.3, 0.4) need to be treated as decimals, not integers. Verify this by checking the weight values in a test scenario:
- If comp1=4, comp2=4, comp3=5: Expected result = (4×0.3)+(4×0.3)+(5×0.4) = 1.2+1.2+2.0 = 4.4
- If you’re getting 3.7, the weights might be stored as integers (0,0,0) or the competency scores are being truncated
Test by creating a simple calculated field that just displays comp1, comp2, and comp3 without any math. This will show you if the source data is correct.
Rounding and Data Type Checks:
This is where your 3.7 vs 4.1 discrepancy likely originates. Check these specific configurations:
-
Intermediate Rounding: If Workday is rounding each multiplication before adding them, you’ll get different results. Force the order with nested parentheses.
-
Data Type Mismatches: If competency scores are stored as integers (1,2,3,4,5) but your formula expects decimals, the multiplication might truncate. Cast them explicitly: DECIMAL(comp1) * 0.3
-
Rounding Method: Workday supports multiple rounding methods (standard, up, down, truncate). Check your calculated field configuration and ensure it’s set to standard mathematical rounding (ROUND function with 2 decimal places).
-
Display vs Stored Values: The review form might be displaying rounded values while the calculated field uses the full precision stored values. This can create apparent discrepancies.
Validation Steps:
Create a test performance review with known values:
- Set comp1=4.0, comp2=4.0, comp3=5.0
- Expected result: 4.4
- If you get anything else, the formula or data types are wrong
Enable debug logging in your tenant (if available) and run the calculation manually through the business process. The logs will show you the exact values being used in each calculation step.
Finally, check if there are any post-calculation business process steps that might be modifying the rating. Some implementations have calibration or normalization rules that adjust ratings after the initial calculation, which could explain the discrepancies.