Skip to main content

HRMS Payroll

Payroll
Introduction


Processing payroll is a very typical and fundamental business requirement across enterprises. If we have human resource, we will have to pay them. This sounds pretty simple. When we have 10 odd employees working in our firm, and we write checks for them; this can be done with the help of a spreadsheet and it won’t take a lot of time or resource to get something of this sort to be done. But let's think about a big enterprise. Processing payroll for a big enterprise is a gigantic task to do. It takes a lot of preparation just for the payroll processing and again a lot of post execution steps to make sure all the data are accurate and stored for further usage.
Do we simply write checks? What exactly do we do in the entire payroll process?
We do a lot of stuff, like calculating an employee's salary, calculating the amount to be paid per pay period. Determining how to pay, by check or by direct deposit into a bank? Figuring out if he had worked for the entire period, or was he on leave; if so, does that entail cutting off some portion of his salary? OK, Once we know, how much to pay. What next? Taxes, what are his incomes/ earnings? What should we deduct? Calculating the taxes based on that, again processing the payroll, getting the checks / direct deposits in place. After all that we should let our bank know, to debit that salary into his account. Will have to let my ledger books know; out of which budget, how much has been given as pay checks. So there are a lot of things.
Imagine doing all these by ourselves, without any software in place. Won’t we have to run another enterprise, just to process pay checks for our firm? Yes it might take those many numbers of people, just to do that job right. We are here to avoid that. We will use Oracle Payroll for our firm. 
Let’s take two minutes, and imagine Oracle Payroll has been successfully implemented in our firm. Now we are trying to run our Payroll. For that Processing portion of it, Oracle payroll, divides the entire payroll process in to three broad divisions:
  • Pre-Processing
    • Capturing salary
    • Capturing time cards
    • Running BEE process
  • Processing
    • PYU_GEN Process
    • Retry and Rollback
    • Quick pays
  • Post-Processing
    • Running Payroll Registers
    • Tax remittance
    • Gross to Net Calculation
    • Determining Payment Methods
    • Check writers / BACS / NACHA/ ACS / Garnishments / Manual Payments
    • Payment Register
    • Retro-Pay
    • Reversals
    • Advance Payments
    • Archivers
    • Costing
    • Transfer to GL

A lot of words here sound like a foreign planet language, don’t they? We will go through each and every step of it to understand what exactly happens in the entire course of payroll processing. However we will have to first get Oracle Payroll Implemented and running.

Overview


This chapter talks about:
  • Oracle Payroll as a module
  • Components of payroll: Earnings, Deductions, Taxes, Elements, Input values, Balances
  • Different Payment Methods and Payment Frequencies
  • Setting up payroll for an Enterprise
  • Pre-Processing Steps: Pre-Payments to Transfer to GL
  • Payroll run validation and correction methodologies
  • Retro Pays
  • Case Studies

Learning Outcomes


After going through this Chapter, you should be able to:
  • Understand the basic components of payroll and relate them to a real time pay check
  • Set up Oracle payroll for an Enterprise
  • Process the payroll for an Enterprise
  • Process and validate the payroll processes and supporting reports
  • Run a retro pay
Dictionary


Before getting started, we must know the terms that are going to be used in this chapter. We must know the processes and taxonomy in order to understand the basics easily, so here we go.
Elements
An element is the building block of payroll. It is a place holder to contain values, which will be used for a Payroll processing. The primary usage is to embed a type of income or deduction into an element, so that the entries can be made on the Employee's record related to the element. Later with the entries, we can calculate the payroll.
For an example, if we were to give Bonus to 5 employees in our organization. We will create an element for Bonus. The Bonus element can be attached to the 5 employees. While processing Payroll, the Payroll engine will give the bonus, only if there is the Bonus element attached. So that only the chosen five employees get the bonus, and others don't.
An element can be of two types: Recurring and Non-recurring. Recurring are the ones that are processed for each and every pay period, and the ones that are paid once in a while are called non-recurring. From the bonus example above, Bonus is a non-recurring one. So Regular Salary will be a recurring element and Bonus will be a non Recurring one.
In a real world, Elements serve a lot of purposes. Like, 
  • Earnings and Deductions: Salary, Allowances, Bonus, Loans
  • Taxes: State taxes, Country level taxes
  • Benefits: Vacations, Sick pays, Paid Absences, Pension plans, Employee Stock options, Insurance premiums / rates
  • Supplementary: Mobile Phones, Computers, Uniforms provided by the company, Expense reimbursements
  • Information: Leave adjustments, Loan Amount, Accruals etc.

Element Links
Element links are like qualifiers. They determine if the element is linkable to an employee or not. So it gives us an extra handle, where we can specify who all can be eligible to get this element attached. To take our Bonus example further, if we define a criteria on the Bonus element, so that only those 5 employees can get the Bonus element, then it will be easy for us to maintain. The Criteria can be defined in the element links. There is a lot to it, rather just defining criteria, we will learn more about it in Configuration section.

Earnings
An earning is a type of element which is as simple as what it means in English. This is a type of element which actually Debits the amount value attached to it. For an example, Regular salary/ Bonus will be an earning. In Oracle Payroll prospective, Earning is a template form. We will learn more about it when we start configuring Payroll.

Deductions
This is a type of element as well; however it credits the amount value. These are used to deduct some amount from our payroll. For an example, our Medical Insurance amount (Rate) is a deduction that gets credited from our gross income. Our Tax amount, Provident fund etc are deductions. To generalize, anything that gets deducted from your Salary is known as a deduction. This is exactly opposite to Earnings.

Balances
A Balance is an aggregate of one or more elements that have a numerical value attached to it. These are created for tracking purpose; to track the aggregated values with different dimensions.
OK, let’s discuss that a little more with an example. Let's take an example of Bonus again. We will create a balance with name BONUS_BAL. We will attach my Bonus element to it. We would expect the BONUS_BAL to answer the following questions for me.
  • How much Bonus did we pay in the fiscal year of 2010?
  • How much Bonus did we pay in 3rd Quarter of 2010?
  • How much Bonus did Jean receive in her entire length of service?
So these parameters Fiscal Year, Quarter, Length of service, these are all Dimensions, based on which we can get a value. If we draw Bonus as X axis, Time in Y axis, and plot a graph, it will give us a point for the Quarter of 2010, Right? So the axis here is one dimension. Similarly we can put dimensions of many types. So bonus is usually a Multi-Dimensional architecture of a collection of data; where Data being the numbers attached to the elements.
So to rephrase Balance, we will say, it’s a collection / summation of one or more elements, which can be used to retrieve data with multiple dimensions. 
Why would we need that? In our pay slip, there is something called as Income Tax deduction, and something called as YTD (Year To Date) Deduction. Where is that YTD Deduction coming from? It’s coming from the balance attached to the Income Tax element, and the dimension we are using is Year to date, that is for the fiscal year being evaluated. Clear? Nice. This is just a simple example of balance usages; there are actually a lot of usages of balances, and we will discuss them while discussing about the Payroll implementation steps. 

Payment Methods
An employee gets options related to the way he wants to get paid. Those options can be: 
  • Check Payment
  • Direct Deposits (Bank Account credits)
  • Garnishments (Third Party Payments; for an example, a court order to pay $200 every month to someone / charity)
  • Cash, although paying by cash is not a very standard practice, few of the countries allow paying your employees by cash.
Again based on the localization of the payroll, we need to use automatic money transfer via a certain Media, like NACHA / BACS / ACB. These are needed for direct deposits. The other two (Check Payment and Garnishments) are clearly driven through the checks, however the recipient changes. An employee can also have liberty to divide his salary in two different accounts.
For an Example, If Joe has two accounts, one checking and one savings, and then he might request his salary like this:
  • Give me a check for $300.
  • Then $500 should go as a garnishment to pay out my ex-spouse, as per court order.
  • Rest of the money should go to my Savings account.
Here Joe uses three different payment methods.

Payroll Frequency
Every enterprise runs on a schedule of payroll frequencies. These are the frequencies on which the payroll is processed and payments are made. The Frequency again depends upon the type of payroll a particular employee is on. Examples are:
  • Monthly
  • Semi-Monthly
  • Bi-weekly
  • Weekly
So if Joe is entitled to the Monthly payroll, he will get paid every month. So his payroll frequency is monthly.
Consolidation Sets
If an enterprise has three payroll cycles; Monthly, Semi Monthly and weekly;  it means,  it has employees who are paid every week / once in a fortnight / once a month. This also means it will have to process at least one payroll every week (weekly). Every alternate weeks, it will have to process two payrolls (one weekly and one semi-monthly), and all three on the last week of the month. Its not just about the payroll process, the enterprise must process post processing steps for each one of them. 
To summarize, the payroll processing team of the enterprise will have to repeat a set of task multiple times for each payroll. To solve problems like this, Oracle E-Biz uses a methodology called Consolidation set. A set of payrolls can be combined and grouped together through a consolidation set and different processes can be run on the consolidation set, rather running it individually on each payroll. It will pick the payrolls processed between the provided date range and will execute the rest of the processes for all of them at once. So payrolls with similar timelines can be clubbed together in a group called Consolidation set.

Costing
The Process with which the Pay check amounts are segregated among the various departments and cost centers in any Enterprise is known as Costing. 
Let's take an example of Mr. Joe, who is working in our enterprise since last 7 years. Now he is a Project Manager, and his billing (his pay check) should be paid by the department for which he is working. Similarly Ms. Jean, who is a contractor, and has been hired to do some market research, should get paid by the department of Sales.
We know that after the payroll is run, we are going to send these reports to General Ledger aka GL, so that the books/accounts are updated accordingly. However how do we specify, which pay check is paid by which department? There will be situations where we want the cost to be paid by the Admin cost centre, as the job was department independent. So to cater all these requirements, we have a concept called Costing.
We define a cost allocation flex field just for the same purpose. It will have different segments where we can attach my cost; like, Project, Product. Cost centre, Account Code etc. These are highly based on my enterprise hierarchy / design. With that in hand, we can start assigning costing to the payrolls. We will also have places where we will be able to override costing. We will learn more about it while configuring those.
The General Ledger has a Flex field called: Accounting Flex field. In a best case design, the accounting Flex field and the cost allocation flex field should match. However for all cases, we need to map these two flex fields in order to link the accounts from HR end to the GL end. There is a form in HRMS, where the Accounting flex field is mapped to the Cost Allocation Flex Field via segments. That process is known as the GL Mapping.

