Calculate Periodic Salary
Calculate the periodic salary of an employee based on the Salary Basis frequency. This frequency manages the salary of an employee and frequency of the payroll to which the employee is mapped.
You can find the periodic salary and pay frequency of the employee in Salary Details record.
-
The application converts only the amount that you have specified as salary while managing salary using salary basis to the periodic value.
-
If the salary structure in an organization has more than one salary component, the salary basis amount and periodic salary amount may not represent the complete salary.
-
Consider the frequency of the salary basis amount as the frequency of the salary basis used. For example, if annual salary basis is used, the salary basis amount will carry the annual value. If an hourly salary basis is used, the salary basis amount will carry the hourly value.
Do these steps to calculate the periodic salary as a frequency converted value of the salary basis amount:
-
On the Home page, click the Fast Formulas quick action under the My Client Groups tab.
-
Create a fast formula with these details:
-
Formula Name: Payroll Interface Periodic Salary Calculator
-
Formula Type: Extract Rule
-
Description: Formula to convert salary basis amount into periodic amount
-
Legislative Data Group: Leave this blank
-
-
Click Continue.
-
Here's a sample formula text to do conversions based on commonly used salary basis and pay frequencies. You can provide conversion logic in the fast formula according to your implementation requirements.
inputs are l_salary(text), l_PaymentFrequency(text), l_payroll_freq(text) if(l_payroll_freq= 'Annually' or l_payroll_freq= 'Year') then ( if(l_PaymentFrequency ='ANNUAL' ) then ( l_periodic_amount = to_number(l_salary) ) else if(l_PaymentFrequency ='HOURLY') then ( l_periodic_amount = to_number(l_salary)*365*8 ) else if(l_PaymentFrequency ='HOURLY2') then ( l_periodic_amount = to_number(l_salary)*365 ) else if(l_PaymentFrequency ='PERIOD') then ( l_periodic_amount = to_number(l_salary) ) else if(l_PaymentFrequency ='WEEK') then ( l_periodic_amount = to_number(l_salary)*52 ) else if(l_PaymentFrequency ='SEMI_MONTH') then ( l_periodic_amount = to_number(l_salary)*24 ) else if(l_PaymentFrequency ='BIWEEKLY') then ( l_periodic_amount = to_number(l_salary)*26 ) else if(l_PaymentFrequency ='MONTHLY') then ( l_periodic_amount = to_number(l_salary)*12 ) else ( l_periodic_amount = to_number(l_salary) ) ) else if(l_payroll_freq= 'Monthly Calendar' or l_payroll_freq= 'Calendar Month') then ( if(l_PaymentFrequency ='ANNUAL') then ( l_periodic_amount = (to_number(l_salary))/12 ) else if(l_PaymentFrequency ='HOURLY') then ( l_periodic_amount = (to_number(l_salary)*365*8)/12 ) else if(l_PaymentFrequency ='HOURLY2') then ( l_periodic_amount = (to_number(l_salary)*365)/12 ) else if(l_PaymentFrequency ='PERIOD') then ( l_periodic_amount = to_number(l_salary) ) else if(l_PaymentFrequency ='WEEK') then ( l_periodic_amount = ((to_number(l_salary)*52))/12 ) else if(l_PaymentFrequency ='SEMI_MONTH') then ( l_periodic_amount = ((to_number(l_salary)*24))/12) else if(l_PaymentFrequency ='BIWEEKLY') then ( l_periodic_amount = ((to_number(l_salary)*26))/12 ) else if(l_PaymentFrequency ='MONTHLY') then ( l_periodic_amount = (to_number(l_salary)*12)/12 ) else ( l_periodic_amount = to_number(l_salary) ) )else if(l_payroll_freq= 'Semimonthly' or l_payroll_freq= 'Semi-Month') then ( if(l_PaymentFrequency ='ANNUAL') then ( l_periodic_amount = to_number(l_salary)/24 ) else if(l_PaymentFrequency ='HOURLY') then ( l_periodic_amount = (to_number(l_salary)*365*8)/24 ) else if(l_PaymentFrequency ='HOURLY2') then ( l_periodic_amount = (to_number(l_salary)*365)/24 ) else if(l_PaymentFrequency ='PERIOD') then ( l_periodic_amount = to_number(l_salary) ) else if(l_PaymentFrequency ='WEEK') then ( l_periodic_amount = ((to_number(l_salary)*52))/24 ) else if(l_PaymentFrequency ='SEMI_MONTH') then ( l_periodic_amount = ((to_number(l_salary)*24))/24 ) else if(l_PaymentFrequency ='BIWEEKLY') then ( l_periodic_amount = ((to_number(l_salary)*26))/24 ) else if(l_PaymentFrequency ='MONTHLY') then ( l_periodic_amount = (to_number(l_salary)*12)/24 ) else ( l_periodic_amount = to_number(l_salary) ) ) else if( l_payroll_freq= 'Biweekly' or l_payroll_freq='Bi-Week') then ( if(l_PaymentFrequency ='ANNUAL') then ( l_periodic_amount = to_number(l_salary)/26 ) else if(l_PaymentFrequency ='HOURLY') then ( l_periodic_amount = (to_number(l_salary)*365*8)/26 ) else if(l_PaymentFrequency ='HOURLY2') then ( l_periodic_amount = (to_number(l_salary)*365)/26 ) else if(l_PaymentFrequency ='PERIOD') then ( l_periodic_amount = to_number(l_salary) ) else if(l_PaymentFrequency ='WEEK') then ( l_periodic_amount = ((to_number(l_salary)*52))/26 ) else if(l_PaymentFrequency ='SEMI_MONTH') then ( l_periodic_amount = ((to_number(l_salary)*24))/26 ) else if(l_PaymentFrequency ='BIWEEKLY') then ( l_periodic_amount = ((to_number(l_salary)*26))/26 ) else if(l_PaymentFrequency ='MONTHLY') then ( l_periodic_amount = (to_number(l_salary)*12)/26 ) else ( l_periodic_amount = to_number(l_salary) ) ) else if(l_payroll_freq= 'Weekly' or l_payroll_freq= 'Week') then ( if(l_PaymentFrequency ='ANNUAL') then ( l_periodic_amount = to_number(l_salary)/52 ) else if(l_PaymentFrequency ='HOURLY') then ( l_periodic_amount = (to_number(l_salary)*365*8)/52 ) else if(l_PaymentFrequency ='HOURLY2') then ( l_periodic_amount = (to_number(l_salary)*365)/52 ) else if(l_PaymentFrequency ='PERIOD') then ( l_periodic_amount = to_number(l_salary) ) else if(l_PaymentFrequency ='WEEK') then ( l_periodic_amount = ((to_number(l_salary)*52))/52 ) else if(l_PaymentFrequency ='SEMI_MONTH') then ( l_periodic_amount = ((to_number(l_salary)*24))/52 ) else if(l_PaymentFrequency ='BIWEEKLY') then ( l_periodic_amount = ((to_number(l_salary)*26))/52 ) else if(l_PaymentFrequency ='MONTHLY') then ( l_periodic_amount = (to_number(l_salary)*12)/52 ) else ( l_periodic_amount = to_number(l_salary) ) ) else ( if(l_PaymentFrequency ='ANNUAL') then ( l_periodic_amount = to_number(l_salary)/12 ) else if(l_PaymentFrequency ='HOURLY') then ( l_periodic_amount = (to_number(l_salary)*365*8)/12 ) else if(l_PaymentFrequency ='HOURLY2') then ( l_periodic_amount = (to_number(l_salary)*365)/12 ) else if(l_PaymentFrequency ='PERIOD') then ( l_periodic_amount = (to_number(l_salary))/12 ) else if(l_PaymentFrequency ='WEEK') then ( l_periodic_amount = ((to_number(l_salary)*52))/12 ) else if(l_PaymentFrequency ='SEMI_MONTH') then ( l_periodic_amount = ((to_number(l_salary)*24))/12 ) else if(l_PaymentFrequency ='BIWEEKLY') then ( l_periodic_amount = ((to_number(l_salary)*26))/12 ) else if(l_PaymentFrequency ='MONTHLY') then ( l_periodic_amount = (to_number(l_salary)*12)/12 ) else ( l_periodic_amount = to_number(l_salary) ) ) return l_periodic_amount -
Submit the changes and compile the formula.
-
After the mentioned formula is compiled successfully, search for and recompile these formulas. Recompile these formulas even if they're already in a compiled status.
-
ORA_EXT_ORA_HRY_GPY_V2_ASG_SALARY_DETAILS
-
ORA_EXT_GPY_PERIODIC_SALARY_CALCULATOR
-
Annual FTE Salary and Annualized Full Time Salary in Periodic Salary Calculations
You can also calculate Periodic Salary using different salary amount sources. You can configure which salary value should be used as the source amount for Periodic Salary calculations.
The Periodic Salary sent to payroll will be calculated based on the selected source amount and the payroll frequency conversion rules defined in the custom formula. Available salary amount options are:
|
Option |
Description |
|---|---|
|
Salary Amount (Default) |
Uses the employee's current salary amount as defined on the salary record. |
|
Annual FTE Amount |
Uses the employee's annualized salary based on the employee's FTE value. |
|
Annualized Full Time Amount |
Uses the employee's annualized salary as if the employee were working at 100% full-time capacity. |
-
Select Global Payroll Interface.
-
In the Payroll Interface Properties page, locate the Amount for Periodic Salary Calculation section.
-
Select a value for Amount to be Converted to Periodic Salary. Available values are:
-
Salary Amount (Default)
-
Annual FTE Amount
-
Annualized Full Time Amount
-
-
4. If you choose to use either Annual FTE Amount or Annualized Full Time Amount, the rule formula passes an additional parameter to the customer-defined formula.e
-
The formula now receives four parameters:
-
Annual FTE Salarye
-
Annualization Factor
-
Payment Frequency
-
Payroll Frequency
-
-
Customers who implement this feature must update their custom formulas to accept the additional parameter.
Refer below the section of the seeded rule formula invoking the custom periodic salary calculation formula to understand the sequence in which parameters are passed:
IF (l_source_amount='Annualized Full Time Amount') THEN
(
call_formula (FORMULA_RESULTS,
l_annual_fulltime_salary > 'l_salary',
l_annualizationfactor > 'l_annualization_factor',
l_Payment_Frequency > 'l_PaymentFrequency',
l_payroll_frequency > 'l_payroll_freq',
l_period_amount <'l_periodic_amount' default 1)
RULE_VALUE = to_text(l_period_amount)
)
else
(
IF (l_source_amount='Annual FTE Amount') THEN
(
call_formula (FORMULA_RESULTS,
l_annual_FTE_salary > 'l_salary',
l_annualizationfactor > 'l_annualization_factor',
l_Payment_Frequency > 'l_PaymentFrequency',
l_payroll_frequency > 'l_payroll_freq',
l_period_amount <'l_periodic_amount' default 1)
RULE_VALUE = to_text(l_period_amount)
)