Leave Tracking
Leave Tracking functionality in the Payroll module provides capabilities for viewing and reporting all leave activity and balances. This page covers recommended "best practices" approach to handling leave (vacation, sick, etc.).
Hour Base Setup
Common codes PYHB/01-09 are used to set up payroll hour bases in the system.
Hour Code Definition
Typically, clients have a minimum of four Hour Codes defined (PYUPHH) for each type of leave with some optional Hour Codes depending upon the business practices of the particular organization as follows:
- Leave Earned
- Leave Taken
- Adjust Leave Earned
- Adjust Leave Taken
- Adjust Leave Balance Only (optional)
- Leave Forfeited/Lost/Payout (optional)
- Leave Taken in the First Part of a Pay Period that Bounds a Calendar/Fiscal Year (optional)
Depending on the client's needs, each Hour Code may be broken down. For example, if the leave processing is significantly different between hourly and salaried employees, you might end up with the following Hour Codes:
- Leave Earned (Hourly, Salaried)
- Leave Taken
- Adjust Leave Earned
- Adjust Leave Taken
- Adjust Leave Balance Only (optional)
- Leave Forfeited/Lost/Payout (optional)
- Leave Taken in the First Part of a Pay Period that Bounds a Calendar/Fiscal Year (optional)
Adjust Leave Earned and Leave Taken
The use of two separate leave adjustment Hour Codes for Leave Earned and Leave Taken instead of using a single leave adjustment Hour Code, or simply using the Leave Earned and Leave Taken Hour Codes for making adjustments, is justified as follows:
- For analysis purposes, having a separate adjustment Hour Codes is invaluable.
- If a single adjustment Hour Code is used for adjustments and the adjustments are made using either plus or minus values, the balance will be correct but unless client specific coding is included in the check/EFT writer, all adjustments end up in the Leave Earned column which can be misleading to the employee. With two leave adjustment Hour Codes, it is clear which column will be affected on the employee's paycheck.
Adjust Leave Balance Only
The optional Adjust Leave Balance Only Hour Code is needed when it is necessary to adjust the balance on an employee's paycheck but not show the adjustment value in either the earned or used columns.
Leave Forfeited/Lost/Payout
Calculation Formula to calculate the leave forfeited/lost/paid out. This Hour Code will typically be set up to adjust the leave balance only so it does not show up as leave earned or leave taken on the employee's paycheck. This is another "flavor" of an Adjust Leave Balance Only Hour Code.
Leave Taken in the First Part of a Pay Period that Bounds a Calendar/Fiscal Year
Often problems are encountered with pay periods that span the calendar/fiscal year end depending on an organization's business rules. Following is a fairly common scenario:
- Leave taken before the year end boundary needs to reduce the balance and not be reported on the pay check.
- After the leave from Step 1 is applied, the leave balance needs to be adjusted by a calc code for leave forfeited/lost/leave paid out.
- Leave taken after the year end boundary need to be shown on the employee's paycheck.
Accomplishing this is actually fairly straightforward. First, establish a separate leave taken Hour Code for step 1 above that affects the leave balance only. (This is the "Leave Taken in the First Part of a Pay Period that Bounds a Calendar/Fiscal Year" Hour Code and is yet another variation of an Adjust Leave Balance Only Hour Code.) Set the priority of this Hour Code so it is processed before the Hour Code in step 2. Use this Hour Code to input leave taken for the first part of the year end boundary pay period to satisfy step 1 above. Use the normal leave taken Hour Code(s) to input the rest of the leave taken which has a priority such that it is processed after the Hour Code in step 2.
If the client sets up Adjust Leave Balance Only Hour Codes, they need to set Switch 16 of the Hour Code to "A," and in the specification for the Check Writer they need to specify that they are using Adjust Leave Balance Only Hour Codes and that they have set switch 16 to "A."
Leave Cascading
Leave cascade logic is a part of the Timecard interface program. A series of common codes define the "Leave Cascade Models" and specify what the interface program should do if a leave hour exceeds the applicable Hour Base. Each Hour that can start a Leave cascade must have a "Leave Cascade Model" defined in common codes. Use common code PYFG/PY970C01 to define a Misc code and a Misc code value that will be used to identify the hours involved in Leave cascade logic. Common codes PYFG/LVCASC## (01-99) will be used to define "Leave Cascade Models.
Hour Definition Setup
Misc Code 1: Identify the Leave Type with a 4-character Leave Code (i.e., VACU, SIKU). This code will correspond to the codes identified in the Leave Cascade Model.
Misc Code 7: Any hour that will start a Leave Model Cascade needs "LVRQ" in Misc Code 7. (Definable by common code)
Calculation of Leave Columns on the Paycheck
When BusinessPlus metions "touches an hour base" or "touches a pay base," it means there is a plus or minus sign for the particular hour/pay base on PYUPHH. For example, all the Hour Codes for a particular type of leave will touch the Hour Base that carries the balance for the leave.
Here's how the check/EFT writer program normally calculates the leave columns on the check:
Ending Balance: The balance for the Hour Base for the particular leave taken directly from the employee's leave balance accumulator then modified by current period leave earned/used or Adjust Leave Balance Hour Codes. (The current period values are added in at this point because the leave balance accumulator does not include current activity.) This is the "hinge pin" value and it must be correct.
Earned: The sum of all Hour Codes that positively touch the leave balance Hour Base excluding Adjust Leave Balance Only Hour Codes.
Used: The sum of all Hour Codes that negatively touch the leave balance Hour Base excluding Adjust Leave Balance Only Hour Codes.
Beginning Balance: This value is a) taken directly from the employee's leave balance accumulator if current period only activity is reported in the Earned and Used columns on the check or b) calculated as Ending Balance + Used – Earned if FTD or YTD values are reported in the Earned and Used columns.
The logic the check/EFT writer uses to present leave eliminates the need for any special "carry forward" Hour Codes.
What To Do If Leave Information on a Check is Incorrect
There are two special cases:
- The check/EFT was just printed using the Trial Pay process.
- The check/EFT came from a check reprint.
If the check/EFT is the result of a Trial Pay, check payroll history (PYUPPH) for the current period first to see if there are erroneous postings. If there are none, follow the procedure below but bear in mind that the employee accumulator's will not reflect postings for the period used for the Trial Pay.
If the check/EFT came from a check reprint, the leave information will be correct if and only if it is a reprint from the last paid period for this employee. If you reprint a check from, say, three periods ago, the leave information will be incorrect. Additionally, all other YTD information on the check will probably be incorrect.
To trace down the problem, use the utility PYUTBIBA to obtain a list of all Hour Codes that touch the leave balance Hour Base. If you don't know which Hour Base carries the leave balance, you can usually find the correct Hour Base number by looking at PYUPHH. You would supply this Hour Base to PYUTBIBA. The utility will display all the Hour Codes that touch the leave balance Hour Base.
With the exception of Adjust Ending Balance Only Hour Codes, an Hour Code with a " + " next to it will show up in the Earned column on the check and an Hour Code with a " - " next to it will show up in the Used column.
Now go to the employee accumulator page (PYUPEA) and look at the YTD/FTD values for all the Hour Codes. Usually you will find one that looks strange. If not, look at the Hour Base accumulator itself. If it looks strange but the other accumulators look fine, the problem probably happened in a prior year, so look at prior year accumulators.
The problem is likely:
- You realize there are other Hour Codes that should touch the Leave Balance Hour Base but were not on the PYUTBIBA list or there are CDHs on the PYUTBIBA list that should not be there. If this is the case, there are Hour Definitions where you need to adjust the " + " or " - " signs on PYUPHH. After making these changes, you will need to recompute accumulators via mask PYUTRA. After the recompute, run the pay checks again and things should look a lot better.
- You find an Hour Code with an incorrect value. If you don't immediately realize the problem, you will need to examine all the history via PYUPPH looking for contributions to that Hour Code to find the offending history entries. You might also be able to use the Multi-Period Leave Balance report. Once you find out what is wrong, you will need to make an adjusting time card entry for the next payroll.
Bottom line: If the values are incorrect, the likelihood that the Check Writer or another program is in error is quite small. The majority of the time the values are incorrect due to 1) incorrect setup of the " + " and " - " signs on PYUPHH, 2) an erroneous timecard entry or 3) a calculation formula error; all of which can be isolated using the methods described above.
How to Upload Leave Balances
- Set up a pay period to load leave balances (PYUPPR). Set the Period Code = TCONLY.
- Run the PYTCIFXLRG to upload leave balances from a template.
- Force Calc the period (PYPAFC) to create history records (PYUPPH) in "WP" status.
- Mark the history records as paid.
- Option 1: Run a Distribute and Pay (PYPADP) - Only use this option if Finance is still in TEST mode or the PY to GL interface has been disabled.
- Option 2: Manually update the history records as "DP" with SQL.
5. Recompute accumulators (PYUTRA). Use Selection Criteria (SC) History Information for the period you just paid. Always recompute for the TAX YEAR and set the anniversary accumulators to the end of a quarter. Leave Balances are viewable in the Employee Accumulator (PYUPEA) page and Timecard Online.
Leave Tracking Utilities (PYUTLVxx)
The Leave Tracking Utilities provide capabilities for viewing and reporting all leave activity and balances:
- Leave Cascade Utility (PYUTLVCC)
- Leave Balance Extract (PYUTLVCX). This report produces a list of leave balances.
- Multi Period Leave Balance Rpt (PYUTLVLB). This is the same report that is available under mask PYRESPH2. There are many optional report settings available with common code PYFG/PY588C. One common code option is to include scheduled leave among the actual leave transactions on this report.
Imbalances
The presumption made by BusinessPlus is that payroll history matches the timecard record (SYSTM timecards) prepared by the Force Calc process during a payroll run. When Force Calc runs, it takes all timecard sets, combines them into one SYSTM timecard batch, performs payroll calculations, then adds any hour accruals, adjustments, etc., that are calculated and adds these to the SYSTM timecard record for the period. This means payroll history records match SYSTM timecards. (Check maintenance also affects SYSTM timecards.)
The Multi-Period Leave Balance report (PYUTLVLB) primarily uses history as a basis for reporting while the Leave Tracking view pages use SYSTM timecards. A detected imbalance between the report and the view pages means history no longer balances to SYSTM timecards for whatever reason. If history does not balance to SYSTM timecards, a utility is available to automatically add balancing entries to SYSTM timecards.
View Leave Activity
Viewing summary leave activity by leave type for an employee is available in Employee Online. A regular Employee Online user will view only their own leave details by selecting a leave type to view the details. The Current Balance is read from the employee's Payroll accumulator records; the individual leave transactions are read from SYSTM timecard data.
Leave Tracking