Hope you had a great start to the New Year 2022. I get mesmerized every time I see a new solution realized with the capabilities of SAP SuccessFactors Time Management together with the SAP SuccessFactors platform tools like Integration Center, Metadata Framework, Intelligent Services and many more 😊.
This blog post is about Bradford Factor and its use in measuring worker absenteeism and sending notifications from the SAP SuccessFactors system using the existing functionalities the SAP SuccessFactors solution provides.
The Bradford Factor is a simple formula that allows companies to apply a relative weighting to employee unplanned absences such as Sickness, Doctor’s appointments, emergency childcare, etc. The Bradford Factor supports the principle that repeat absences have a greater operational impact than long term illnesses. The Bradford Factor does not consider any specific factors such as disability, or a short term, but recurring illness causing sporadic absenteeism over a period of weeks, but is useful for the early identification of concerns, or as a tracking tool.
For many employers, absenteeism can be a crucial issue that affects both performance and company culture. That is why knowing more about it, and how to measure it, is top-of-mind for so many. It is quite common to determine and track the Bradford Factor scores in some of UK organizations.
How do you calculate your Bradford score?
The formula is as follows:
S² × D = B
Let’s break down each of these variables:
S stands for ‘Spells’, which are absences over a set period
D is the total number of “Days” of absence over the same period
B is the resulting Bradford Factor
Let’s say, employee gets the flu, and is off sick for two days. Later that year, they get food poisoning and need to take a further five more days off work. In this instance, the formula would look like this:
2 x 2 x 7 = 28
The Bradford Factor allows managers to monitor absenteeism during any set period. Many companies identify a running year as an acceptable period.
Bradford Factor Scales
Employers have a responsibility to ensure that staff understand the Bradford Factor calculator and how it is applied.
The scales can be different per employer and depending on the scale, the manager should be alerted about the Bradford Factor if it exceeds a certain limit.
Here is just an example of some limits which can be used to send the notifications/alerts from SAP SuccessFactors system.
Concern (BF 45): Sufficient days for a manager to show concern and advice on possible disciplinary of financial actions, should more absences occur during an identified period.
Concern (BF 100): Sufficient days for a manager to start disciplinary action (oral warning, written warning, formal monitoring etc)
Concern (BF 900): Sufficient days for a manager to consider dismissal
Please note that figures given are for illustration purposes only and different companies will apply different thresholds.
The requirement for most customers is to automatically calculate the Bradford Factor score using EC Time Management and to be able to send alerts/notifications to the managers depending on the thresholds.
With the help of the following capabilities in SAP SuccessFactors, you can easily calculate the Bradford Factor automatically.
Custom MDF Object
Business Rules in EC Time Management
EC Alerts and Notifications Framework
Let’s look at how you can implement the Bradford Factor calculation and send alerts.
Step 1: Create a custom MDF object
The custom MDF object has externalCode which is mapped to the userID field.
The BF_value field stores the value of the calculated Bradford Factor.
The start and end dates is the period for which the Bradford Factor value is calculated.
Step 2: Create an On Save rule for calculating Bradford Factor. Attach this rule to the save rule of your custom MDF object.
Using the below business rule, the Bradford Factor is calculated per user with the formula S2× D = B where,
S = Number of occurrences of absences
D = Number of absent days
In this example, I have excluded open-ended absences(Absence with Undetermined end date) as they should not be counted in the number of absence count.
The rule takes a rolling period of 12 months back from today’s date to get the absences.
Step 3: Create a Post Save rule for sending Alert. Attach this rule to the post save rule of your custom MDF object.
This rule sends alerts depending on the Bradford Factor thresholds. I am sending 3 alerts for >100 , >200 and >400 values.
You can specify more conditions as per your needs.
Alert message can be upto 4000 characters long. You can increase the limit of the field “Alert Description” in the MDF object “Alert Message”.
Don’t forget to increase the limit of also the Localized Description.
Step 4: Set up the Integration Center Job for creating the custom MDF object data and triggering its rules
This is the heart of the whole process. Integration Center automates the process and helps you schedule the job, trigger the calculation of Bradford Factor and send the notifications at a certain frequency such as Monthly, Quarterly or Yearly.
First: Create a User Scheduled Integration Center Report
Second: Select starting entity as “User” and the “Custom MDF” object as the target entity. Drag and drop the user ID from the User entity to External Code (User field) of Custom MDF.
Also, ensure that you use operation as Upsert Single/Multiple so that it updates the records of same user the next time.
Third: It is important to select the filters such that you don’t perform the calculation for the whole user group and restrict it only to the required legal entities, Business Units or Departments. I have restricted it to one particular time profile belonging to one of the UK legal entities.
This is how the navigation route looks like from the User entity to Time Profile.
Fourth: Schedule the job to send monthly notifications or only once per quarter. Decide this frequency based on your needs.
Note: It is not recommended to schedule the Job daily due to performance impact it can create.
You are now all set to run the Integration Center job and test it.
Testing the above solution
This user has 3 sick leaves in year 2021 and an open-ended absence from Dec 6th, 2021.
S = 3 absences (Open-ended absence is excluded from calculation as per the rule)
D = 4+6+5 = 15 days of absence
BF = 3*3*15 = 135
Let’s run the integration and check the value.
After running the integration, the custom MDF object was updated with Bradford Factor value of 135 as expected and also sent a notification to the manager.
This is the email notification the manager of the employee receives.
The manager can also see the notifications under the Take Action tile in the SAP SuccessFactors homepage.
Now, let me close the open-ended absence such that this absence should be considered for calculation.
Now there are 4 absences with a total of 35 days.
Bradford Factor should be calculated as follows:
Let’s run the integration and check. As expected, its updated to 560.
And now an email notification is sent saying the Bradford Factor value is more than 400.
And the To-do actions tile also gets another To-do for the manager.
In this blog post, you’ve seen how to send Bradford Factor notifications from within the SAP SuccessFactors system. This blog only describes a very lean solution with SAP SuccessFactors standard tools. You can of course elaborate this implementation as per your needs. You could for example integrate this with your internal case management tool in case the manager is required to act on the case where Bradford Factor value is above the followed benchmark in your company. You could even display the Bradford Factor in a custom portlet in the Employee Central People Profile.
Lastly, a really cool thing about this solution is that you can build a Report Story using SAP SuccessFactors People Analytics "Report Center" and compare the Bradford Factor value against minimum recommended thresholds. For more information, you can check this documentation on how to build reports on custom MDF objects using Stories in People Analytics.
Hope you liked reading this blog and will make use of it in your implementations 🙂