Electronic payments
In case of direct deposits, when the payroll processing is done, the bank must be informed to transfer the amounts to the respective accounts. So how do we do it?
In most countries, all banks have an association through which they manage electronic transfers, like NACHA (National Automated Clearing House Association) in US and BACS (Bankers' automated clearing services) in UK. The association determines a format and an electronic data transfer methodology with which one can communicate to the bank to fill in money into the employee accounts.
As part of Post Processing of payroll, we usually run a report that prints the Account number and the Amount in a desired format, based on the localization (either for NACHA or BACS). That report is then sent to the bank using a preferred media, which is again specific to localization. That report is then used by the bank to credit the Money in to the mentioned accounts. The entire process of generating a Payment report and sending it to bank is called the Electronic Payment data Transfer.

Element Classifications
There are a set of predefined classifications available with Oracle Payroll, which can be used to represent the characteristics of a particular element. Each and every element must have a classification attached to it. The Classification in turn depicts the way the element behaves. For an example, an Element of classification type ‘earning’, tells us that it’s an Earning, and the money accumulated in it will be added to the pay check. An element with Classification as "Information", tells us it’s just for the information purpose only, and will not be holding any money.
Let's say, we have a primary classification that has 10 elements associated to it. Out of those 10 elements, 5 elements are very similar. They belong to the same payroll entity/ they have similar usage. In this case, we can define a secondary classification that will help us group the similar elements together. Although Secondary classifications are not mandatory they are very useful in Balance configuration. As an example, a Travel Allowance, House Rent Allowance, uniform allowance are of type Earning (Primary Classification) and are type Paid Allowance (secondary classification).

Setting up Mandatory KFFs


There are two very important Key Flex Fields for a successful, up and running system with Oracle Payroll. They are Cost Allocation KFF and People Group KFF. While cost allocation KFF deals with the way the costing is managed, the people group KFF provides an additional set of columns to identify different population in Oracle HRMS.
Cost allocation KFF
As we had discussed, the Cost allocation Flex Field defines a structure to the various accounts under which costing can be incurred. This KFF runs in parallel with the Accounting flex field in Oracle General Ledger. Costing is important in order to credit the appropriate accounts based on the labour costs paid as part of pay checks.
Responsibility: Application Developer
Navigation: Flex Field -> Key -> Segments
Steps:
  • Click on Title.
  • Query for the string "Cost Allocation Flex field".
  • Define a new structure with the following data. See Figure 5.1 – Cost Allocation KFF



Figure 1 Cost Allocation KFF
(Figure 5.1 – Cost Allocation KFF)
 Application
 Payroll.
 Flex Field Title
 Cost Allocation Flex field.
Code 
 A user defined name.
 Title
This appears as the window name in Segments. A user defined name.
Description
Any description. Free Text.
 View name
 It creates a database view with the name specified here.
 Freeze Flex field definition
 Needs to be checked, once the updates are done. This makes the window display only, once checked.
 Enabled
 This one makes the structure possible to be used. Un-checking this is as good as end dating the record.
 Segment separator
 The character we select here is used as the separator between segments.
 Cross Validate segments
 Can be used, if cross validation is needed. 
 Allow Dynamic Inserts
 Allows users to create new possible combinations in the table.
 Compile
 Compiles the FF structure.

To define the segments, we will have to click on the segments button. However, let's first finalize the levels where the cost can be added. We will have to decide the valid levels from the structure of our enterprise. In case we are implementing the ERP for our client, we need to discuss these requirements in details. Usually, the levels in which the costs are allocated are: Company, Cost centre, account Code, Project and Product. However, if we have the GL implemented for our client, it’s advised to create the segments in parallel with our accounting flex field.  
OK, once we know the levels, let's configure them. See Figure 5.2 – Cost Allocation Segments.





Figure 2 Cost Allocation Segments
(Figure 5.2 – Cost Allocation Segments)

 Number
 The sequence number that decides the precedence in which the segments are going to appear.
 Name
 The name of the segment.
 Window Prompt
 The name that would appear on forms.
 Column
The segment number column in our KFF table. Advised to start with 1 and keep incrementing after that. 
 Value Set
 Assign a value set.
 Displayed Check Box
 Enables the segment to be displayed.
 Enabled Check Box
 This one enables the segment to be usable.
 Value Set
We can update/assign/define a value set to be attached to the segment. 
 Flex field qualifiers
We have learnt about these in AOL 

As the segments are added now, the next task is to set the details for that segment. To do so, click on the first segment and press open. See Figure 5.3 – Cost Allocation Segment Description.
Figure 3 Cost Allocation Segment Description






(Figure 5.3 – Cost Allocation Segment Description)
 Value Set
The Value set attached to the segment.
 Default Type
This one enables us to add a default value if needed in the segment.
 Required
Marks the segment Required. So every time we open the KFF, we must enter a value for the segment.
 Security Enabled
 In case we want to use the security rules to be attached.
 Sizes
 Self explanatory.
 Range
 Allows another set of validation, explained below.

Sometimes we would like to add an extra set of eyes to the segments, where we want the segment value to be dependent on another. The best example in this case is the start date and the end date, where we’d always want the start date to be smaller than the end date, which logically makes sense, as we cannot end a record in the past that is created in future.
In cases like this, we can make use of the range. A segment with high range must always be bigger than the segment with the low range. To solve the dates issue here, we can define the end date to be in High and the start date as low. 
Laws of Range:
  • We should have the Low segment appear before the High segment
  • We cannot just assign one segment as High and not assign any as low, or Vice versa. If we have a low segment, we must have a high segment too.
As the ranges are set, let's talk about qualifiers. Remember we talked about these while talking about the KFFs in the core HR and AOL section? OK here it is; Qualifiers define the segments that can be updated at one given level. Talking about the Cost Allocation KFF, we have the Following places where a segment can be updated:
  • Payroll
  • Element link
  • Organization
  • Assignment
  • Element Entries
In these levels, the cost can be attained or assigned, with precedence from payroll to element entries with increasing order. So it means, the cost associated to an element entry has the highest precedence, hence it can be overridden by anything we enter at any upper level.
So what's the role of the qualifiers here? The qualifiers define the segments that can be updated in the above given levels. For an example, if we have an Overtime element attached to an employee's record. The costing is allocated to the HR department at the payroll (highest) level. On Monday, the employee worked for 4 extra hours to support the Admin Department. Now, the account Department wants the cost for those 4 hours to be added to the Admin department, not to the Payroll department. We can then come down to the Element links (Lowest) level, and override the costing to the Admin dept.
This configuration was possible, just because we made the Project code (for an example) available to be updated at the element links level. If we won’t make the project code segment available at the element links level, we will have to choose any other segment code to override the cost.  So we have the autonomy to enable or disable any particular segment at any level. This is done through qualifiers.
  • Click on the qualifiers tab on any segment.
  • Choose the places where we want the segment to be visible.
  • Close the window and repeat the same for the rest of the segments.
People Group KFF
The people group flex field enables us to create and track another set of criteria for the employees. Although Oracle HRMS gives us a lot of such criteria types, like job, position, grades, locations but this one is another grouping that can be used for anything like, a stock option or may be a union or sometime just leave accruals. HRMS also has things like, Benefit Group and Bargaining units to group employees. This is a mandatory KFF in Payroll implementation. In case our Enterprise does not need an additional grouping, we can still create a dummy one for the future usage. 
One of the most important reasons to have People Groups is the element Link. In element links, there are various criteria based on which we can set eligibility of an employee to have the element attached to him. However the eligibility options are limited. In a case where the user cannot separate the employees using the given eligibility options, he always has the liberty to use people groups. We will discuss more about the usage of people Groups while discussing Element links.
Responsibility: Application Developer
Navigation: Flex Field -> Key -> Segments
Steps:
  • Click on Title
  • Query for the string "People Group Flex field"
  • Define a new structure with the following data. See Figure 5.4 – People Group Segments.



Figure 4 People Group Segments
(Figure 5.4 – People Group Segments)
 Application
 Payroll.
 Flex Field Title
 People Group Flex field.
Code 
 A user defined name.
 Title
This appears as the window name in Segments. A user defined name.
Description
 Just a description.
 View name
 It creates a database view with the name specified here.
 Freeze Flex field definition
 Needs to be checked, once the updates are done. This makes the window display only once checked.
 Enabled
 This one makes the structure possible to be used. Disabled this is as good as end dating.
 Segment separator
 The character we select here is used as the separator between segments.
 Cross Validate segments
 Can be used, if cross validation is needed. 
 Allow Dynamic Inserts
 Allows users to create new possible combinations in the table.
 Compile
 Compiles the FF structure.

Now, on to the segments:
 Number
 The sequence number that decides the precedence in which the segments are going to appear.
 Name
 The name of the segment.
 Window Prompt
 The name that would appear on forms.
 Column
The segment number column in our KFF table. Advised to start with 1 and keep incrementing after that. 
 Value Set
 Assign a value set.
 Displayed Check Box
 Enables the segment to be displayed.
 Enabled Check Box
 This one enables the segment to be usable.
 Value Set
We can update/assign/define a value set to be attached to the segment. 
 Flex field qualifiers
We will learn about it in future. 

Now, once the segments are added, click on the first one and press open to get started with the value sets if any.
 Value Set
The Value set attached to the segment.
 Default Type
This one enables us to add a default value if needed in the segment.
 Required
Marks the segment Required. So every time we open the KFF, we must enter a value for the segment.
 Security Enabled
 In case we want to use the security rules to be attached.
 Sizes
 Self explanatory.
 Range
 Allows another set of validation.

So this completes our KFF set up.

Managing Entries


Once the elements and the links are defined, they are available to be distributed to individual assignments (employees) based on the eligibility. This distribution of elements is known as entries. The entries store the name of the element along with the input values, and also the values assigned to them. Later, when payroll is run, payroll manager engine picks the entries with the input values and processes them.
For an example, Bonus is a non-recurring element, and it contains two mandatory input values namely, subject to and percentage; along with Pay Value. There is a non-standard link on the bonus element that has an eligibility criterion of Payroll = ‘XXMonthly’.
  1. As the link criterion suggests, a person who belongs to ‘XXMonthly’ payroll is eligible to receive this element
  2. As it is not a standard link, it’s not going to make an element entry all by itself, so the element entry must be created explicitly
  3. Once the entry is made, the start date will be the date on which the entry was made, and the end date will be the Pay Period end date, because it is a non-recurring element
  4. With every entry, the mandatory input values must be populated with some value
  5. The pay value can either be populated or be calculated based on the design (whether its user enterable / calculated through a formula )
  6. Finally, when the ‘XXMonthly’ payroll for that pay period is run, it will populate / calculate the pay value based on design, and the final value is then used in payroll calculations
There are different ways to make an element entry. However we will discuss the major contributors.
Automatic Entries
In many cases automatic element entries can be done on assignments. Mostly the regular earnings are configured in a way that the entries are made by design. The assignment and element must satisfy the following conditions for an entry of this type.
  • The element link must be standard
  • The element must be a recurring one
  • The assignment must be eligible for the link, based on the criteria defined on the link

Manual Entries
There are cases where the payroll users key in entry by themselves. This type of entry is known as the manual entries.
Responsibility: HRMS Manager
Navigation: Total Compensation -> Enter and Maintain -> <Query the Employee> -> Assignments -> Entries
Steps: Select the element we want to update / create a new record with the element name. See Figure 5.21 – Element Entries.



Figure 21 Element Entries
(Figure 5.21 – Element Entries)
 Period
The Payroll period for which element is being displayed.
 Classification
This is filter to show elements related to the specified classification only
 Processing type
This option filters out the  processing type of the elements like recurring,
 Element Name
This shows the name of element. In case a new element entry is required, a new row can be added a with the element name. However, if the element is already listed for the pay period, it does not appear on the list again, unless multiple entries are allowed.
 Recurring Type
Auto populated based on the type of element chosen.
 Costing
This is the costing level attached to element entries. This is the lowest level of costing, and holds the highest priority.
 Additional
If the element is a special input element, and it uses additional input values then this box is checked to avail the additional input values.
 Processed
 Once the payroll is processed and the element entry is taken in to calculation, the processed box gets checked to symbolize that.

To give input values to the element, we will have to select entry values.
Input values
All the input values attached to the element appear here. However only the ones with user enterable flag checked, can be updated
 Date Earned
This signifies the date on which the wage / hours are earned
 Payee Details
In case of Third Party Payments, the payee details are added to show the particulars related to the Organization, court order number etc.
 Processing Priority
This defaults with the processing priority attached to the element. The priority can be overridden here

Batch Element Entries
There is a feature in Oracle payroll, with which one can directly fill in element entries for a number of assignments / elements with one single interface. It also helps in validating the data being entered. 
In cases where the Benefits system is managed by another vendor organization, the vendor might send a spreadsheet with the Insurance premium / rate to be cut off from employee's payroll as a deduction. It becomes impossible to get into each assignment and keep on adding the details without any mistake.
Similarly, if time tracking is done by an external system or if OTL is housed in a different environment, then the time must be transferred to appropriate element entries in the payroll system.
To facilitate an interface between an external system and the element entries, oracle has developed a feature called the batch element entry. This feature enables the users to update assignment entries of huge numbers, at one shot as a single batch.
Responsibility: HRMS Manager
Navigation: Mass Information Exchange: MIX -> Batch element entry
Steps: Create a new record with these details. See Figure 5.22 – Batch Element Entries.



Figure 22 Batch Element Entries
(Figure 5.22 – Batch Element Entries)
 Batch Name
A unique name of the batch. It’s a good practice to add date to the end of the batch name for better tracking of batches.
 Batch Status
A Batch can have five different statuses
  • Unprocessed: The Batch is fresh, and has not been processed yet
  • Valid: Validation is done, no errors found
  • Transferred: Data Transfer is done. Process is complete
  • Error: There is an error with one of the entries. The message button can be used to check the error details.
  • Status Mismatch: The process is running; the row must be queried again to see the latest status
Action if Entry Exists
In a case, where one element entry is being added, and the entry already exists with the assignment for the same pay period, the system must take one of the following actions.
  • Create New Entry: It creates a new entry. However only if the multiple entries are allowed for the element. Otherwise it throws an error on the batch line.
  • Reject Entry: It does not alter the existing entry and rejects the batch line.
  • Change Existing Entry: This will update the old entry with the new entry values fed by the batch line.
 Date Effective Changes
This enables the date tracking
  • Update: It lets the past data stay, and updates the entry with the new values as of the date change requested. If any future dated changes exist, it inserts the row in between.
  • Correct: It overwrites the element entry with the new value. Old data is lost.
  • Override: It lets the past data stay, and updates the entry with the new values as of the date change requested. However unlike update, If any future dated changes exist, it clears them off.
Reject If Future Changes
In a case where there already exists an entry in future, that matches the batch line; it will reject the entry if this box is checked. This is exactly opposite of Override. Hence both the options cannot be selected together.
Purge after transfer
This will cause the temporary tables linked to the BEE process to be purged off. Once this option is chosen, no roll back can be performed henceforth the transfer
Auto Query
This box needs to be checked, If the assignment lines window is being used and any existing batch lines for the assignment/element set need to be automatically displayed.
Auto Validation
Once this box is checked, it validates each and every assignment number is entered and it flashes an error message, as soon as an invalid assignment number is entered.
Element Lines
This window is to enter assignments. This helps in creating entries for one element for multiple assignments.
Assignment Lines
This helps in creating entries for multiple elements in one assignment.
Assignment Set
This can be chosen for a particular element to be entered for an assignment set.
 Totals
 This is a type of validation, where the totals of the entries are to be validated.
 Messages
 A Message can be Set up to display error messages.
 Process
 This tab gives user an option to choose the next action he wants to take. i.e. Validate / Transfer etc.

Using Element Lines:
This is the button to be used, when there is a need to make an entry for an element for multiple assignments.
 Element
 Select an element
 Find
 After pressing this button, it displays the list of assignments added with the element for this BEE. 
 Line
 Just a sequence number called Line number
 Assignments
 The list of assignments. While creating a new BEE, we can keep on adding assignments here.
 Input Values
 The Input values appear like columns here.
 Costing
 Can enter Costing string here as well. This is the element entry level of override.
 Date Earned
 Can enter the Date Earned t override the element screen priority
 Processing Priority
 Can enter the Priority to override the element screen priority.
 Effective date
 The date as of which the entry should be made.
 Status
 Displays the status of the Batch line.
 Messages
 Displays the error messages
 Defaults
 Can enter the Default value for the Input values. This will be taken if no entries are available on the batch line.


Using Assignment Lines:
Now, this is the button, we would use, when we want to make an entry for multiple element for a single assignments.
 Assignment
 Select an Assignment for which the element entries are going to be made
 Name
 It will be auto populated based on the chosen assignment.
 Element Set
 Choose an element set.
 Element
 Elements as per the chosen element set appear here. Then one of the elements can be selected and the Input values, Defaults, Costing etc can be entered as explained in Element lines.

Using Assignment Set:
This is the Button, we would use, when we want to make an entry for a single element for multiple assignments. However the multiple assignments must be grouped together with an assignment set.
 Assignment Set
 Select an Assignment Set for which the element entries are going to be made
 Payroll
 Choose a Payroll with which all the assignments in the assignments are related to.
 Element
Enter an element for which the entries are going to be made
 Rest of the Fields
 The rest of the fields are identical to what we have in Element Lines / Assignment Lines.

Using Totals:
Totals can be used to validate the BEE Transfer. We can put in conditions in order to validate if the number of entries made matches with the number of entries requested by us. Or even compare the sum of the number of hours entered as a whole. Or even do the summation of the monetary units and compare it with calculation. So this is a powerful tool to validate data.
 Type
 Choose a type of validation we would need.
 Control Total
 Enter the number against the validation.
 Message
 Message to be appeared if validation fails

For an example, we want a total of entries that are made. We choose a type of Line Count. Now, we add 55 in the Control Total, as we know there are 55 entries that are to be made. Then we can set up a message that will pop up if the line count exceeds or goes down the number 55.

Defining Elements


We have talked a little about elements before. It’s a placeholder to hold the values that can be assigned to store an entity of payroll; like an earning, a deduction, a life insurance premium etc. Elements are the building block of the payroll. If we look at a payslip, we will see different types of pay, like the basic, travel allowance, Medical allowance, deductions etc. Those are all elements.
Before going ahead and creating elements, we must make sure we list down all the elements that we need, along with their names, reporting names (that will appear on the pay slip), type of the element etc.
There are two ways to create an element. 
  • Use the traditional Element screen
  • Use a template
Let's learn about the traditional way first.
Using Traditional Way
Before creating anything related to a date tracked table, we must date track to a date that will be able to catch all our historic information. What's that date? May be 01-JAN-1951, or 01-JAN-1980? We can use any date which is well enough in past that all our transactions could be recorded on or after that date. The most popularly used date is, 01-JAN-1951. We must date track to that date we have decided to go with; before entering any information.
Now, let’s open the elements screen.
 Responsibility: HRMS Manager
Navigation: Total Compensation -> Basics -> Element Description
Steps: Create a new record and start filling in the details.

Figure 5 Define Elements





(Figure 5.5 – Define Elements)
Name
The name of the element. One should always use meaningful names. The best practice is to use suffixes to identify types of elements. For an example, element name starting with E_ can depict an Earning Element, similarly D_, I_, T_ etc can be used to name the elements of types deductions, Information and Third Party payments respectively.
Reporting Name
This name must be more meaningful; as this appears on the pay slips and statement of earnings.
Description
Information purpose only.
Primary Classification
Choose a Primary Classification that suits the element the most. We will learn more about this later in this chapter.
Benefit Classification
Choose one if required.
Effective Date
This should give us the date we have date tracked to. The Start date of the record. This is populated automatically.
Currency
Choose one currency, if the element's currency is different than our Business group's default currency.
Age
An eligibility Indicator. In case we want the element to be available, based on age criterion.
Length Of Service
Works the same way as age, however on Length of Service criterion.
Standard
If standard box is checked, system creates an entry to all the employees who are eligible for the element automatically.
As the eligibility of an element is determined through element links, the standard check box can be overridden at the element links level.
An element must not be Non Recurring or multiple entries must not be allowed in order to be standard. 
Further Information
It's a DFF on the Elements table. It can store additional information, which can be used in fast formulas.
Type
Recurring: Elements that appear in every payroll cycle, like Basic Salary
Non Recurring: Elements that do not appear in every payroll cycle, like Overtime
Termination Dates
This determines, if an employee is terminated, how long this element should get processed.
Actual Term date: The element ends as of Termination Date
Last Standard Process date: The element ends as of the pay period end date on or after the termination date
Final Close Date: The element ends as of the final settlement date mentioned, as per the termination record.
Multiple Entries Allowed
This enables an element to be entered more than once in one pay period. Example: Overtime element, as overtime can be entered multiple times in a week’s time. On the other hand, Regular salary can not be entered multiple times in a period. There should be just one entry per pay period.
Closed For Entry
This will make the element unavailable for any future use. However the existing entries will work as expected.
In case we wish to stop using an element, this is the flag to be updated. End dating or Purging are not good practice for elements.
Process in Run
If not checked, the element will not be processed as part of Payroll run.
Indirect Result
This flag is checked, if any other element seeds any value to this one for usage. We will discuss more about these in Formula results section of this chapter.
Third Party Payment
This flag is used, if the element is associated with third party payments.
Skip Rules
This accepts a FF. The FF returns a Y or N. Based on the return value; the element is included on a payroll run.
The skip rule stands useful when you wish to include the element on specific cases only. For an example, you wish to pay the Bonus element only if the YTD salary is greater than $75,000.
Priority
A number based on which it is picked by the payroll process. The one with the smallest priority number gets picked up first. A Default value is always fed based on the classification chosen for the element. However, we can change it if any specific requirement forces it to be updated.
Especially in case of Indirect results, where one element feeds values to another, the feeding one should be processed first and hence must have a smaller number.

Now, Lets save the changes and move to buttons.

Input Values
We know that the elements store values. However the actual places where the values are stored / recorded by the elements are known as Input Values. These are the place holders that keep the values that can be used for calculations related to payroll. One element can have one or more input values attached to it. The input values store the different values that are used for the calculation of the final value of the element. In some cases one Input value for an element might feed values to another element for its calculations. Those are called indirect results. 
Let's play an example; we are storing the Overtime with an element. So what are the things we should track? One Input Value storing the number of hours we have worked, and another to store the hourly overtime rate of the employee. That will give us the money to be credited to the employee's payroll. So will need another Input value to store the final amount.
The one input value that stores the final amount must be stored in an Input value with name "Pay Value".
Let's navigate through the form. See Figure 5.6 – Input Values.
Figure 6 Input Values





 (Figure 5.6 – Input Values)
 Name
Name of the Input Value.
 Units
It can be one of these: Money, Hours, number etc. A pay value should always have the unit as Money.
 Sequence
This is the order in which the elements appear in the Element Entries Inputs screen.
 Required
Makes the Input value Mandatory for the element. This means, the entry will not be saved, unless this value is entered.
 User Enterable
Makes the Input value user enterable. Like the number of hours and Overtime hourly rates.
 Database Items
Creates a database item for this Input value.
 Default
Takes the default value for the Input value.
 Hot Default
Updates the existing entries, if the default values are changed. For an example, if a Default value for overtime hourly rate is changed, it will enforce all the existing unprocessed entries to be updated, if the hot default is chosen. If it’s not checked, then it will just use the new default going forward; without updating the existing entries.
 Lookup
Use a look up for validation of the Input values. The Entered value must be in the look up codes. This is like an extra set of validations attached to the data entered to the input value.
 Formula
We can use a formula to validate the input value.
 Minimum and Maximum
Takes the minimum or maximum of the allowed values.
 Warning or Error
We can use a Warning or Error message here. The warning will appear on the payroll process results, if validation of the data fails.
 Effective Dates
The effective date of the Input value.

Classifications
Choosing a correct primary and secondary classification is very important in order to ensure the elements behave the way they are designed to. The primary classification is a seeded functionality, however the secondary classification is customizable, and we can add new secondary classifications based on our business needs. Here is the list of Primary classifications, the categories and their meanings.
Classifications
Categories
Descriptions
 Earnings
Regular, Overtime , Premium, Shift Pay, Student Earnings
Earnings based on the hours worked. The salaries, Overtime etc are the direct result of the labour, and termed as Earnings.
Supplemental Earnings
Dismissal Payments, Educational Assistance, Deferred Compensation Plans, Jury Duty Pay, Moving Expense Reimbursement, Pensions/ annuities, Awards n Prizes, Bonuses, Commissions, cafeteria Plans, Deceased Employee Wages, Sick Pay, Travel Expense Reimbursements, Vacation Pay
The special type of earnings that one receives, along with the Earnings. Like Bonus, awards etc. Even though these are type of earning, these are additional cash to the employee, other than the ones entitled.

So technically, any cash numeration, which is not a type of earning is called Supplemental earnings
Imputed Earnings
Group Term Life Insurance, Personal Use of Company Car, Non-Cash Awards
The Non Cash types of earnings are listed as Imputed Earnings. We’ll learn more about these in Advanced benefits.
PTO Accruals
Vacation, Sick
These are the Paid Time Off (PTO) accrued by the employee. Usually enterprises give the employees an amount of days to accrue once s/he completes a month / year as an employee. Those vacations are paid ones. So the employee keeps gathering them and uses them whenever s/he needs them. Those accruals are stored with PTO accruals.
Voluntary Deductions
 N/A
These are the deductions that are done as part of any loan payment / insurance premium etc.
Involuntary Deductions
Garnishments, Bankruptcy order, Federal Tax Levy, State Tax Levy, Local Tax Levy, Child Support Order, Spousal support order, Alimony, School Loan, Credit Debt, Employee requested payments
The Involuntary deductions where the employees pay the amount based on some Alimony or by court order or by any third party garnishment orders.
Pre-Tax Deductions
differed Comp 401K, Health care 125, dependent care 125
The deductions that happen before taxes are applied. Like Health care and retirement plan premiums / rates. 
Tax Deductions
Federal tax, state tax, Local tax
The employee taxes for the Country or state or even local taxes come under these.
Employer Taxes
Federal tax, state tax, Local tax 
The employer taxes.
Employer Liabilities
Benefits, Overhead
These are the non tax liabilities to the employer that gives health coverage benefits and usable things to the employees like a safety harness.
Tax-credit
 N/A
These are the credits that are paid back to the employees as part of some accreditations.
Non-Payroll Payments 
Expense Reimbursement
These are not actually earnings, hence not taxable. These appear separate on earning report, as these expenses are just being reimbursed, not an additional payment.
Information
Absence Hours, Straight-Time Overtime Hours, Tax Balance, Labour hours, Regular Hours
These elements are not monetary types. They just hold the counts for reporting purposes.

Formula Results
Fast Formulas can be used for various purposes like, Calculating Pay values, validating entries, Skipping a payroll etc. There are precise places where we can use a particular FF. We will concentrate on the most widely used one; the payroll calculation formula.
Let's see the form, and discuss about the various possibilities. See Figure 5.7 – Formula Results.
Responsibility: HRMS Manager
Navigation: Total Compensation -> Basics -> Formula Results
Steps: Query for the Element in concern

Figure 7 Formula Results






(Figure 5.7 – Formula Results)

 Element Name
 Name of the element.
 Classification
 It is auto populated with the primary classification of the chosen element
 Description
 It is auto populated with the description of the chosen element
 Processing Rule Name
 This is a LOV with assignment status types of employees (PER_ASS_SYS_STATUS lookup). Choose a ‘standard’ rule for standard processing. Also choose any other status type, if the processing rules for the element changes with a change in that status change.
 Processing Formula Name
 Name of the formula to be used against the status change
 Formula Result Name
 Name of the result that should be linked to input value of an element. This is a LOV, populated with the return values of the FF. If the FF has three return values, those three will be populated in the LOV.
 Type
 Type of formula result. We will discuss about it later in this chapter.
 Element
 The element to which the result is being passed.
 Input Value
 The input value in use.
 Units
 Auto populated based on the chosen unit
 Message
In case the result type is Message, the message needs to be added here.

Formula Result Types
A payroll calculation formula is capable of returning many values. And based on the need, the return values are used, either in the element it is called from or passed on to another element for further calculations. There are cases, where we would need one element to pass a value to another element, based on which the calculation of the later will take place. For an example, the bonus can be calculated as 15% of Regular Salary, and the final amount (pay value) of Regular Salary can be calculated by the fast formula attached to the basic and then fed into the Bonus element for its calculation. Let’s look at the different ways we can use a return value of a fast formula.
Direct Result: This is used when we are updating the pay value of the element being evaluated.
Indirect Result: This is used when the calculation result of one of the Input Value of the element being evaluated needs to be fed to another element's input value. The later then takes it as an Input and processes its calculation. Continuing with our example, If Bonus needs to be 15% of the regular Salary. Regular Salary might have an Indirect result to feed the value to the Bonus element. Bonus element can then take the value and calculate 15% of the value and use that amount as pay value. So to pass the value from Regular salary to Bonus element, we can use the Indirect Results.
Order Incorrect: This result updates the sub priority of the element selected in element field.
Stop: This formula result uses the effective date of the payroll run to put an end date on a recurring entry of this or another element (which must be defined with multiple entries not allowed.)
Update Recurring Entry: This result updates recurring entries of this or another element. The receiving element must be defined with multiple entries not allowed unless we are passing a recurring element's entries to itself, which is updating another entry of the same element.
Message: Sometimes, we want a simple message to be displayed based on the calculation. That can be done using a Message type.
6.7.6 Laws of Elements
  • We can make an element standard, only if it’s recurring and multiple entries are not allowed.
  • A category type field must be entered in the DFF for all elements. The LOV is populated from the look up types: "US_EARNINGS" and "US_SUPPLEMENTAL_EARNINGS".
  • Never check "Closed for Entry" for a standard element. It will create issues with Hiring and terminations.
  • For validation, we can use any one of the three possibilities (Lookup / formula/ min and max).

Using Earning Templates
As the elements are of different types, there are two templates in Oracle payroll that helps us create elements and a lot of other related things. These templates save time, make the elements standardized and easy to manage. The two templates are called, Earnings and Deductions.
Let’s start with earnings template first. It is more or less a type of classification. However using this template to create an earning type of element creates the following things in Oracle Payroll.
  • One element with the same name as earning
  • Two support elements (one special input and one Adjustment/ special feature)
  • One Fast Formula
  • One Balance
  • The input values
So let's configure the earning
Responsibility: HRMS Manager
Navigation: Total Compensation -> Basics -> Earnings
Steps: Create a new record and start filling in the details. See Figure 5.8 – Earnings Template.

Figure 8 Earnings Template





(Figure 5.8 – Earnings Template)

Name
Name of the Element
Reporting Name
The Name that appears on the Pay slips and statements of earnings
Description
Just a description of the element
Classification
The Primary classification
Category
This is a sub type of Primary Classification
Priority
The order in which the data is going to be processed
Overtime Base
If this Box is checked, it takes the element as the base for the Overtime entries
FLSA Hours
This is used in US localizations only. If this Box is checked, it takes the initial 8 hours as regular and the next hours as Overtime, as per FLSA rules in US. FLSA stands for Fair Labour Standards Act.
Reduce Regular
In a case where we want the regular hours to be divided into "Regular Worked" and "Regular Non Worked" hours, we should use this. For an example, if there is a full time employee appointed for 40 hours a week, but he has worked for only 36 hours as per the time sheets, then 36 hours will be Regular worked, and 4 hours will be the regular non worked hours.
Standard Link 
This enables an element to be standard. If the box is checked, the element gets added to all eligible employees automatically.  
Standard Calculation Rule
This defines the way the Pay value calculation will be done.
Type
Recurring / Non Recurring. Same as we discussed in Elements screen
Termination
The date until which the element will be used.
Deduction Processing
We can choose one of the three Tax deduction types:
Tax Only: Only Tax deductions apply.
Tax and Pre-Tax only: Only Tax and Pre-Tax deductions apply.
Default: All types of Tax deductions apply.
Separate Check
Select Yes, if we want a separate check to be issued just for this element.

Let's talk about the standard Calculation rule a little bit. There are four predefined standard calculation rules in place:
·         Flat amount: The Earning is a flat amount.
·         Hours X Rate: The Earning is a multiple of number of Hours worked and Rate per hour.
·         Hours X Rate Multiple: This is as good as Hours X Rate, however multiple entries are allowed.
·         Percentage of Regular Earning: The Earning is a percentage of the Regular Earning.

Now, what about the two special elements we talked about earlier? The two elements are used for adjustments. For an example, if an employee’s regular salary is entered, and now, we want the salary to be increased by $50 just for this pay period, because of some adjustments. How do we do that? We can use the special Input elements. It can have two input values:
·         Replacement Value: This amount, if entered will replace the amount filled in with the original element.
·         Adjustment Value: This amount, if entered will be adjusted against the amount filled in with the original element.
To continue the same example further, we will use the replacement amount and put the new regular salary there, or will put in $50 in the adjustment value, so that it will be added to the original element while processing.
Using Deductions Template
What’s a deduction? It's the amount that needs to be deducted from the payroll. When we consider deductions, there are two major types:
  • Tax Deductions
  • Non Tax Deductions
We know what tax deductions are. These are the taxes we pay. Oracle has tied up with a vendor called Vertex, who takes care of all the taxes in Oracle Payroll in US. So we do not have to worry about the tax percentage and everything as of now. Oracle has got it covered. It will get cut from the employee's payroll automatically, based on his work address and home address. For all other localizations, there are specific taxing rules that are to be followed.
What are the Non Tax Deductions? These are the voluntary and involuntary deductions. Like a Life Insurance Premium / rate or a loan amount to be paid or a debt to be paid back to the company etc. So to configure these types of non tax deductions, we can either go for an element creation or create it via a template. Let's see how the template looks like. See Figure 5.9 – Deductions Template.
Responsibility: HRMS Manager
Navigation: Total Compensation -> Basics -> Deductions
Steps: Create a new record and start filling in the details.

Figure 9 Deductions Template





(Figure 5.9 – Deductions Template)


 Name
Name of the Element.
 Reporting Name
Another Name, that displays on the Pay slips and statements of earnings. 
 Description
Description of the element.
 Classification
The Primary classification.
 Category
This is a subtype of primary classification.
 Benefit Classification
This is another set of classification in place that can be used to handle benefits level deductions.
 Type
Recurring / Non Recurring - same as explained in elements.
 Start Rule
On Entry: The deductions begin as of the date on which the deductions are recorded.
Earning Threshold: The deductions begin only after the Gross Earning Balance reaches a threshold.
Run Type
Regular: It will be applied only to the Regular Runs.
Supplemental: It will be applied both to regular and supplemental Runs.
Termination
The date until which the element will be used (same as explained in Elements).
 Standard Check box
Appears on all eligible employee payrolls.
 Total Reached Stop rule
The Deductions stop once the deduction balance reaches a specific amount.
Series EE Bonds
Check if the deductions are related to series EE Bonds.
 Buy Back Check Box
This is used in Retirement plans.
 Deferred Compensation Rules
Eligible employees may elect to participate in a deferred compensation plan (e.g., 401(k), 457) or contribute to a tax–sheltered annuity (e.g., 403(b)) rather than receive the full amount of their salary in cash.  Participation in a deferred compensation plan is usually a pre–tax contribution that reduces   the employee’s taxable income. The maximum amount of salary that an employee may elect to defer and have contributed to a plan is subject to change yearly. In addition to Pre-tax contributions, employees may make after–tax contributions once the plan’s contribution limit has been reached. Employers may contribute matching amounts (the employer’s matching contribution does not have to equal the employee’s contribution).
Once the deduction is created and saved, Oracle Payroll automatically generates both the pre- and post-tax deduction elements (if applicable). Oracle Payroll requires us to link and enter values for these elements separately. Deferred compensation elements and links only need to be created once for an organization. Individual deferred compensation values must be entered and maintained for each individual assignment as dictated by ones benefit elections policy.
 Catch Up Processing
403(b) and 457 catch–up provisions allow eligible employees to exceed a plan’s maximum pre–tax deferral limit.
Oracle Payroll supports deferred compensation plans with catch–up provisions (e.g., 403(b) and 457). By enabling the appropriate catch–up provision, Oracle Payroll will automatically adjust an eligible employee’s maximum pre–tax contribution limit. We can then adjust the employee’s 403(b) or 457 deductions accordingly.
 Rules
This determines the amount to be deducted.
  • Flat Amount: The deduction is a flat amount
  • %Earnings: It’s a percentage of the total earnings the employee earns
  • Payroll Tables: It can be obtained from a user table. The table name in the Payroll Table text box must be mentioned, if this option is being selected
  • Benefits Table: It can be obtained from the Benefits Module. Based on the Coverage and plan the employee is enrolled in
 Insufficient Funds
With this option, system determines the action, if there are not enough funds to pay off the entire deduction.
Arrearage: This options tells the system to use the remaining amounts as arrears for forthcoming months
Partial Deduction: instructs the system to deduct the money partially, period after period.

In few cases, the deductions have to be made based on a particular frequency. For an example, an enterprise may wish to deduct $10 towards Company Car as of first pay period of every month. So, for an employee in weekly payroll, the $10 will get cut as of first week of every month; and for all other pay periods in that month, there will be no deductions towards the Company Car.
For requirements like these, Deductions have a mechanism known as Frequency Rules. One can choose the desired number of times deductions are to happen in one month, for each payroll. To satisfy the requirement in the example cited earlier, we must go to frequency rules button on the Deductions screen, and check the check box 1 against the required payroll. Here the number one signifies the first week of the month. Like wise one must check the numbers of the week on which the deductions are to be made.
Defining Links


Once the elements are in place, some eligibility criteria must be defined to help the system determine, whether an element can be attached to a particular employee or not. That concept is known as linking. Element links help us define the criteria using a set of indicative data. The elements will be visible on the element entry screen of an employee, only if s/he passes the eligibility criteria. One element must have at least one, and can have more than one links in order to be attached to an employee’s element entry.
The indicative data with which the eligibility criteria of an element link can be defined are:
  • Organization
  • People Group
  • Job
  • Position
  • Grade
  • Location
  • Employment Category
  • Payroll
  • Salary Basis
Responsibility: HRMS Manager
Navigation: Total Compensation -> Basics -> Link
Steps: Create a new record and populate the details. See Figure 5.10 – Element Links.
Figure 10 Element Links





(Figure 5.10 – Element Links)
Element Name
 Name of the element for which the link is being created
Standard
 If checked, It creates an entry for all eligible employees
Eligibility Criteria
 Choose the set of eligibility criteria for the element.
Link to All Payrolls
 If Checked, the element becomes available to all eligible employees in all payroll
Costing
  • Not Costed: The element is not costed against any account
  • Costed: The element is costed. Overriding the costing at lower level is allowed
  • Fixed Costed: The element is costed. Overriding is not allowed at lower levels. If this is chosen, the account details for the “to be costed “account must be entered here.
  • Distributed: The element is costed, however using a distribution set.
 Transfer to GL
This check box makes sure that the cost is transferred to GL once the payroll is run and ‘Transfer to GL’ process is run.
 Qualifying conditions
Qualifying conditions like age and length of service defined at the element description level can be overridden here for a particular set of employees, who satisfy the link.
 Input Values
The values given at the element description level can be overridden here. One addition on this screen is the ‘Costed’ checkbox next to each input value.
Remember, if we Override the Input Value default here, it does not change the default on the elements screen. The new Default will only be applied to the entries with the given link. All other links to the same elements remain intact.


Setting up Payroll


As per Core – HR Design, every employee assignment must have a payroll attached to it. The entity payroll, tells the system about the payroll frequency/ cycles, the valid payment methods, the check dates to which the assignment is entitled. Employees in a same payroll share the same payroll frequency and pay dates.
Payment Methods
Every organization has rules for its payment methods. Some organizations pay by Check, some by direct deposits to banks, and some even pay by cash. These methods of payments that an organization follows to pay its employees, is known as the Organizational Payment method.
Each employee of the organization may get to select the method with which s/he liked to be paid every pay period. These are the valid options that an employee can choose in order to get his salary. Some people like it on their bank account, some might like a check, and for some it could be both.
Each and every payroll clubs together a set of valid payment methods in it. So the available options can be specific to each payroll. For an example, an enterprise can define payment methods like this:
  • Weekly : Check only
  • Biweekly and Semi monthly : Check and Bank account (Automatic Transfer)
  • Monthly: Bank account only (Automatic Transfer).
The payment methods vary with the types of banks as well. For an example, if the enterprise deals with 4 different banks, like A, B, C and D. It will need four different payment methods defined for each of the banks it deals with, even though all of the payment methods will be of type ‘Automatic Transfer’.
Responsibility: HRMS Manager
Navigation: Total Compensation -> Basics -> Payment Methods
Steps: Create a new record and start filling in the details. See Figure 5.15 – Payment Methods.

Figure 15 Payment Methods





                (Figure 5.15 – Payment Methods)
 Name
 Name of the Payment Method
 Type
 The types of payment. Like check, cash or NACHA
 Currency
 The currency of the payment
 Third Party Payment
 Checked if the payment is of type third party payment
 Source Bank Country
 The country of the bank
 Bank Details
 This is the Bank details KFF

Consolidation Set
A consolidation set is a methodology that is used, to group payrolls with similar timelines together. This makes payroll process and post processes easy to manage and run. Although a lot of payrolls can be part of one consolidation set; every payroll must have one, and only one consolidation set attached to it.
Responsibility: HRMS Manager
Navigation: Payroll -> Consolidation
Steps: Create a new row with the name of the consolidation set. We can create as many as we want, based on our requirement. See Figure 5.16 – Consolidation Sets.
Figure 16 Consolidation Sets





 (Figure 5.16 – Consolidation Sets)

Payroll Definition
Once the payment methods and consolidation sets are defined they can now be associated with the payroll definition, along with the time period and the costing information. So payroll definition is the screen where payment dates, check dates, consolidation set, a default payment method etc are assigned to a particular payroll.
Responsibility: HRMS Manager
Navigation: Payroll -> Description
Steps: Create a new record and fill in the details. See Figure 5.17 – Define Payroll.

Figure 17 Define Payroll





 (Figure 5.17 – Define Payroll)


 Name
 Name of the Payroll.
 Period Type
 The frequency of the payroll must be selected here. New Frequencies can be defined in.
 (Navigation: Other Definitions -> Time Periods  
Responsibility: HRMS Manager)
 First Period End Date
The system determines the payroll dates (start date and end date) using the first payroll end date. The date is fed as an example to the system, using which it calculates all the other possible end dates.
For Example, If monthly, it can be, 31-JAN-2010.
 Number of Years
Signifies the number of years, for which the payroll will be effective
 Check Date
Represents the numbers of days after the End date, as of which the Checks will be cut.
This is an offset. So if it is -1 that means the checks will be cut as of 1 day before the payroll end date.
 Scheduled Run Date
 This is an Offset as well. This is the date as of which the payroll will be run.
 Cut Off Date
This offset represents the date post which, no updates to the payroll data should be made.
 Pay slip Date
 This is date as of which the online pay slips (in self service HR) will be visible to the employees.
 Payment Method
This is the default Payment method of the payroll.
This will be applied if an employee does not have any preferred payment method added to his assignment. In most cases its set as Check.
 Consolidation Set
The Consolidation set is added here
 Costing
 This is one of the screens, where cost allocation KFF can be updated.
 Suspense Account
If the costing of a particular payroll / element is not costed to any account. It gets added to the suspended account. The suspended account details need to be added here.
 Negative Payment Allowed
This field determines if a negative value be issued in case the deductions are higher than the earnings for a pay check
 Multiple Assignments
This field tells the system, whether to process an employee, if he has multiple assignments with two different payrolls.
 Period Dates
This button opens up a screen that shows the dates for each payroll cycles, along with the cut off date, check date etc.
These dates can be changed (overridden) in this screen, in case the dates are to be changed for a given period.
 Valid Payment Methods
 This lists out the valid payment methods that an employee might choose.


GL Flexfield Mapping



Payroll is all about paying salaries to employees. And the salary must be heaved from an account in the enterprise. Usually the labour cost is distributed based on different organizations that get benefited by the work. The distribution system is known as costing.
As discussed earlier, the costing information must be passed to the finance department in order to keep an account of labour cost. GL (Oracle General Ledger, a module in Oracle Financials) owns a key flex field known as Accounting flex field. Oracle financials uses the Accounting flex field to identify different accounts linked to the enterprise.
The GL Flex field mapping helps the system link different accounts setup in the HRMS system with the accounts available in GL (accounting flex field). In other words, with the GL Mapping we are going to establish a relationship between the Cost allocations KFF with the Accounting KFF. With this mapping in place, when the costing process (A post processing process) is run, it helps the system to carry the costing information to GL.
Responsibility: HRMS Manager
Navigation: Payroll -> GL flex field Map
Steps: Query the payroll and fill in the details. See Figure 5.18 – GL Flex Field Mapping.
Figure 18 GL Flex Field Mapping





(Figure 5.18 – GL Flex Field Mapping)
 Payroll
 Name of the Payroll
 Period
 Period type of the Payroll. This is auto populated
 GL Set of Books
 The set of books to which the costing data belongs
 Payroll Costing Segments
 The Cost Allocation KFF segments
 GL Chart of Accounts Segments
 The corresponding Accounting FF segments

Element Sets


There will be many situations in payroll processing, where we need some kind of grouping to keep things in order and to keep them easy. Tools like, Element sets, or Assignment sets help us processing things easily on a group of elements / assignments, without any hassle of re-entering the Element Names and Assignment Numbers repeatedly.
To start with element sets, these are of three types:
  • Customization Set: A Customization set is used, to restrict the elements that can be entered or viewed on a configured version of the Element Entries window. It can also be selected for element entry purposes, using BEE in the Batch Assignment Entry window.
  • Run Set: In a situation where an Oracle Payroll user wants to run payroll for a given set of elements, rather running it on all elements; s/he can use a Run set to specify the elements to be processed in the run.
  • Distribution Set: An Oracle Payroll user can use a Distribution set to define the elements over which the costs of other elements are to be distributed.
Let’s look at the steps to configure an element set.
Responsibility: HRMS Manager
Navigation: Payroll -> Element Set
Steps: Create a new record and start entering the details. See Figure 5.19 – Element Sets.

Figure 19 Element Sets





(Figure 5.19 – Element Sets)


 Name
The Name for the element set
 Type
The type of the see. Should be one of: Customization / Run / Distribution
 Include Elements
This window helps the users to assign elements into the element set
 Exclude Elements
This window can be used to exclude elements from the set, this comes handy when a user wishes to add up a complete classification but a few elements
 Element Rules
This window displays all the Elements included in the set
 Classification Rules
A user can select One or more Primary Classifications here to Include the elements in that classification.




Assignment Sets


Assignment sets enable us to group a number of assignments together, and then run any process on them. Examples of its usage are, running payroll for a set of assignments, Loading Element entries for a set of assignments etc.
To create an assignment set:
Figure 20 Assignment Sets





(Figure 5.20 – Assignment Sets)
Responsibility: HRMS Manager
Navigation: Payroll -> Assignment Set
Steps: Create a new record and start entering the details. See Figure 5.20 – Assignment Sets.

 Name
Name of the Assignment Set
 Payroll
May or may not be populated. If a payroll is chosen, then assignments, only from that payroll will be included
 Criteria
One or more conditions can be defined in this window, which will define the eligibility of an assignment to be part of this set. For an example, one assignment set can have the following conditions.
  • ‘&EMP_HIRE_DATE’ ‘>’ ’01-JAN-2012’
  • AND
  • ‘&ASG_EMPLOYMENT_CATEGORY’ ‘LIKE ‘F%’
So all the assignments that are hired after 1st JAN 2012 and are Full time will be included in the assignment set.
 Amendment
In case there are a list of employees to be included as part of the assignment set, one can use the Include/ exclude flag and the employee numbers to define the criteria.
For an example, one assignment set can include employees with employee numbers: 13662, 13663, 13664 and Exclude 13661.
 Generate
The Generate button is used, to generate a formula once a assignment set is defined. We can view and edit the formula in the Write Formula window. The name of the formula remains same as the assignment set.
In other hand, if we evaluate the fast formula for an assignment, it will return Yes / No based on the eligibility criteria and the assignment being evaluated.


Managing Balances


A balance is helpful to store positive or negative accumulation of elements. This can be fed by the pay run results or by an Input value. Usually a balance is created when we need to track an aggregated value associated to one or more elements, for the purpose of reporting or validations. To Measure a balance, we have dimensions and levels.
Dimensions: These are the different axes through which the system can calculate the numbers. For an example, the gross earning in this month, in this Quarter, in this Year; are the different time dimensions.
Levels: These are the levels on which the dimensions will be applied. For an example, if we take Month as the time dimensions, the levels can be, Monthly Salary of an assignment, Monthly Salary of an employee, Monthly Salary of a department etc.
To summarize, balances are a way of keeping track of one or more elements with various dimensions and levels. Once the balance is created, the system needs to know the different elements that will be part of the balance calculations. The attachment of elements to balance, can be done in three ways:
  • Using Primary Classifications: The run result of all elements, under the classification will be gathered in the balance.
  • Using Secondary Classification: It’s as good as using Primary classification, however the classification changes to a more granular level.
  • Using Individual Elements: We can either choose a Run Result or an Input value for the same. However if we are using an Input value, we should always have the units same as balance's unit.
Let's seethe steps involved to create a balance.
Responsibility: HRMS Manager
Navigation: Total Compensation -> Basics -> Balance
Steps: Create a new record and start filing the details in the fields. See Figure 5.11 – Define Balance.

Figure 11 Define Balance





(Figure 5.11 – Define Balance)
 Name
 A name of the balance.
 Reporting Name
This is the name that appears on Reports and payslips
 Units
 The unit on which the balance is going to Operate. Like Money, Hours Worked etc.
Currency
 If the Unit is Money, It must have currency added to it
Use for Remuneration
This is used for remuneration Balances and only one balance can have this box checked
 Gross Up
 Once checked, the balance works as a gross up
 Feeds
This window can be used, to assign elements to the balance. The “Add / Subtract” column can be used to instruct the system whether to add / subtract the amount from the base value.
 Classification
One can select a Classification, in case the entire classification (including all elements in it) is to be included in balance calculations
 Dimension
These control the number of values to include in the balance. It could be based on time span (year to date, quarter), level (person, assignment) or restriction (by database item).
 Initial Feed
This stores the initial value of the balance. It’s not mandatory; however it helps in implementation cases.
Let’s say there is a requirement, where a balance for Car hire must be set as 30 at the start of every year. And each time an employee hires a car through the company, the amount must be subtracted from the base amount to store the remaining hires. For situations like this Initial feeds come handy.

Laws of Balance:
  • Either Feed or Classification has to be entered in a balance. We must not enter both.
  • In either screens, it populates only those elements that have an input value of the same unit as of Balances.
Balance Feeds
As we discussed earlier, there are three ways to assign elements to a balance. However we can broadly divide the ways into two, using Elements, and using Classifications (Including both primary and secondary). Let’s discuss both the ways in detail.
Using Elements:
Responsibility: HRMS Manager
Navigation: Total Compensation -> Basics -> Balance -> Feeds (Button)
Steps: Create new rows and start filling in the details. See Figure 5.12 – Balance Feeds.

Figure 12 Balance Feeds





(Figure 5.12 – Balance Feeds)
This screen helps us to seed the Input values of various Elements into the Balance. 
 Element Name
The Name of the element to be associated.
 Classification
It auto populates the Primary classification for the element selected
 Input Value Name
Select the Input value that will be used in the Balance. The Unit must match with the unit of the balance
 Add / Subtract
To be selected based on the logic of balance calculation

Using Classifications:
Before assigning Classifications to the Balances, there might be a need to create secondary classifications. Because in most cases, all the elements in a Primary classification are not meant to be included in a single balance; and the inclusion is needed just for a subset of it. So in cases like that, secondary classification is created first as a subset of the primary, with the required elements in list; and then the secondary classification is attached to the balance.
Responsibility: HRMS Manager
Navigation: Total Compensation -> Basics -> Balance -> Classifications (Button)
Steps: Create new rows and start filling in the details. See Figure 5.13 – Balance Classifications.

Figure 13 Balance Classifications





 (Figure 5.13 – Balance Classifications)

 Classification Name
 The Name of the element to be associated
 Add / Subtract
 To be selected based on the logic of balance calculation.


Balance Dimensions
As discussed earlier, Dimensions are the axes of a balance that can provide data related to a specific area/ time. Most of the dimensions used in balances are related to time.
Responsibility: HRMS Manager
Navigation: Total Compensation -> Basics -> Balances -> Dimensions (Button)
Steps: Create new rows and start filling in the details. See Figure 5.14 – Balance Dimensions.

Figure 14 Balance Dimensions





 (Figure 5.14 – Balance Dimensions)
Dimension Name
Name of the dimension. Select one from the LOV.
Description
This is auto populated, and explains about the selected dimension.
Gross up Balance 
This is as good as a default check box. Only one of the dimensions can have this checked.
Status 
Shows up status. This is auto populated based on processing.

Initial Balance Feeds
An initial feed is used, to initialize a balance with a value to start with. One element and one of its input values must be selected to initialize the balance. And later, as the processing continues, the additions and subtractions are made to the initialized value, based on the definition.
Responsibility: HRMS Manager
Navigation: Total Compensation -> Basics -> Balances -> Initial Balance Feed (Button)
Steps: Create new rows and start filling in the details.

Element Name
 Choose the name of the element
Input Value Name
 The Input value of the selected element, to be used as the initial value.


Processing Payroll

Contents
  1. Pre-Processing
    1. 1.1 Getting Time Card Data
    2. 1.2 Getting Benefits Data
    3. 1.3 Getting Payments Data
    4. 1.4 Getting Absence Data
  2. Processing
  3. Post Processing
    1. 3.1 Prepayments
    2. 3.2 Magnetic Transfer
    3. 3.3 Archiver
    4. 3.4 Check / Cheque Writer
    5. 3.5 Deposit Advice
    6. 3.6 Costing
    7. 3.7 Transfer to GL
    8. 3.8 Other Standard Reports
  1. Validating Payroll Run
    1. 4.1 Process level View
    2. 4.2 Assignment level View



Now, let's come back to the place where we started. In the flash back, we learnt, how to configure things alright? Now we will learn about the processing. Here we will use everything that we've defined this far.
We know we have three stages to process the payroll.
  • Pre-Processing
  • Processing
  • Post-Processing

Pre-Processing


This is the stage where all the preparations are done; things like, creating element entries, getting the costing in place, taxing etc. So let's talk about these a little bit.
Getting Time Card Data
It all starts with the Time card entry, which happens to be another module in Oracle HRMS called OTL (Oracle Time and Labour). With OTL, we get all the time cards captured. Employees log in to OTL, enter the time sheets and then it stores the time entered by each employee. It also has rules in place to determine, whether it’s a regular working hour or an Overtime Hour.

Now, as we have the time card in OTL, we can either run a process to get it loaded on to Payroll system, or we might get the Time card entries in the form of a file(Cases where Time card is managed by a vendor), which can in turn be loaded by using BEE. So once either of the process is complete, which means the data is transferred to the assignment entries, the time sheet information is captured.
Getting Benefits Data
To move on, we should then look into the Benefits side of it; the deductions by the Insurance premium / rate. It’s captured by OAB (Oracle Advanced Benefits) OR OSB (Oracle Standard Benefits). If we have the benefits system implemented, it will automatically create assignment entries based on the deduction. However If our Benefits is managed by a Vendor, we must request a Payroll Extract / Payroll Interface for the same. Once we receive the Extract, we will have to use either an Interface or BEE to load the Entries on to the assignments. So that takes care of the Benefits portion of it.
Getting Payments Data
So next is the salary. We will have to create Regular Hours / Regular Salary elements to link it to Assignments. Isn't it? However in few cases, we might have to give some additional payments to the Employees other than the regular wages. So, we should always have those types of Non-Recurring elements in place, so that whenever we need some additional payment, we could use the appropriate Element. The Wage Attachment itself is a big subject to discuss. Please see the Wage attachment link for further information on the same.
Getting Absence Data
Employees go on leave; sometimes they go on Paid Leaves, and sometimes even on unpaid leaves. The Paid Leaves are something that an employee must accrue during his tenure/ length of service in the Company. Like the longer he stays, the leaves get added/ get carried over from one year to another, based on business rules. That is known as PTO (Paid Time Off) accruals. So we must have the Information elements in place to gather the PTO information, so that we can print that along with the Pay slips, to let the employee know about the accrual numbers. For Unpaid leaves, the data is taken from the OTL, and based on that the payments are made.
Once all these data are captured, the next task is to Process the Payroll.




Processing


Now, we will process a Payroll. To do the same, we will have to run it through a seeded Concurrent Program. The name of the Program is "Payroll Run / Payroll Process".
Responsibility: HRMS Manager
Navigation: View (M) -> Request (M) ->Submit a new request -> Single request
Steps: Enter the name of the Process "Payroll Run / Payroll Process" and enter the parameters. See Figure 5.23 – Payroll Process Parameters.
Figure 23 Payroll Process Parameters


(Figure 5.23 – Payroll Process Parameters)

 Payroll Name
 Name of the Payroll
 Consolidation Set Name
 Name of the Consolidation set used in the Payroll
 Date Earned
 The Pay period end date
 Date Paid
 The Pay period end date
 Element Set Name
 Name of the element set, if the run has to be on specific Elements
 Assignment Set Name
 Name of the assignment set, if the run has to be on specific Assignments
 Regular
 Type of run : Regular / Supplemental

This will process the payroll. We can always check the Concurrent Program to see if there are any Errors in the log file. We can also check the number processed to be reasonable. There is a screen called Payroll Process Results (Navigation:  View -> Payroll Process Results). Look for the payroll Name and the time period, if the process status is complete, that means the payroll has no errors. We will discuss more about it later in this chapter.




Post Processing


So now, as the payroll is processed, what are the next steps? There is a lot of processing involved. Some are mandatory processes, and some are optional. Usually the Optional Processes are to generate reports that can be used for verification. Usually Payroll Administrators ask for their own set of reports for comparison and logging, which is very enterprise specific. However in this section, we will learn about the Mandatory processes first and then will look at some of the widely used optional Processes.

Prepayments
This is a mandatory Process. This process looks in to the amounts processed for each of the employees and their respective Payment methods. It then divides the money to be paid on to their Payment methods. So for an example, Joe's salary for his month is $5000, and he has two preferred payment methods, 20% as a check and rest of the money in a Bank Account. After running Prepayments, the system will know that it has to transfer $1600 in to his bank account and it has to give $400 as a check to Joe. To run the process, we need to go to single Request and put the process name as PrePayments. See Figure 5.24 – PrePayments Parameters.
Figure 24 PrePayments Parameters


(Figure 5.24 – PrePayments Parameters)

 Name of the Process
 PrePayments
 Payroll
 Name of the Payroll
 Consolidation Set
 Name of the Consolidation set used in the Payroll
 Start Date
 The Pay Period End Date
 End Date
 The Pay Period End Date
 Payment Method Override
 This can be used to override all payment methods. For an example, if our Enterprise wants to pay everyone by Check this month. No Bank Transactions. We can override this payroll run to be on Checks only.

Usually in Start and End Date fields we should enter the date span in which the Prepayment will be run. The System will look in to the payroll tables to see, if there is any amount that has not paid yet with in those two dates. If it finds any, it will sort that according to the Payment methods. However as we should be running Prepayments after every payroll, the dates should always be the Pay Period end date. This saves a lot of system time.
If the system does not find details about the Personal Payment methods, then it will default the payment with the Default payment method used with the payroll. Usually the default payment method is Check.


Magnetic Transfer
As we know, this is the process for direct deposits. UK localization supports the BACS and North American Localizations support NACHA, similarly all localizations follow a specific payment gateway. This process generates an output file that can be sent to the Bank and the treasury.
 Name of the Process
 NACHA / BACS/ Process type based on Localization
 Payroll
 Name of the Payroll
 Consolidation Set
 Name of the Consolidation set used in the Payroll
 Start Date
 The Pay Period End Date
 End Date
 The Pay Period End Date
 Payment Method
 Choose Direct Deposit
 Deposit Date Override
 An Override date, if we want the Deposit to happen later
 File Id Modifier
 Choose 0

Once the Process is run, we can select the output of the Process and verify the details. We can then send the Output report to the Bank via established Preferred Electronic Media.
In few cases, in US Localization, we would also need to run the NACHA Report. This Report gives us the clear picture about the Number of Deposits and the Total Dollar amount.
 Name of the Process
 NACHA Report
 NACHA Process
 Choose the NACHA process that was run with the table above.
 Totals Only
 Choose ‘No’ to get a detailed report.

We can then send this Report to our HR managers for a review.


Archiver
Now, as the Payments are about to happen through the Direct Deposits, which is Bank's headache now, we will proceed to the next action item, Payroll Archive. This Process generates a pay slip kind of report. This is an optional step for most of the localizations.
 Name of the Process
 Payroll Archiver
 Start Date
 The Pay Period End Date
 End Date
 The Pay Period End Date
 Payroll Name
 Name of the Payroll
 Consolidation Set Name
 The Consolidation set associated with the Payroll

Check / Cheque Writer
Let's write some checks. If we have ‘check’ as one of the valid payment methods then we need to write the checks to get them out to the Employees. To do so, we will run a process called the Check Writer process. We must have the Printer in place with the check leaf book attached, so that the checks can be generated.
Here, we must have the start check number with us. We can get that from the Printer. All we need is the number of the first check leaf which is going to be printed.
 Name of the Process
 Check Writer
 Consolidation Set
 The Consolidation set associated with the Payroll
 Start Date
 The Pay Period End Date
 End Date
 The Pay Period End Date
 Payment Method
 Check
 Sort Sequence
 Any sorting preference. Advised : Organization, Person
 Start Check Number
 The number of the first check leaf on the Printer
 End Check Number
 Optional. Fill in only if the count is known
 Check Style
 Choose a style of check printing: "Payroll Check" for the Usual check writer and "Third Party Check" for the Garnishment / third party payments

We will have to run this Process twice, once for the Normal Payroll check, and again for the Third party Garnishments.

Deposit Advice
The Deposit Advice actually prints the Pay slips that we might send to the Employees. This Process goes through the Statements of Earning and gets us the details of the Earning and Deductions in a more understandable format as a report.

 Name of the Process
 Deposit Advice
 Consolidation Set
 The Consolidation set associated with the Payroll
 Start Date
 The Pay Period End Date
 End Date
 The Pay Period End Date
 Sort Sequence
 Any sorting preference. Advised : Organization, Person
 Assignment Set
 Enter the Assignment set, if we want to run this for a set of Employees only.
 Deposit Advice Style
 Choose a style of Deposit Advice. You can create your own style and use it here.


Costing
As Part of this process, Payroll Engine divides the costs according to the Cost Allocation Flex Field, keeping Overrides in consideration. This Process assures that the cost paid for labour is accurately being captured. If no Costing Information is found on any particular entry, the cost goes to the Suspense Account.
Name of the Process
Costing
Payroll
Name of the Payroll
Consolidation Set Name
The Consolidation set associated with the Payroll
Start Date
The Pay Period End Date
End Date
The Pay Period End Date


Transfer to GL
This Process is the one that takes care of the migration of cost to the General Ledgers. The Payroll Costs are migrated to the General Ledger and then it gets added against the actual financial accounts.
Name of the Process
 Transfer to GL
Consolidation Set Name
 The Consolidation set associated with the Payroll
Start Date
 The Pay Period End Date
 End Date
 The Pay Period End Date


Other Standard Reports
There are a few other Standard Reports that can also be processed as part of the Oracle Payroll for reporting purposes. Here is a list of few popular ones; however there are a lot of seeded reports that can be used. We can also create our own reports and use them for analysis, based on the requirements posted by our Payroll administration team.
Payroll Activity Report: This report is run just after the Payroll Process and before the Prepayments. With this report we can view the status of the Payroll with details like, how many employees are processed, what is the total Earnings, Total Deductions, Total Taxes etc. It can be processed with the following details:
Name of the Process: Payroll Activity Report
  • Beginning Date Paid: Last Day of Current Pay Period 
  • Ending Date Paid: Last Day of Current Pay Period 
  • Process Type: Payroll Runs
  • Suppress Current Zero Records: Yes
  • Full Report: Yes
  • Reporting Dimensions: Run
  • Sort Option One: GRE
  • Employee Page Break: No
  • All other parameters should be NULL

Costing Detail Report: This is run after the Transfer to GL process is complete for all Payrolls as of that date. This gives us a detailed picture of the accounts and the respective Labour costs for all Payrolls run as of the given dates.
Name of the Process: Costing Detail Report
  • Costing Effective Date Begin: Last Day of Pay Period
  • Costing Effective Date End: Last Day of Pay Period
  • Output File Type: HTML
  • All the other parameters should be NULL.

Costing Summary Report: This is run after the Transfer to GL process is complete for all Payrolls as of that date. This is more or less similar to the Costing Detail report, however with a summary of data, not with details.
Name of the Process: Costing Summary Report
  • Costing Effective Date Begin: Last Day of Pay Period
  • Costing Effective Date End: Last Day of Pay Period
  • Output File Type: HTML
  • All the other parameters should be NULL.

Payroll Register Report: This is run after the Transfer to GL process is complete for all Payrolls as of that date. This gives us details on the entire payroll process, starting from prepayments to costing for all Payrolls run as of the given date.
Name of the Process: Payroll Register Report
  • Beginning Date Paid: Last Day of Pay Period (i.e. 06-MAR-2010)
  • Ending Date Paid: Last Day of Pay Period (i.e. 19-MAR-2010)
  • Suppress Zero Count Records: Yes
  • Full Report: Yes
  • Reporting Dimensions: Current
  • Sort Option One: GRE
  • Employee Page Break: No
  • All the other parameters should be NULL.

Payment Register Report: This is run after the Transfer to GL process is complete for all Payrolls as of that date. This gives us details on the Payments made to the Employees as part of Labour cost for all Payrolls run as of the given date.
Name of the Process: Payment Register Report
  • Starting Pay Date: Last Day of Pay Period
  • Ending Pay Date: Last Day of Pay Period
  • Payroll: NULL
  • Consolidation Set Name: The Consolidation Set being used
  • Selection Type: Original Payment Date
  • Display Employee Details: Yes
  • Summary Report: No
  • All the other parameters should be NULL.
Third Party Payment Register Report: This is more or less the same as the Payment Register Report. However this tracks the Third Party Payments only.
Name of the Process: Third Party Payment Register Report
  • Starting Pay Date: Last Day of Pay Period
  • Ending Pay Date: Last Day of Pay Period
  • Payroll: NULL
  • Consolidation Set Name: The Consolidation Set being used
  • Selection Type: Original Payment Date
  • All the other parameters should be NULL.
US Gross to Net Summary: With this report, we can see the summation of Salary information of the employees with Gross Earnings, Net Earnings and deductions.
Name of the Process: US Gross to Net Summary
  • Starting Pay Date: Last Day of Pay Period
  • Ending Pay Date: Last Day of Pay Period
  • GRE: NULL
  • Payroll: NULL
  • Consolidation Set Name: The Consolidation Set being used
  • Sort Option One: NULL
  • Sort Option Two: NULL
  • Sort Option Three: NULL
  • Template: US Gross to Net Summary (PDF)


Validating Payroll Run


As the payroll is processed now, how do we validate the results? We can do it in many ways. We can view the run results sorted by assignments or processes.
Process level View
This window shows all the details related to the processes run for a particular payroll for a given period. Every process that we run as part of Processing / Post Processing get registered here. See Figure 5.25 – Payroll Process Results
Responsibility: HRMS Manager
Navigation: View > Payroll Process Results
Figure 25 Payroll Process Results


(Figure 5.25 – Payroll Process Results)
 Assignment Process
 To see the Process Results for a given assignment
 Messages
 To see Error messages related to a given assignment
 Costing Breakdown
 Shows the Costing Breakdown
 Process Information
 Shows the Concurrent Process status and details.
 Concurrent
 Opens up the View Concurrent Programs window

Assignment level View
Like the Payroll Process Results, this screen helps us monitor the processes run for a given Assignment. See Figure 5.26 – Assignment Process Results.
Responsibility: HRMS Manager
Navigation: View > Assignment Process Results
Figure 26 Assignment Process Results

 (Figure 5.26 – Assignment Process Results)
 Messages
 To see Error messages related to a given assignment
 Run Results
This button opens the Run Results window to show the Pay Value of each element processed for the employee, together with basic information about the element. From the Run Results window, choose the Run Result Value button to view the input values for an element.
 Balances
 Shows up the Balance window for the Balance related Information
 Payment Methods
 Shows the details about the Payment method and the amount of money added to that as part of the Payroll.
 Costing
 Shows the Costing Breakdown
 Balance Adjustments
 Shows the Balance Adjustments if any
 Payment
 Shows the Payments made by this payroll. Includes all. Direct deposits, Garnishments and Check payments
 SOE Report
 Displays the Statement of Earning

Correcting Payroll
Contents
  1. Corrections
    1. 1.1 Rollback
    2. 1.2 Retry
    3. 1.3 Reversal
    4. 1.4 5.4.6.4 Adjusting Balances
  2. Quick Pay
  3. Retro Pay
    1. 3.1 Retro by Aggegate
    2. 3.2 Retro by Run
    3. 3.3 Retro by Element
    4. 3.4 Retro by Set
    5. 3.5 Retro pay process


Corrections


There will be moments, where we have finished the Payroll run and Pre-Payments. We processed some report and figured out that, there is some issue with a set of Assignments. The same thing can even happen just after the Payroll Run, or in some cases, after Transfer to GL. Now how do we handle the situation? Is there any way we can correct the data. Yes. There are three different Processes.
  • Rollback
  • Retry
  • Reversal
Let's discuss these one by one.
Rollback
This is the most commonly used feature. We can use this to un-process the Payroll. However using a Rollback removes the entire history of the data. Let's use Joe's example. All of a sudden we realize that Joe has been paid $200 extra this time. Now we are at the last stage of our post processing. We are running costing now. How do we fix the Issue? 
We will Rollback the Payroll for Joe. We will Rollback the Costing for Joe first. Then the Check writer job, then the NACHA / BACS, then the PrePayments and finally we will rollback his payroll. We will fix his elements, and rerun the entire set of jobs again in the actual order only for Joe.
Cases: So what are the cases where we would process Rollback?
  • We have processed Payroll for a person with a wrong Salary
  • We have processed Payroll for a guy who was terminated long back
  • We have processed Payroll for a wrong assignment set
How: How to Rollback?
  • To rollback payroll of a set of Individuals, Go to the View -> Payroll Process window OR Go to the View -> Assignment Process. Click on the individuals we want to rollback and select Delete Record from the Edit Menu.
  • To rollback payroll of an entire payroll, Submit a new request: "Rollback US Payroll Process". Choose the Payroll run. And Submit.
Retry
Retry is used when we see a small mistake just after the Payroll run. We want to fix it and move ahead with the Process. This is done when we see a set of assignments are processed wrong. We fix the data causing issue and then mark them to retry. It processes only those entries that are incorrect. In some cases where we saw there is something wrong with the Fast Formula we just recompiled; probably a calculation mistake. We fix it and run a retry.
Cases: So what are the cases where we would process a Retry?
  • We have an issue with the Calculation method used in a FF
  • We found out an issue with a set of assignments, where an earning was not added at all.
How: How to Retry?
  • To retry for an assignment, Go to View ->Assignment Process and select the Process we want to retry. Check the Retry Box.
  • To retry for a set of assignments, Go to View ->Payroll Process and select the assignments we want to retry. Check the Retry Box. And then run the "Retry US Payroll Process".
  • To retry an entire Payroll, Go to View ->Payroll Process and select the run, Check the Retry Box. And then run the "Retry US Payroll Process".
Reversal
Reversal is chosen in cases when all the processes are already complete, and we see an issue with an assignment. This will reverse all the Processes this far for the particular Run for the particular assignment. 
Cases: So what are the cases where we would process Reversal?
  • An assignment was processed incorrectly like: An employee got a payment of $400 by a check, which should have gone to someone else.
How: How to Reverse?
  • Open the Employee's assignment screen.
  • Others -> Reverse Run
  • Select the Run we want Reverse.
  • Check the Reverse check Box.
5.4.6.4 Adjusting Balances
When Balances are calculated wrong, or we have done some manual workaround and want the Balance to be updated for the same, we can opt for Balance adjustments.
  • To view Balance of any particular assignment, we can go to View -> Assignment Process Results -> Employee Assignment Processes
  • To Adjust Balances, we can go to the Assignment Record of the Employee, Others->Adjust Balance.

Quick Pay


QuickPay is the process that can be used to process Payroll and Prepayments for one Individual assignment at a time. So this is the Assignment level version of the Payroll Process. Although all the other   Post Processing except the Prepayments has to be done separately, but this tool, can help us to do small changes on the assignments and rerun the payroll for them, after a successful rollback. This can also be used as a testing tool. We can just run a quick pay and see the SOE. Once our validation is done, just roll back the Quick pay. It’s so simple.
Figure 27 QuickPay Process

(Figure 5.27 – QuickPay Process)

Quick pay can be processed from the assignment screen of an employee. Others -> QuickPay
  • Choose the pay period for which we want to process the quick pay
  • Enter the Pay period end date
  • Select run type as Regular
  • Save the record and Process.


Retro Pay


Retro Pay are one of the Important tools with which we can fix something that has happened in Past. For an example, salary of an employee is increased to $300 as of March, effective from the Month of January. Now, we need to make sure that the Amount of money accumulated since January to March to be paid as part of March Payroll; Similarly, if the Rate of Medical Insurance has been changed from $450 to $550 as of March, effective from the month of January. Here we need to adjust the $100/ month for three months. How do we do that?
There is a process called the Retro Pay that can solve the problem. There are three types of Retro pays, however not all of them are available in a particular localization. 
  • Retro Pay by Aggregate
  • Retro Pay by Run
  • Retro Pay by Element
Even though the concept looks simple, it’s not. We must think about the deductions and taxes in place. If the salary increases by $100, my system will need the entire calculation to be done once again. Not only that, even my balances will need updates. Oracle Payroll takes care of all that. Let's discuss how to achieve the same.

Retro by Aggegate
We can use this, if we do not want to see the way Payroll derives the amount. If we take Joe's example forward, we will never see how payroll came up with that $300 for the three Months, if we use Retro Pay by Aggregate. It’s abstracted. Here it was simple to track, as its just $100/ month. But in Complex Calculations it will be completely abstract.
Set up:
  • Complete the Salary level changes.
  • First thing is to create/ update the element entries with the new value.
  • Now, create the retro pay elements with the following details.
    • Pick an appropriate classification. Should not be Information.
    • Type should be Non-Recurring
    • Should have three input values - Pay Value, Start Date, End Date
  • Create an Assignment set with the Impacted assignments
  • Link the element to the assignment set
  • Create a Retro pay set
  • Process Retro pay request.
Retro by Run
This one is similar to "Retro Pay by Aggregate". Just that it gives us the clear picture without any abstraction. It allows us to see how backdated changes are distributed across Individual processes. Here the system uses the old information and also calculates the difference using the new information and finally updates the system.
Set up:
  • Follow everything that's there in the "Retro Pay by Aggregate". However with the following changes on the element:
    • Multiple Entries allowed flag should be checked
    • It just needs one Input Value "Pay Value". No Start date or end date would be required.
Retro by Element
This option is chosen when we want the retro to be applied for one single Element without recalculating the others. This is highly specific to Elements and does not happen a lot often. Imagine just a Post Tax Bonus was updated wrong in Joe's record. To correct situations like that, we might need Retro Pay by Element
Set up:
  • Update the element entries with the desired value.
  • Create an assignment set 
  • Create an Element Set of type Run Set
  • Process Retro Pay request
Retro by Set
This is not required in Retro Pay by Element. This is used only in the other two cases.
Responsibility: HRMS Manager
Navigation: Payroll -> RetroPay Set
Steps: Create a new record and enter the details.

 Name
 A name for the Retro Pay set
 Description
 Description of the Set
 Balance
 If it's for Retro Pay by Run it must be "ASG_RETRO_RUN". Else, choose an appropriate balance.
 Element Name
 Choose the Retro Pay element here
 Input Value
 Select Pay Value

Retro pay process
Responsibility: HRMS Manager
Navigation: View (M) -> Request (M) ->Submit a new request -> single request
Steps: Enter the name of the Process "RetroPay by Aggregate or RetroPay by Run or RetroPay by Element." and enter the parameters.

 Assignment Set
 Name of the assignment set
 Retro Pay Set
 Enter the Retro Pay set if it’s not Retro Pay by Element
 Element Set
 Enter the Element set if its Retro Pay by Element
 Start Date
 Start Date of the Retro
 End Date
 End Date of the Retro

Oracle Payroll now rolls back and reprocesses all the payrolls for the assignment set from the date we specified. The system compares the old balance values with the new ones and creates entry values for the Retro Pay elements based on the difference. These entries are processed for the assignments in the subsequent payroll run for our current period. No changes are made to our audited payroll data.
Summary


Payroll does not deal with a lot of tables, in comparison with other modules like Benefits / Core-HR. So the idea was to go through the functional set ups first and then look at the technical aspects, and peep through the tables.

PAY_ELEMENT_TYPES_F: No need to say, that this is a date track enabled table. This table stores the details about all the elements in the system. The Primary key is ELEMENT_TYPE_ID and the two date fields. This is usually used to get the name of the element, as ELEMENT_TYPE_ID is used in a lot of places to refer to the element.

PAY_ELEMENT_LINKS_F: This one is date track enabled as well. This one stores the details on the links. The primary key is: ELEMENT_LINK_ID and the two date tracked columns, stores the ELEMENT_TYPE_ID as the foreign key. 

PAY_INPUT_VALUES_F: This table stores the Input values for each element. This is the Date track enabled table. The primary key is INPUT_VALUE_ID and the two date tracked columns. This table also holds the ELEMENT_TYPE_ID as a foreign key to PAY_ELEMENT_TYPES_F. This can be used to pull in the Element input value name.

PAY_ELEMENT_ENTRIES_F: This is another Date tracked table. This one stores the details about the element entries. The table stores the Entries with the ASSIGNMENT_ID and the ELEMENT_LINK_ID as foreign key. The Primary key is ELEMENT_ENTRY_ID. This table also links itself to PAY_ELEMENT_TYPES_F with storing ELEMENT_TYPE_ID as a foreign key.

PAY_ELEMENT_ENTRY_VALUES_F: This date track enabled table stores the values for each entry. This table has only 6 columns. Out of which,  the Primary key is: ELEMENT_ENTRY_VALUE_ID and the two date tracked columns, it stores the ELEMENT_ENTRY_ID as the foreign key to PAY_ELEMENT_ENTRIES_F and the SCREEN_ENTRY_VALUE stores the actual value of the Input Value. The INPUT_VALUE_ID column links the table to the Input values table (PAY_INPUT_VALUES_F).

PAY_PAYROLL_ACTIONS: This table logs all the actions taken by the Payroll Engine. Primary key is PAYROLL_ACTION_ID, and it logs in each and every activity. The Table is capable enough to store a lot of information as it has got columns to store all kind of data used in Payroll; although it does not populate all the columns / row. However it logs in only the ones those are needed.

PAY_RUN_RESULTS: This table stores the status related to the elements against the assignment actions. The primary key is RUN_RESULT_ID. ELEMENT_TYPE_ID and ASSIGNMENT_ACTION_ID are the two other important foreign keys.

PAY_RUN_RESULT_VALUES: This table takes the RUN_RESULT_ID and the INPUT_VALUE_ID and stores the Value obtained by the Payroll Engine.
So these were the important tables in Payroll. However here is a list of few others, which are use very frequently. 
  • In the table below, if the Date tracked column is marked as Yes, assume the Primary key to be Composite. The given Primary with bind with the two date tracked columns to make the Composite Primary key.
  • The below table is in Alphabetical order.
  • Some of the values in the column Table could be a view / synonym. However they pull data. That's what we want right? :)

 Table Name
 Date Tracked?
 Primary Key
 Description
 PAY_ACCRUAL_PLANS
 No
 ACCRUAL_PLAN_ID
Stores details on the Accrual Plans. ACCRUAL_PLAN_ELEMENT_TYPE_ID can be used for Element value links.
Total Compensation -> Basic -> Accrual Plans 
 PAY_PAYROLLS_F
 Yes
 PAYROLL_ID
Stores the Payroll related data.
Payroll-> Description
 PAY_ASSIGNMENT_ACTIONS
 No
 ASSIGNMENT_ACTION_ID
Stores the Payroll actions against Assignments with action status and sequence. Links with PAYROLL_ACTION_ID. 
 PAY_ASSIGNMENT_LATEST_BALANCES
 No

Logs the Balances with DEFINED_BALANCE_ID with each and every assignment action, related to ASSIGNMENT_ACTION_ID.
 PAY_ASSIGNMENT_LINK_USAGES_F
 Yes
 ASSIGNMENT_LINK_USAGE_ID
Logs the assignment and element links with date tracking capabilities. ELEMENT_LINK_ID and ASSIGNMENT_ID are the two foreign keys.
 PAY_BALANCE_ATTRIBUTES
 No
 BALANCE_ATTRIBUTE_ID
Stores the Balance attributes.
Total Compensation -> Basic -> Balance-> Attributes(B)
 PAY_BALANCE_CATEGORIES_F
 Yes
 BALANCE_CATEGORY_ID
Stores the Balance Categories that can be used while defining Balances. 
 PAY_BALANCE_DIMENSIONS
 No
 BALANCE_DIMENSION_ID
Stores the Balance Dimensions.
 PAY_BALANCE_FEEDS_F
 Yes
 BALANCE_FEED_ID
Stores the Balance Feeds. 
 PAY_BALANCE_TYPES
 No
 BALANCE_TYPE_ID
Stores the Balances. 
 PAY_BATCH_LINES
 No
 BATCH_LINE_ID
Logs the Batch lines at the Batch element entries. Linking the BATCH_ID, ASSIGNMENT_ID and ELEMENT_TYPE_ID. Logs the BATCH_LINE_STATUS.
 PAY_COSTS
 No
 COST_ID
Logs the Cost and the balances as Debits or Credits with respect to each RUN_RESULT_ID and ASSIGNMENT_ACTION_ID.
 PAY_COST_ALLOCATIONS_F
 Yes
 COST_ALLOCATION_ID
Logs the Cost against a COST_ALLOCATION_KEYFLEX_ID, with reference to assignment Ids. This is where costing is logged.
 PAY_COST_ALLOCATION_KEYFLEX
 No
 COST_ALLOCATION_KEYFLEX_ID
The Cost allocation KFF table.
 PAY_DEFINED_BALANCES
 No
 DEFINED_BALANCE_ID
Clubs the Balance with its Dimensions, using BALANCE_TYPE_ID and BALANCE_DIMENSION_ID.
 PAY_ELEMENT_CLASSIFICATIONS
 No
 CLASSIFICATION_ID
Stores the Classifications.
Total Compensation -> Basic -> Classification
 PAY_ELEMENT_SETS
 No
 ELEMENT_SET_ID
Stores details on Element Sets.
Payroll-> Element Set
 PAY_ENTRY_PROCESS_DETAILS
 No

Logs the details of Run results with RUN_RESULT_ID and ELEMENT_ENTRY_ID.
 PAY_LINK_INPUT_VALUES_F
 Yes
 LINK_INPUT_VALUE_ID
Clubs Input Values with the Element links.
 PAY_MESSAGE_LINES
 No

Logs Payroll Messages
 PAY_PAYMENT_TYPES
 No
 PAYMENT_TYPE_ID
Stores the Payment Methods.
Payroll-> Payment Methods
 PAY_PEOPLE_GROUPS
 No
 PEOPLE_GROUP_ID
 The People Group KFF table.
 PAY_PRE_PAYMENTS
 No
 PRE_PAYMENT_ID
 Logs the Prepayment information against ASSIGNMENT_ACTION_ID with the Monetary Values.
 PAY_QUICKPAY_INCLUSIONS
 No

Logs quickpay actions against ASSIGNMENT_ACTION_ID and ELEMENT_ENTRY_ID
 PAY_RETRO_DEFINITIONS
 No
 RETRO_DEFINITION_ID
Stores Retro Definitions.
 PAY_RUN_BALANCES
 No
 RUN_BALANCE_ID
Stores the Balance Updates against ASSIGNMENT_ID and DEFINED_BALANCE_ID.
 PAY_RUN_TYPES_F
 Yes
 RUN_TYPE_ID
Stores the different Payroll Run Types.




Comments

Popular posts from this blog

How to compile all INVALID objects in Oracle

There are five ways to recompile invalid objects in schema. DBMS_DDL DBMS_UTILITY UTL_RECOMP UTLRP.SQL Manually Recompile > Best Approach 1. DBMS_DDL This procedure is equivalent to the following SQL statement: ALTER PROCEDUREFUNCTIONPACKAGE [.] COMPILE [BODY] Syntax Exec dbms_ddl.alter_compile ( type , schema, name); Type : Must be either PROCEDURE, FUNCTION, PACKAGE, PACKAGE BODY or TRIGGER. Schema : Database Username Name : Objects name Example SQL> exec dbms_ddl.alter_compile ('PROCEDURE','SCOTT','TEST'); PL/SQL procedure successfully completed. 2. DBMS_UTILITY This procedure compiles all procedures, functions, packages, and triggers in the specified schema. Syntax Exec dbms_utility.compile_schema ( schema,compile all) Schema : Database Username Compile All : Object type ( procedure, function, packages,trigger) Example SQL> exec dbms_utility.compile_schema('SCOTT'); PL/SQL procedure successfully co

How to setup and use AME - Approval Management Engine

Approval Management Engine - AME For Purchase Requisition Approvals Purchase Requisitions can be routed for approval using the AME Approval Management Engine. This whitepaper describes how to setup AME for use with requisition approvals, and shows how a requisition approval list is built based on the AME setup. Approvers in the AME based approver list are assigned to the requisition based on the AME rules setup for the Purchase Requisition Approval transaction. Similar setup can be done for Requester Change Order Approval and for Internal Requisition Approval, although those are not specifically covered in this whitepaper. The screenshots provided are based on 11i.AME.B, and some of the navigation details are specific to 11i.AME.B. However, most of the details provided are applicable to 11i.AME.A and higher including R12. Assign AME Roles and Responsibilities AME responsibilities in 11i.AME.A are assigned directly to the users. However, In R12 or 11i.AME.B and higher, AME respons

Workflow Important Debug Queries

deq_time is not always populated in WF_DEFERRED. The best way to monitor is to check if there are any READY events select msg_state,count(*) from applsys.aq$wf_deferred  group by msg_state; For getting Item_Type and Display name for Runnable processes. SELECT WFA_ACT.ITEM_TYPE ITEM_TYPE ,   WFA_ACT.NAME PROCESS_NAME ,   WFA_ACT.DISPLAY_NAME DISPLAY_NAME FROM wf_activities_vl wfa_act WHERE wfa_act.runnable_flag = 'Y' AND wfa_act. type            = 'PROCESS' AND sysdate BETWEEN wfa_act.begin_date AND NVL(wfa_act.end_date, sysdate); Query to find records that are pending in each of the workflow agent listener queues SELECT 'select ''' || t.component_name || ' (queue_table: ' || p.queue_table ||        ')''||'' Count: ''||count(*) c from ' || p.owner || '.' || .queue_table ||        ' where deq_time is null and nvl(delay,enq_time)<sysdate-1/24  ||        nvl2(t.correlation_id,