Contract Accumulators
What is a Contract Accumulator, XTDs
Contract accumulators are a way of tracking Hours and Earnings over a user-defined period of time. That period of time is referred to as the contract. The primary reason for tracking a contract this way is that a contract is often made up of two different earning types - Contract Earned and Contract Paid. Due to fluctuations in the days worked within a pay period the amount earned will often be different than the amount paid. It is important to know both of these values so that if an employee is to terminate or have a position status change, the employee can have their old contract settled fairly.
Common Definitions
Contract ID: Client defined combination of Pay String parts that constitute a contract. Examples include fiscal year + position, fiscal year + position + contract number, or position + contract number.
Escrow - The difference between normal earnings and normal pay. If the balance in Escrow is positive for an employee, it means the employee has earned more than they have been paid and Escrow is the amount the employee would have to be paid if the employee were to terminate or be terminated prior to contract completion. If the balance is negative, the employee would owe this amount to the organization.
Deferred Pay: Deferred Pay is the escrow change over a specific time frame. It can be positive or negative.
Retro Pay: The difference between the amount an employee actually got paid in the past versus the amount the employee should have gotten paid due to a retroactive salary change. This value can be plus or minus. Retro pay is usually paid out in a lump sum but can be spread over remaining pay periods. Client-specific business rules define the exact method of paying Retro Pay.
Retro Earnings: The difference between the amount an employee actually earned in the past versus the amount the employee should have earned due to a retroactive salary change. These values can be plus or minus.
Spread Balance: An amount of money to be added to or subtracted from future employee pay This value can be plus or minus. The Spread Balance is usually spread out over all future paychecks but can be paid (deducted) in a lump sum. Client-specific business rules define the exact method of paying the Spread Balance. The examples in this document will assume Spread Balance is paid out evenly over the remainder of the contract.
Setup
These accumulators will track amounts under a Contract ID. This ID is made up of parts of the Pay String. The user designates what parts of the Pay String constitute a unique Contract ID by setting up common code PYFG/CNTRCTID. Once the Contract ID is defined in the common code the system will be able to analyze the Pay Strings and group them by it. To turn on Contract XTDs set switch 32 labeled Contract XTDs on the entity definition, PYUPGN, to "Y."
The accumulators that get created are based on paid history and represent a To Date accumulation of values under that Contract ID. There are no sub categories in these accumulators based on month, quarter or year. The distinction on check date which is so important in standard accumulators is not relevant here. The contract accumulators merely total up paid history under a contract id.
A Contract XTD has the following form:
The Employee ID is in the standard header. The next line displays the Contract ID (the title "ConId" can be changed via a common code PYFG/CNTRCTUS). This is set up in this example to see a position of 3008 in fiscal year 1996 and a contract sequence of 01. The begin and end dates here can be derived from two places. If pay assignments exist which contain the Contract ID in their Pay String, then the earliest begin date and the latest end date among those pay assignments will appear here. This has implications for how long old pay assignments should be kept. Pay assignments with blank beg/end dates will result in contracts with defaulted beg/end dates to 01/01/1900 to 12/31/2999. If the system finds entries in history that are related to a Contract ID that doesn't exist in a pay assignment, then it will use the begin date of the earliest period with activity for that contract. Likewise, the end date will be that of the last period with activity on that contract.
Below the Contract ID on the left side are values which in the usual set up will represent what the employee actually earned over the course of the contract. In the case of a school district these would represent the hours that were actually worked and the dollars that they earned as a result of that work. This side is subdivided into two main sections. The top is for those hours and dollars that represent standard earnings. The bottom represents those hours that may reduce the standard earnings below the total contract value (i.e., LWOP). For instance, when someone takes leave without pay because they have no more sick days, those hours and dollars would appear in this lower section. Typically, those leave without pay dollars would be used to reduce some one's earnings and/or pay appropriately.
The sub categories on the left side are dependent on CDH definition. A Contract Hour Base and Pay Base have been defined, HB 19, PB19. To include a CDH in the hour column that CDH should plus or minus the Contract HB. To include a CDH in the pay column that CDH should plus or minus the Contract PB.
The Contract Paybase also works in conjunction with switch 27 of the definition. This switch designates which part of the contract to affect. If the switch has a value of "P" for Paid and the contract pay base has a " + " then Paid for the given contract is increased. If the contract pay base has a " - " then the Paid accumulator for the given contract is decreased. This dual affect is used for all the different parts of the contract. Those parts are: "P" - Paid, "E" - Earned, "B" - Both Paid and Earned, "R" - Retro Earned (A subclass of "E"), "L" - LWOP (Leave without Pay, another subclass of "E"), "S" - Set spread (Affects the Spread Balance), and "T" - Spread Pay (Reduces Spread Balance and Increases Paid).
The specific rows require the following setup including a " + " or " - " in the Contract PB:
1. Regular Hrs, Pay: 3001-3999 CDHs with "E" in switch 27.
2. Sick Hrs, Pay: 3001-3999 CDHs that touch sick HB.
3. Vacation Hrs, Pay: 3001-3999 CDHs that touch vacation HB.
4. Other Hrs, Pay: 1001-2999 CDHs that have an "E" in switch 27. This field is envisioned for special kinds of adjustments and additional pays that count toward contract amounts.
5. Retro Hrs, Pay: 3001-3999 CDHs that have an "R" in switch 27.
6. Non Paid Regular Hrs, Pay: 3001-3999 CDHs that have an "L" in switch 27.
7. Non Paid Other Hrs, Pay: 1001-2999 CDHs that have an "L" in switch 27.
The left-hand side of the inquiry shows escrow activity along with user defined categories. In the deferred pay scenario, a portion of what is earned in a given period is put aside for later payout. This would be a deposit. The contract accumulators recognize any CDH that " + " the Escrow PB. The withdrawal category consists of any CDHs that " - " the Escrow PB. Under this approach the standard accumulator (PYUPEA) will contain an employee's overall escrow balance in the PB for the year or all time depending on how that accumulator is setup. The Contract XTD will show the employee's balance for a particular Contract ID.
Below the escrow amounts are five user-defined categories. The sources for these amounts are defined in PYFG/CNTRCTUS values 1-5 and can be CDH numbers (including pay numbers, i.e. 5001) or PBs or HBs (i.e. 6002,7008). These values can be set to reflect amounts which will be needed in PY calc codes. Some of the categories that may be useful might be days worked, hours worked, vacation accrual, personal leave taken and so on. These user categories are always stored as with an implied 5 decimals. The titles for these five categories are set in the common code description. Even though this screen only shows 5 user defined fields there are a total of 20 user defined fields available. The remaining fields are defined in common codes PYFG/CNTRCTU2, PYFG/CNTRCTU3 and PYFG/CNTRCTU4 and work the same was as PYFG/CNTRCTUS.
There is also a page for Contract XTDs that allows browsing of the contracts. This page shows total amounts for contracts, the projected amount for the contract, estimated salary of the next period and all pay assignments that make up that contract.
There are two processes that will create or modify these contract accumulators. The normal accumulator program, PY902C, handles the new contract XTDs when doing its normal period bump during a PYPADP. PY902 will also delete the proper amounts from contract XTDs when doing a payroll undo. There is also a "recompute all mode" for contract accumulators that runs under mask PYUTRC which runs PY962. This mode allows you to recompute for a certain date range if desired. Using a date range limits the periods that need to be considered and for sites with large amounts of history could conceivably reduce run time to recompute significantly. The recompute all mode should be used if any of the contract XTD setup has changed, i.e. adding a user defined field, changing CDHs that touch the contract HB/PB.
Another feature that may help performance has to do with limiting which kind of employees will be considered for contract accumulators. Common code PYFG/CNTRCTIN defines employee types or units that should be considered for contract accumulators. Any one of the 5 code columns can read INCLUDE UNIT, EXCLUDE UNIT, INCLUDE TYPE, EXCLUDE TYPE. The description contains a comma separated list of the types or units that apply. You can define a range in the description using a dash with no spaces between two values.
CDH Specific Setup
Switch Information
(1) Switch 24 "Set by Contract" - Set this switch to "Y" if and only if this CDH uses a calculation code and the calculation code wants to return its result in CTFC.CDHAMT which needs to be spread or set by contract.
(2) Switch 27 - The Contract Paybase also works in conjunction with switch 27 of the definition. This switch designates which part of the contract to affect. If the switch has a value of "P" for Paid and the contract pay base has a " + " then Paid for the given contract is increased. If the contract pay base has a " - " then the Paid accumulator for the given contract is decreased. This dual effect is used for all the different parts of the contract. Those parts are: "P" - Paid, "E" - Earned, "B" - Both Paid and Earned, "R" - Retro Earned (A subclass of "E"), "L" - LWOP (Leave without Pay, another subclass of "E"), "S" - Set spread (Affects the Spread Balance), and "T" - Spread Pay (Reduces Spread Balance and Increases Paid).
General Guidelines
Deferred Pay Contribution/Target Salary
Runs after Set Spread and all earnings but before any deductions or contributions. This contribution will always be assigned the amount of the target salary.
Retro Earned/Pay Hours
These are the first CDHs to run. Retro Earned and Retro Paid must run before Set Spread if the deferred amount of the Retro is to be included in the Spread Pay amount. It does not matter how if Retro Earned is before Retro Paid or vice versa.
Set Spread Contribution
This is the third contract CDH to run and adds the current escrow balance to the Spread Balance. The Retro Earned and Retro Pay CDHs must run before this CDH. This contribution has no direct effect on pay. It is used in conjunction with the Spread Pay contribution to pay the employee back any earnings in the Spread Balance pay base.
Spread Pay Contribution
Runs after Set Spread and gives the employee the proper amount of money from the Spread Balance pay base. This contribution adds to the employees pay. The amount of spread pay is typically prorated over the remaining periods in a contract although it may also be paid in one period (depending on the code entered in the payout type of the employee's pay assignment).
Payout Contribution
This should only run when a contract ends before its original date. This will be specified by put "PF" in the payout type of the appropriate pay assignment. The Payout contribution will assign all escrow to an employee which includes all spread pay balances.
Calculation Codes
Calculation codes are used by the Contract CDHs. Contact the BusinessPlus Professional Services team for assistance with setting up calc codes.