We’re experiencing an issue with a custom payroll report that uses calculated fields to display pay group assignments. When employees are transferred to different departments via staffing events, the report continues showing their old pay group instead of the updated one.
The calculated field is set up to pull the current pay group from the worker’s primary position, but it seems to be caching or referencing stale data. We’ve verified that the pay group assignment is correctly updated in the employee profile and shows properly in the UI, but the report output is inconsistent.
This is causing significant issues for our payroll team who rely on this report for processing. Has anyone encountered similar behavior with calculated fields in custom reports after staffing events?
The issue you’re describing stems from how calculated fields in Report Writer interact with effective-dated data after staffing events. Let me address all three aspects of your problem:
Calculated Field Configuration Issue:
Your calculated field is likely missing the proper effective date context. When you reference Worker > Primary Position > Pay Group in a calculated field, you need to explicitly specify the effective date parameter. Without it, the calculation engine may default to the date when the report definition was created or last modified, not the current date. Modify your calculated field formula to include an ‘As of Date’ parameter set to ‘Today’ or use the prompt-based effective date if you want flexibility.
Staffing Event Processing Impact:
Staffing events create new effective-dated rows in Workday’s data structure. Your calculated field must be configured to recognize these new rows. If you’re using a simple reference path without effective dating, it will continue reading from the original effective-dated row. This explains why the UI shows correct data (it defaults to current effective date) but your report doesn’t.
Resolution Steps:
Edit your custom report in Report Writer
Navigate to the calculated field definition for Pay Group
Add an effective date filter: Set it to reference ‘Current Date’ or create a report prompt for date flexibility
If using a complex formula, wrap your Pay Group reference with an effective date function: `Effective_Date_Worker_Position_Pay_Group(Worker, Today())
Test the modified report with employees who have recent staffing events
Consider adding a secondary field that shows the ‘Effective Date of Pay Group Assignment’ to help validate the data is current
Additional Recommendation:
For critical payroll reports, I recommend using a business process scheduled report that runs after your staffing event processing window completes. This ensures all calculated fields are evaluated with fresh data. Also, review your Report Writer cache settings - if caching is enabled at the report level, disable it for reports that need real-time staffing data.
This approach has resolved similar issues for multiple clients running payroll reports with calculated fields on R1 2023 and later versions.
This draft is based on general Workday knowledge. It has not been verified against your specific version and environment. Practitioners: verify the steps and share your experience below.
I’ve seen this before. The issue is likely related to how the calculated field references the pay group data source. When you use calculated fields that pull from position-related data, they sometimes don’t automatically refresh after staffing events complete.
Check your report’s data source configuration - specifically whether you’re using the Worker object directly or going through Position. If you’re using a direct Worker reference, try switching to use the Position-based path instead, as that tends to pick up staffing changes more reliably.
Are you running the report immediately after the staffing event is processed? There can be a processing delay where the calculated field hasn’t been recalculated yet. Workday’s calculation engine runs on a schedule, and complex calculated fields might not update in real-time. Try scheduling the report to run a few hours after your typical staffing event processing window.
Thanks for the responses. We typically run the report the day after staffing events are processed, so timing shouldn’t be the issue. I checked the data source configuration and we are using the Worker object directly with a calculated field formula that references Worker > Primary Position > Pay Group.
Interestingly, when I run a test with the standard Position report, it shows the correct updated pay group immediately. It’s only our custom report with the calculated field that lags behind.
Tested this on Workday 2023R2 and adding the “Current Date” effective date parameter to the calculated field referencing Worker > Primary Position > Pay Group immediately resolved the stale assignment display.
This sounds like a calculated field caching issue. In Report Writer, calculated fields can sometimes cache their results based on when they were last evaluated. If your report is saved as a scheduled instance, the calculated field might be using cached values from the previous run.
Try creating a new version of the report definition or force a recalculation by modifying the calculated field formula slightly - even just adding a comment or extra space. This forces Workday to treat it as a new calculation and clear any cached values. Also check if your report has any prompt-based filters that might be affecting the data refresh behavior.
I experienced something similar last year. The root cause was that our calculated field was using an effective-dated field reference without specifying the effective date parameter correctly. When staffing events create new effective-dated rows, the calculated field needs to explicitly reference ‘as of today’ or it might pull historical data.
Check your calculated field formula - if you’re referencing Pay Group without an explicit effective date context, add one. Something like referencing the field with an ‘as of current date’ parameter should resolve it.