Compensation Planning is an objective way of rewarding employees based on the performance and retaining valuable employees. Compensation Planning focuses on how a company allocates salary, bonus, stocks and one time lump sum disbursements. Employee Central captures information about a company’s organization, pay, job structure and employees.
Compensation can be implemented as a standalone module in SuccessFactors. If Employee central is also implemented, then Compensation plan template can be configured to fetch employee data from Employee central.
1. Enabling integration
Preparing the Compensation Plan Template for Integration
The compensation plan template is EC-enabled when it includes the attribute ‘effectiveDate’ in the comp-config section. The data as on the ‘effectiveDate’ would be fetched from EC into the Compensation form.
<comp-config showFormRatingAs=”number-text” functionalCurrencyCode=”EUR”
baseCurrencyView=”localCurrencyCentric” autoSyncP4PData=”true”
effectiveDate=”2015-04-01″ >
With 1505 release, this option is available in compensation form template ‘Settings’.
The effective date would be displayed on the compensation form as shown in the sample screenshot below.
i. Hybrid mode
A compensation plan template can be hybrid or non-hybrid. A hybrid template is used when a company has some users that are not in Employee Central. It is NOT possible to select some data from Employee Central and the remaining data from the user directory (UDF) for the same user. In this mode, both importkey and mapping with EC field has to be maintained. System automatically fetches the data for EC employees from EC and that for non-EC employees from the user directory (UDF) This mode is not recommended.
<comp-config showFormRatingAs=”number-text” functionalCurrencyCode=”EUR”
baseCurrencyView=”localCurrencyCentric” autoSyncP4PData=”true”
effectiveDate=”2015-01-01″ isHybridMode=”true”>
ii. Non-hybrid mode
If the tag ‘isHybridMode’ is not set to ‘TRUE’, it is non-hybrid mode. All employee data must come from EC. It is not possible to have a combination of data sources. The data source is always EC. ‘importkey’ tag is not supported in custom fields and hence they should be removed from the template. This includes importkeys defined in the Budgets and Rating Source sections also. Data cannot be imported for any employee.
2. Mapping the fields to fetch information from Employee Central to Compensation
Compensation can currently retrieve data from the following Employee Central components
- jobInfo
- compInfo
- payComponentRecurring
- payComponentNonRecurring
- personalInfo
- employmentInfo
Compensation fields can be mapped to individual pay components, a pay component group or to any of the other EC components mentioned above. Related salary fields (e.g. curSalary, salaryRateType, salaryRateUnits, localCurrencyCode etc.) must be mapped from the same recurring pay component.
The xml code to map a field is <comp-field-definition……………………/>
Complete code is given below.
<comp-field-definition id=”salaryType” isCustomField=”false” isVisible=”true”
useFor=”salary” importKey=”SALARYTYPE” readOnly=”true” hidePercentage=”false”
hideAmount=”false” percentageReadOnly=”false” reloadable=”true”>
<comp-field-label><![CDATA[Salary Type]]></comp-field-label>
<comp-ect-input-field-map componentType=”payComponentRecurring” componentCode=”Base Salary” fieldName=”frequency”/>
</comp-field-definition>
In this mapping,
- componentType specifies the type of EC component from which the data will be retrieved.
- componentCode is only valid for the component types payComponentRecurring, payComponentNonRecurring and payComponentGroup. It will be ignored for all other component types.
- fieldName is the EC hris-field from which data will be retrieved.
Mapping for paygrade is given below.
<comp-field-definition id=”payGrade” isCustomField=”false” isVisible=”true”
useFor=”salary” importKey=”PAYGRADE” readOnly=”false” hidePercentage=”false”
hideAmount=”false” percentageReadOnly=”false” reloadable=”false” >
<comp-field-label><![CDATA[Pay Grade]]></comp-field-label>
<comp-ect-input-field-map componentType=”jobInfo” fieldName=”pay-grade”/>
</comp-field-definition>
Referring to a Foundation object
It is possible to define mapping to a foundation object or a property of the foundation object. Mapping for Location is given below.
The mapping below, gives the location code
<comp-field-definition id=”CLOCATION” isCustomField=”true” isVisible=”true”
type=”string” useFor=”salary” readOnly=”true” hidePercentage=”false”
hideAmount=”false” percentageReadOnly=”false” reloadable=”false”>
<comp-field-label><![CDATA[Location]]></comp-field-label>
<comp-ect-input-field-map componentType=”jobInfo” fieldName=”location”/>
</comp-field-definition>
If the name of the location is required, then the code has to refer to the respective property of the foundation object.
<comp-ect-input-field-map componentType=”jobInfo” fieldName=”location.name”/>
Mapping PM rating (Performance management module is not implemented in SF)
In such case, PM rating has to be stored in a custom field in EC e.g. in ‘Employment Details’ portlet. Same is mapped in the rating source section in the form template.
<comp-rating-source useFor=”salary” form-id=”0″ is-default=”true”
completed-only=”false” use-calculated-rating=”false”
import-from-assignment=”false” scaleId=”Rating_scale”>
<comp-ect-input-field-map componentType=”employmentInfo” fieldName=”custom-double3″/>
Mapping PM rating from Performance management module in SF
In such case, PM form has to be linked to the Compensation template. The configuration in the instance as well as the xml code is given below.
<comp-rating-source useFor=”salary” form-id=”1000″ is-default=”true”
completed-only=”false” use-calculated-rating=”false” import-from-assignment=”false”
scaleId=”IntScale” ratingType=”overallPerformance”>
Proration Configuration
For configuring proration based on hire date, hire date from EC has to be mapped to the standard ‘Salary Proration Start Date’ field in the template. No mapping required for ‘Salary Proration End Date’ or ‘Prorating’ fields. Details are given below.
<comp-field-definition id=”salaryProratingStartDate” isCustomField=”false” isVisible=”false” useFor=”salary” readOnly=”true” hidePercentage=”false”
hideAmount=”false” percentageReadOnly=”false” reloadable=”false” displayOrder=”23″ exportable=”false”>
<comp-field-label><![CDATA[Proration Start Date]]></comp-field-label>
<comp-ect-input-field-map componentType=”employmentInfo” fieldName=”start-date”/>
</comp-field-definition>
For proration based on percentage, the percentage has to be stored in Employee central and mapped to the standard ‘Prorating’ field in the template.
3. Eligibility rules
For the EC integrated compensation template, the eligibility rules are created as business rules in EC. For creating eligibility rules go to Admin Tools > Company Settings > Configure Business Rules
Rules can be defined at –
- Compensation Plan Level – At the Plan level, compensation rules define who should not be part of the plan. By default, Compensation assumes all users are eligible to be part of the plan.
- Component Level – At the Component level, rules can be defined to apply to the Salary, Bonus, and Stock tab.
- Field Level – At the field level, rules can be applied to: promo, merit, extra, extra2, lumpSum, lumpSum2, stock, options, stockUnits, stockOther1, stockOther2, and stockOther3.
A rule that excludes employees based on hire date and employee class is given below. The field that determines the eligibility should be a part of the base object. The rule type should be ‘compensationEligibility’
This rule will be available in compensation plan template.
This rule will be available in compensation plan template.
4. Pay range (Pay matrix)
Pay range from Compensation as well as the pay range foundation object from EC can be used. Below setting has to be done for using the foundation object.
Attribute 1 and 2 are additional fields used for determining the pay range.
Pay range foundation object in EC
The pay ranges in EC are foundation objects. The pay range associations are used as pay range attributes in compensation. In the example given below, Geo Zone and Legal entity are the associations (attributes).
Corporate data model has the definition of the pay range. The associations can be modified in corporate data model. Paygrade should be the first association defined, followed by the other associations.
<hris-associations>
<association id=”id” multiplicity=”ONE_TO_ONE” destination-entity=”payGrade” required=”false”/>
<association id=”id” multiplicity=”ONE_TO_ONE” destination-entity=”geozone” required=”false”/>
<association id=”id” multiplicity=”ONE_TO_ONE” destination-entity=”company” required=”false”/>
</hris-associations>
5. Publishing Compensation data to Employee Central
Once the compensation process is complete, data can be published to EC. The compInfo record that is effective as of the publish date is the basis from which a new compInfo record is created. The new compInfo record copies information from the base record, modifying it according to the publishing configurations in the compensation template and user data in the compensation form. Final salary, merit, promotion, adjustment are stored in compensation form and updated in the compensation cycle. They are published to the recurring pay components. Lump sum is stored and edited in the form, and since it is a onetime payout, it is published as a non-recurring pay component.
Field mapping for publishing to EC
The section <comp-ect-output-component…………../> defines the mapping for publishing fields to EC. This code supports recurring and non-recurring pay components. A combination of the component type, component code, and effective date is used as a unique identifier for each recurring pay component. For non-recurring pay components, the pay-date is used.
Publishing recurring pay components
Sample code to publish new salary is given below.
<comp-ect-output-component componentType=”payComponentRecurring”
componentCode=”Base Salary” eventReason=”PAYMER” effectiveDate=”2015-07-01″>
<comp-hris-field-map>
<comp-field-id><![CDATA[finSalary]]></comp-field-id>
<hris-field-id><![CDATA[paycompvalue]]></hris-field-id>
</comp-hris-field-map>
</comp-ect-output-component>
Here
componentType specifies the pay component type (payComponentRecurring or payComponentNonRecurring)
componentCode specifies the pay component code. This code is not mandatory for recurring pay components. When not specified, the pay component which has the UsedforCompPlanning attribute set to COMP or BOTH is used.
eventReason specifies the reason for the change in compinfo record. This is not required for non-recurring pay components.
effectiveDate specifies the default start date of the new compinfo record (recurring pay components) and the pay date for the non-recurring pay components.
comp-hris-field-map specifies the mapping between compensation fields (comp-field-id) and employee central fields (hris-field-id).
The record created in EC is given below.
Publishing non-recurring pay components
Sample mapping for non recurring pay component is given below.
<comp-ect-output-component componentType=”payComponentNonRecurring”
componentCode=”SPOTBONUS” effectiveDate=”2015-08-15″>
<comp-hris-field-map>
<comp-field-id><![CDATA[lumpSum]]></comp-field-id>
<hris-field-id><![CDATA[value]]></hris-field-id>
</comp-hris-field-map>
</comp-ect-output-component>
The record created in EC is given below.
Steps to publish compensation data to EC
Once the compensation process is complete, the data can be published to EC. Click on ‘Complete Compensation Cycle’, then on ‘Publish Data’ and then on ‘Publish in Employee Central’. Click on the button ‘Check Form Status’. Screen similar to the one given below would be displayed. Click on ‘Submit’ button to publish the data from the completed forms to EC.
6. Field mapping tool for EC-Enabled Plans
With 1505 release, field mapping is possible from admin tools. Validation also happens and in case of an error, a message is displayed.
Mapping option is available in ‘Design Worksheet’ section, for all standard and custom fields.
EC category refers to the ‘componentType’ in the xml code.
EC Component Name refers to the ‘componentCode’ in the xml code.
EC field refers to the ‘fieldName’ in the xml code.