Symptom
In this article we outline the process of using Variable Pay salary earnings table.
**Image/data in this KBA is from SAP internal systems, sample data, or demo systems. Any resemblance to real data is purely coincidental**
Environment
- SAP SuccessFactors HXM Suite
- SAP SuccessFactors Variable Pay
Resolution
In this section we walk through the process of enabling a salary earnings table, what this would like look as well as looking at various outcomes when using different configuration options.
Configuration Overview - Annualization "TRUE"
From Plan Setup go to Settings> Set Bonus Calculation> Basis Calculation Equation.
From the available drop-down menu select "Employment history from EC or imported column from Employee History file".
Select "Salary/Earnings and bonus target % derived from job info".
Select "No" next to the "Eligible salary/earnings considered as annualized for the program" for this example.
We will also derive our target percent from a custom-double column which is maintained within Employee Central: Compensation Information.
This is a requirement to calculate basis.
Click on "Example import file" to download a blank copy of the earnings table. In this file, we have the following columns.
- userID - User ID used to map against employee history
- startDate - Start date to map against assignment start date in the employee history
- endDate - End date to map against assignment end date in the employee history
- currencyCode - Code for the target amount
- bonusTarget - Target amount
- annualized - Should the target bonus be annualised or not
These columns need to be populated to align with user data from employee history.
Note
In this example we have populated the following table for sample user. Note this is based on 5 decimal places, so using a smaller decimal precision will impact the outcome.
userID | startDate | endDate | currencyCode | bonusTarget | annualized |
sampleUser | 01/01/2021 | 31/01/2021 | EUR | 49999 | TRUE |
sampleUser | 01/02/2021 | 31/12/2021 | EUR | 12254 | TRUE |
The template bonus start/end date is 01/01/2021 - 31/12/2021. This is maintained within Plan Setup> Settings.
Based on the selections we have made from the basis equation page and the earnings table we've imported, so we would expect to see the following within employee history.
Row | User ID | Assignment Start Date | Assignment End Date | Assignment Bonus Target | Proration | Assignment Basis | Target % | Assignment Target Amount |
1 | sampleUser | 01/01/2021 | 31/01/2021 | 49999 | 0.08493 | 9999.8 | 20 | 849.283014 |
2 | sampleUser | 01/02/2021 | 31/12/2021 | 12254 | 0.91507 | 2250.8 | 20 | 2242.653556 |
The following is a breakdown of this sample calculation taking into account annualization is TRUE for each assignment per the imported table.
- Proration
Calculation for this is (endDate - startDate +1) / (Template Bonus End date - Template Bonus Start Date +1)
Note
The proration value which is being calculated is the start/end dates of the earnings table and NOT the employee history assignment start/end dates.
Please refer to VRP-12026 where this was corrected following a defect.
Assignment One
endDate (31/01/2021) - startDate (01/01/2021) +1 / Template Bonus End date (31/01/2021) - Template Bonus Start Date (01/01/2021) +1
Outcome = 0.08493%
Assignment Two
endDate (31/12/2021) - startDate (01/02/2021) +1 / Template Bonus End date (31/01/2021) - Template Bonus Start Date (01/01/2021) +1
Outcome = 0.91507%
- Assignment Basis
Since we have annualized "TRUE" in our table, the calculation for this would be bonusTarget*target%
Assignment One
bonusTarget (49999)*target% (20)
Outcome = 9999.8
Assignment Two
bonusTarget (12254)*target% (20)
Outcome = 2450.8
- Assignment Target Amount
This calculation depends on what comes into basis. So, this would be Proration*Assignment Basis
Assignment One
Proration (0.08493)*Assignment Basis (9999.8)
Outcome = 849.283014
Assignment Two
Proration (0.091507)*Assignment Basis (2450.8)
Outcome = 2242.653556
Configuration Overview - Annualization "FALSE"
Using the same dates and values used in the above example, we update the earnings table for this user and update annualized to "FALSE".
userID | startDate | endDate | currencyCode | bonusTarget | annualized |
sampleUser | 01/01/2021 | 31/01/2021 | EUR | 49999 | FALSE |
sampleUser | 01/02/2021 | 31/12/2021 | EUR | 12254 | FALSE |
From the employee history, we will see the following values.
Row | User ID | Assignment Start Date | Assignment End Date | Assignment Bonus Target | Proration | Assignment Basis | Target % | Assignment Target Amount |
1 | sampleUser | 01/01/2021 | 31/01/2021 | 49999 | 0.08493 | 117741.6696 | 20 | 9999.80 |
2 | sampleUser | 01/02/2021 | 31/12/2021 | 12254 | 0.91507 | 267826.5051 | 20 | 2450.80 |
As we can see above, the calculation for Assignment Basis column has changed as well as the Assignment Target Amount.
This is due to the change in calculation which is triggered from updating annualized "TRUE" to "FALSE".
- Assignment Basis
So, with this now set as FALSE the following calculation will happen since we will now take into consideration the proration.
Please also note there is no change in how the assignment proration is being calculated, this remains the same.
bonusTarget*Target%/Proration
Assignment One
bonusTarget (49999)*target% (20)/Proration (0.08493)
Outcome = 117741.6696
Assignment Two
bonusTarget (12254)*target% (20)/Proration (0.91507)
Outcome = 267826.5051
- Assignment Target Amount
Also note, Assignment Target Amount has also updated based on this change in basis as the calculation here would be Proration*Assignment Basis.
Assignment One
Proration (0.08493)*Assignment Basis (11774166.96)
Outcome = 9999.80
Assignment Two
Proration (0.91507)*Assignment Basis (267826.5051)
Outcome = 2450.80
Configuration Overview - Annualization "FALSE" (When merging similar records)
When merging records and annualization is FALSE, records in the history will be merged together and the system will first look for the earliest start date and align with the salary earnings table.
From that, the system will then obtain the latest end date from employee history and align with the salary earnings table.
userId | startDate | endDate | currencyCode | bonusTarget | annualized |
Sample User | 01/01/2021 | 28/02/2021 | USD | 49999 | FALSE |
Sample User | 01/03/2021 | 18/07/2021 | USD | 12254 | FALSE |
Sample User | 19/07/2021 | 31/12/2021 | USD | 14444 | FALSE |
Below is what our history looks like before merging.
Row | User ID | Assignment Start Date | Assignment End Date | Assignment Bonus | Proration | Assignment Basis | Target % | Assignment Target Amount |
1 | Sample User | 01/01/2021 | 28/02/2021 | 49999 | 0.16 | 62498.75 | 20% | 9999.8 |
2 | Sample User | 01/03/2021 | 12/06/2021 | 12254 | 0.38 | 6449.5 | 20% | 2450.8 |
3 | Sample User | 13/06/2021 | 30/06/2021 | 12254 | 0.38 | 6449.5 | 20% | 2450.8 |
4 | Sample User | 01/07/2021 | 18/07/2021 | 12254 | 0.38 | 6449.5 | 20% | 2450.8 |
5 | Sample User | 19/07/2021 | 31/12/2021 | 14444 | 0.45 | 6419.6 | 20% | 2888.8 |
When importing history with merging enabled, we will see the following.
Row | User ID | Assignment Start Date | Assignment End Date | Assignment Bonus | Proration | Assignment Basis | Target % | Assignment Target Amount |
1 | Sample User | 01/01/2021 | 28/02/2021 | 49999 | 0.16 | 62498.75 | 20% | 9999.8 |
2 | Sample User | 01/03/2021 | 18/07/2021 | 12254 | 0.38 | 6449.5 | 20% | 2450.8 |
3 | Sample User | 19/07/2021 | 31/12/2021 | 14444 | 0.45 | 6419.6 | 20% | 2888.8 |
As we can see, rows 3 and 4 have merged to give us one assignment record. Due to the dates in the history, these have been aligned to the second entry within the earnings table.
Additional information
- Should the annualized column be blank (NULL) within the earnings table, then the range will be based on the "Yes" or "No" in the below section of Set Bonus Calculation.
Yes = When the annualized column is BLANK within the earnings table, it will be considered as annualized "TRUE"
No = When the annualized column is BLANK within the earnings table, it will be considered as annualized "FALSE"
Note
This selection will be ignored for all entries containing a value within the annualized column.
- If the table is changed once history is already available, calculation needs to be executed. If not, please import history again.
- When using different number formatting you may see differences in assignment basis. So it is important to understand the calculations and the decimals you are using.
For example, above we when using annualized FALSE we have 49999*20/0.08493=117741.6696 on 5 places. Should we use 2, then it would show 49999*20/0.08=124997.5.
Keywords
salary earnings table, point in time calc, data file, salary table, annualisation, annualized TRUE, annualized FALSE, Eligible salary/earnings considered as annualized for the program, salary/earnings, VRP-10828, VRP-12026 , KBA , LOD-SF-VRP , Variable Pay Programs , LOD-SF-VRP-BON , Bonus, calculating bonus, payouts, etc. , LOD-SF-VRP-HIS , History Data, History Processor , How To