Technical Articles
Compensation Eligibility Rules : lesser-known rule conditions and overall limitations
Overview
This blog post will present some lesser known compensation eligibility rules configuration options that can prevent many manual workarounds for customers.
All business rules below have been implemented successfully in environments that are now live. Please comment below with comments or better alternative ideas to meet a specific customer requirement.
In the appendix at the bottom of this post we added information about business rules limitations when applied to Compensation eligibility.
Please note :
- In case of long runtimes (10+ hours) for the “Apply eligibility rule” or “Mass Update Worksheets” jobs please use the MDF based design for eligibility rules documented in the following post instead of regular Compensation module eligibility rules : Streamline the performance of Mass Update Worksheets jobs by using automated MDF-based eligibility rules
- As much as these are tips and tricks to meet complex requirements we would suggest keeping rules as simple as possible. We would advise against building a rule like this for example which is both hard to understand (hence hard to edit by a system administrator if needed) and also could potentially be too long to handle as a server job because it needs to calculate something inside the rule to then compare the outcome to each position in the system (although to be fully transparent in this specific case this complex rule applied much faster than the original leading practice build..). We should also keep in mind that the larger the number of employees in an environment the longer eligibility rules take to finish running.
Rule 1 – include users if :
- {they are active} OR {they are retired AND at termination date they are age 55 or over AND their age and service is 70 or over}
(credit Skip Jones)
Rule 2 – include users if :
- {they have Senior in their Job Title}
Variant – {include users if they have “Pending Retirement” in their Local Job Title} :
(credit Skip Jones)
Rule 3 – exclude users if :
- {they had 10 consecutive days of leave of absence during the fiscal year}
Note : Please find below a recording for this rule as setting it up is a bit more complicated than others.
Please find below another rule also starting with “Get Absence in Days For Period” function but with a twist (credit Nagesh Polu for sharing it on Linkedin) :
Rule 4 – exclude users if :
- {they were on leave of absence for more than a day during the year}
Rule 5 – exclude users if :
- They DON’T have pay component 1111 in Comp Info.
Rule 6 – exclude users if
- They have pay component 1111 in Comp Info.
Rule 7 (Using RBP for eligibility) – include users if :
- {they are in the RBP permission group called “Compensation Eligible 2019”}
Note : in this example the “Compensation Eligible 2019” RBP group is a “static” group where userIDs were uploaded via CSV into the static group.
(credit Skip Jones)
Rule 8 – exclude users if :
- {they were hired less than 12 months ago}
(credit Alan Carbajal)
APPENDIX
What are the known limitations of Compensation eligibility rules ?
- The date used in compensation eligibility rules must always be BEFORE the template’s EC effective date. Example : if a template’s EC effective date is 12/31/2019, we cannot create a rule that will exclude all employees with event reason TRANSFER on or after 1/1/2020, but we can exclude employees with event reason TRANSFER on or after 6/1/2019. To exclude all employees with event reason TRANSFER on or after 1/1/2020 while keeping our template’s effective date as 12/31/2019, we would need to use a workaround like the one I wrote about in this blog post : https://blogs.sap.com/2020/06/03/managing-terminated-and-leave-of-absence-employees-in-variable-pay-eligibility-rules/
- Cross portlet rules (looking at both information from Job Info and from Comp Info in AND or OR conditions) are not supported and will return a red error message when running the rules. In order to use Compensation portlet data in compensation eligibility rules, it is recommended to use the following path : JobInfo > Employment Details > Compensation (see Rules 5 and 6 above).
- It is not possible to compare in a rule the value from the same field at different dates such as : “If the employee had no increase in 2 years”. This would require us look at the salary from 2 years ago to compare it with the current salary which is not possible. To meet this requirement we would need the EC team to add a field on Comp Info called “Date of last salary increase” with a business rule to update it on Save (see this blog for design options)
- Some Pay Components attributes cannot be used in compensation eligibility rules. For example “currency” will NOT work but “value” will.
- EC Compa-Ratio, Range Penetration and Time in Position cannot be used in compensation eligibility rules because they are values calculated “on the fly” in EC and not stored on the employee’s profile. All fields “on the fly” (or “transient” to use the proper EC name) cannot be used in eligibility rules.
- To use Performance Ratings (overall manual rating) in Compensation Eligibility Rules, please see this post : https://blogs.sap.com/2022/05/27/how-to-use-performance-ratings-in-compensation-eligibility-rules/
Thanks a lot Xavier that's really useful to see unusual configurations of business rules for eligibility! I like very much the last ones around # of days of unpaid leaves... if only customers were making the effort of capturing these events more accurately in EC!! That would help a lot! 🙂
Thank you Nicolas, I am only at the beginning of my exploration of what we can achieve with all those "GET" and other initially-built-for-EC functions. It's great news for us in Compensation that they can also be used for our module. What I've come to realize so far during my testing is that we can only use the ones that have a "User ID" field in their parameters (screenshot below). I will test more functions in the upcoming weeks and will update this post if I am able to make additional ones work.
Hi Xavier,
Thanks for the wonderful article.
Had one question here. In case, we want employee to be included for variable pay for duration the employee has worked during the financial year and exclude the duration when the employee is on unpaid leave, is it possible.
For eg.
Variable pay period - 1st july 2021 to 30th June 2022.
Employee record for 1st july 2021 - 30th sep 2021 _ Salary 100,000
Employee record for 1st October 2021 - 31st Dec 2021 _ Salary 150,000
Employee record from 1st Jan 2022 till 30th June 2022 : Unpaid leave.
Requirement is that the employee's variable pay should be calculated for the time he was working i.e from 1st July 2021 till 31st Dec 2021 considering variations in salary in first 3 month and next 3 months and should exclude the record from1st Jan 2022, when employee is on unpaid leave.
Is this achievable?
Thanks
Shiva
Hi Shiva Shukla
Yes it is possible, most customers have these kinds of set up that are configured at the Record Eligibility rule level which is mandatory for any EC integrated Variable Pay template.
You can look at recording #1 here for more information on the two types of Record eligibility rules : https://blogs.sap.com/2021/03/11/3-key-configuration-setups-to-master-in-variable-pay/
All the best,
Xavier
Thanks a Lot Xavier for sharing this.
It is definitely very very helpful and the way you have explained everything with the examples gives so much clarity. Thanks again. Really appreciate your prompt response.
Thanks
Shiva
Hi Xavier,
Thank you for all the articles provided. I have referred to all the articles you mentioned.
In VRP, what if LOA overlapped with salary change in comp info?
Eg: LOA was in 1 Jan to 31 July and a salary change happened in this period.
Wouldn't the rule for trigerring record adding still consider salary change in comp info?
So should care be taken that these records don't overlap? If there are many employees that way it is painful right?
Regards,
Lakshmi R
Hi Lakshmi Ramaswamy
Sorry for the late reply.
The records rule takes priority over the salary changes. So if you say "no LOA record" in the main VP record rule, then even if someone had a salary change during that time it won't get picked up.
Using your example with a twist. If EC is as below :
AND your main VP record rule says "Is not equal to LOA" (it's always an inclusion rule) then in Variable Pay employee history after the job runs you will get :
Hope this helps,
All the best,
Xavier