Payroll Instructions

Recommendation, 2007 April 15

Editor:

Chuck Allen, HR-XML Consortium, Inc.

Contributors:

Terry Malone-Burrell, Ceridian Employer Services; Elizabeth O’Neal, Employease; Jason Brown, Employer Payment Solutions; Rich Barritt, Fidelity; Chris Pierpan, Fidelity; Chris Brown, Hewitt Associates; Scott Cowley, IBM; Mark Grasso, Rewards Plus; Adam Sroka, Rewards Plus; Jean Handel-Bailey, SAP; Joe Lalla, Towers Perrin; Penni Kessler, Ultimate Software

Copyright © 2007 HR-XML Consortium, Inc.

Abstract

This document describes HR-XML’s PayrollInstructions specification. This specification defines an XML schema for structuring pre-payroll change requests for deductions and certain other adjustments to pay.

 

Table of Contents

1     Overview.. 4

1.1      Objective. 4

1.1.1        Domain Issues. 4

1.1.2        Business Reasons. 4

1.2      Design Requirements. 5

1.3      Scope. 5

1.3.1        Items Outside of Design Scope. 5

1.4      Terminology: “Deduction” and “Benefit”. 6

2     Supported Business Processes. 6

2.1      Business Process Roles. 6

2.2      Business Process Scenarios. 7

2.2.1        Scenario 1. 7

2.2.2        Scenario 2. 8

2.3      Batch Processing. 9

2.4      Calculation Methods. 10

2.4.1        Fixed. 10

2.4.2        Percent 10

2.4.3        Lookup. 11

2.4.4        Schedule. 12

2.4.5        Extended. 13

3     Schema Design. 13

3.1.1        Schema Dependencies. 13

3.1.2        PayrollInstructions. 14

3.1.3        PersonInstruction. 15

3.1.4        PayrollPerson. 16

3.1.5        Instruction. 16

3.1.6        Deduction. 17

DeductionType. 19

3.1.7        Benefit 22

BenefitType. 23

3.1.8        Amount 25

3.1.9        AmountValue. 26

CalculatedValueType/Fixed. 26

CalculatedValueType/Percent 27

CalculatedValueType/Linear 27

CalculatedValueType/Lookup. 28

CalculatedValueType/Schedule. 29

CalculatedValueType/Extended. 30

3.1.10      RequestTotal 30

3.1.11      Other Global Complex Types. 31

3.1.12      Global Simple Types. 32

4     Implementation Considerations. 34

4.1      Localization. 34

4.2      Data Privacy. 34

5     Appendix A - Document Version History. 35

6     Appendix B – Related Documents. 35

7     Appendix C – Reference Examples. 35

7.1      Batch Example. 35

7.2      Scenario 1 - New Business Transaction. 35

7.3      Scenario 2 - Change Transaction. 36

7.4      Scenario 3 - Cancellation Transaction. 37

 


1         Overview

PayrollInstructions Version 1.0 is designed to enable the submission of payroll deduction requests and other instructions to an organization that processes payrolls. The type of instructions covered by the specification include those for deductions from employees’ pay as well as adjustments to employer payments and liabilities that must be considered in payroll calculations (see Section 1.4, Terminology: “Deduction” and “Benefit”).

 

1.1        Objective

The goal of the HR-XML Consortium’s PayrollInstruction project was development of a specification, including an XML schema, for structuring pre-payroll change instructions.

1.1.1          Domain Issues

Employers have more choices than ever before about how they process payrolls, handle employee benefit elections and enrollments, and pay for and administer benefit programs. As a result of employers outsourcing of their HR and payroll functions and as a result of innovative benefit program offerings, a greater number of parties may be involved in the transmission of payroll data than in the past.

The purpose of the HR-XML Consortium’s PayrollInstructions specification is to provide guidance on how to structure exchanges of payroll instructions relating to certain deductions and adjustments. When employees change their benefit elections or otherwise experience work or life events that change their benefits coverage or pay, corresponding changes to payroll amounts often are necessary. Before a payroll is processed, an employer, its third party benefits administrator, and its payroll service provider usually must transmit, reconcile, and process instructions related to the payroll deductions and adjustments. A variety of business and legal requirements determine the specific information that is included in any given payroll instruction. 

The HR-XML Consortium’s PayrollInstructions specification is designed to be useful to a wide-range of payroll trading partners. It also was designed to flexibly support instructions for a wide-range of employee services and benefits programs. The PayrollInstructions specification can be used to transmit payroll deduction instructions for medical insurance, flexible spending accounts, life insurance, short and long term disability insurance, accident insurance, savings accounts, and employee stock purchase plans as well as for other types of programs that exist today or may exist in the future. The PayrollInstructions specification also can be useful for transmitting instructions related to voluntary or non-benefit deductions, such as those for charities, union dues, savings bonds, savings/credit union accounts, personal loans, personal and business membership fees, tuition and book fees, transportation fees, parking fees, etc. The list is endless as to what a person may pay for through voluntary payroll deductions.  

1.1.2          Business Reasons

The HR-XML Consortium’s PayrollInstructions specification gives employers flexibility and saves them time and money when integrating systems with benefits administrators, benefits providers, and payroll processors. Employers may be more willing to offer employees services and benefits from new providers if integration with trading-partner systems can be achieved with little or no up-front integration costs. For benefits, payroll, and HR vendors, a standard schema for handling PayrollInstructions eliminates the need to devote time and money to the task of building unique interfaces with customers and trading partners. Typically, this type of integration work provides little unique value to the customer and creates barriers to acquiring new business and new partnerships.

1.2        Design Requirements

1.3        Scope

Version 1.0 of the PayrollInstructions schema is designed to support payroll change instructions for:

PayrollInstructions Version 1.0 focuses on change instructions for deductions and adjustments related to employer-provided benefits, subsidies, and similar programs. Later versions may support a broader range of instruction types, such as those for garnishments, pay increases, etc.

1.3.1          Items Outside of Design Scope

There are a wide variety of payroll instructions that are not addressed within PayrollInstructions Version 1.0. Outside the scope of the Version 1.0 specification are payroll instructions for:

Note that since PayrollInstructions Version 1.0 is not intended to support the initial setup of a person on a payroll or benefits system, it is assumed that instructions apply only to payees or plan participants who already have been added to payroll and benefit administration systems through enrollment and payroll setup processes.

As described in Section 2.3, the PayrollInstructions specification was designed to support the batch transmission of instructions. Beyond providing a basic structure to support batch processing, the specification does not yet specify detailed processing rules. Trading partners will need to agree on rules for handling “Add,” “Change,” “Correction” instructions or other types of changes their business relationship may dictate.

1.4        Terminology: “Deduction” and “Benefit”

The HR-XML Consortium’s PayrollInstructions specification is intended to be sufficiently flexible to handle a wide variety of instructions. As discussed above in Section 1.3, Scope, the schema is designed to handle one or more payroll change instructions per employee for one or more employees. Thus, within the schema’s PersonInstruction element one or more Instruction is permitted. A single instruction may contain either a Benefit or a Deduction. For purposes of the PayrollInstructions schema, these components are defined as follows:

§         A Deduction is an instruction related to a liability of the employee. For example, a deduction might be made to pay for a benefit elected by an employee, such as auto insurance.

§         A Benefit is an instruction related to a liability of the employer. For example, an instruction related to an employer-provided transit subsidy would be an example of Benefit.

Note that in the PayrollInstructions schema, DeductionType and BenefitType are similar in structure. The HR-XML Consortium’s Payroll workgroup considered using a generalized structure that could accommodate both deductions and benefits. However, the group decided that separate structures for these two types would provide more clarity and would better accommodate trading-partner extensions as well as future refinement.

2         Supported Business Processes

The HR-XML Consortium’s PayrollInstructions specification is intended to be useful in a wide variety of contexts and business process scenarios. The PayrollInstruction specification does not prescribe or require a particular model for payroll or benefits administration. However, sections below describe some of the typical business process scenarios in which the PayrollInstructions specification is useful.

The PayrollInstructions specification is intended to support pre-payroll instructions. Note that the transmission post-payroll contributions data might be accomplished using the HR-XML Consortium’s PayrollBenefitContributions schema.

2.1        Business Process Roles

Below are brief descriptions of some of the roles played by entities involved in the exchange of PayrollInstructions:

2.2        Business Process Scenarios

The following sections show the use of the PayrollInstructions schema within two scenarios:

2.2.1           Scenario 1

§         An employee makes a benefit election or an enrollment that will change a deduction or benefit amount in his or her paycheck.

2.2.2          Scenario 2

The second scenario is similar to the first. However, in this scenario, the employee directly logs into to a site hosted by the third-party administrator to request the election or enrollment change.

2.3        Batch Processing

Pre-payroll instructions for deductions and benefits typically are transmitted in a batch mode. HR-XML’s PayrollInstructions specification was designed to support batch transmission of instructions. The schema also might be useful in supporting near-real time submission of individual instructions if required.

The mode attribute of the Instruction element can be used to distinquish the reason an individual instruction was included within the payload.

Possible values for mode are enumerated within the schema. The enumerations chosen for the mode attribute are consistent with similar values used within the HR-XML Consortium’s Benefits Enrollment specification.

Enumerated values for mode are: Add; Audit; Change; Correction; Delete; Suspend; and Terminate. For example, Add may be used for new instructions. Change, Correction, Suspend, Delete, and Terminate would relate to different types of changes made on existing Instructions. As the name suggests, Correction is a change instruction to rectify prior errors. Delete might entail complete removal of the instruction from the system of the trading partners, whereas a suspend instruction might indicate merely to “de-activate” the instruction temporarily or indefinitely. “Audit” is intended to support periodic comparisons of data between sending and receiving systems (To accomplish such a comparison, a conforming XML document should include all available Instruction data (marked with a mode value of Audit) as of an agreed-upon effective date).

Note that the enumerated values for mode are merely possible values. Additional values are allowed if they are prefixed with an “x:” As explained in Section 1.3.1, Items Outside of Design Scope, the specification provides a basic structure to support batch processing, but it does not yet specify detailed processing rules. Trading parters need to decide on the set of values appropriate for supporting the transactions between them and will need to decide the meaning of those values within the context of their business relationship.

2.4        Calculation Methods

In most cases, a payroll instruction will include a fixed amount for the deduction or adjustment. However, in some cases, it might be desirable to transmit a formula to calculate the amount or to transmit information sufficient to retrieve the amount from a schedule or lookup table stored on the receiving system.

HR-XML’s PayrollInstruction schema supports fixed amounts, but it also provides several different methods for transmitting information for calculated amounts. These methods are identified and illustrated below:

2.4.1          Fixed

The “Fixed” method is used for a non-calculated, known amount. For example, you may know that a health deduction amount is a fixed $24.32 per pay run.

<Fixed>

      <Value>24.32</Value>
</
Fixed>

2.4.2          Percent

This method is used to transmit a calculated percentage amount. For example, you may know that a retirement contribution is 5.5 percent of $6,800.

<Percent>

      <Basis>

             <BasisValue>6800.00</BasisValue>

      </Basis>

       <Percentage>5.5</Percentage>

</Percent>

 

Alternatively, the amount value could be a percentage of an amount that would not be known until later during the pay run. For example, a deduction might be equal to 5.5 percent of the employee's gross pay.

 

<Percent>

      <Basis>

             <BasisVariableName>GrossPay</BasisVariableName >

       </Basis>

       <Percentage>5.5</Percentage>

</Percent>


Linear

Using this method, the amount value is calculated from a simple linear model. For example:

y = -19.25 + 0.035 * DisposableIncome + Number of North Carolina State Income Tax Exemptions + .0001 * 16 

Any linear model, with as many terms as needed, could be used.

<Linear>

       <YIntercept>-19.25</YIntercept>

       <Argument index="1">

             <ArgumentVariableName multiplier="0.035">DisposableIncome</ArgumentVariableName>

      </Argument>

       <Argument index="3">

             <ArgumentValue multiplier="0.0001">16</ArgumentValue>

      </Argument>

       <Argument index="2">

             <ArgumentVariableName>NumNCSITExemptions</ArgumentVariableName>

      </Argument>

</Linear>

2.4.3          Lookup

In this example, the calculated value is determined from a lookup table, which is specified. For example, worker's compensation (WC) rates are based upon the worker's compensation code or classification for the work being performed. One would associate the pay type with a WC code so that the dollar amount for the associated WC premium could be determined.

<Lookup>

       <LookupTable>

             <LookupTableName>North Carolina Worker's Compensation for

               Pheonix Fund and Company ABC (this is table with id 37)</LookupTableName>

                           <LookupTableEntry>

                                 <Key>8018</Key>

                                 <Value>0.21</Value>

                           </LookupTableEntry>

                           <LookupTableEntry>

                                 <Key>8088</Key>

                                 <Value>0.52</Value>

                           </LookupTableEntry>

                           <LookupTableEntry>

                                 <Key>5213</Key>

                                 <Value>5.49</Value>

                           </LookupTableEntry>

             </LookupTable>

             <LookupKey>5213</LookupKey>

</Lookup>

 

The following is another example of the lookup method where the table is specified via an Id with complex primary key. In this example, the calculated value is determined from a lookup table, which is referred to by Id. WC table change yearly, so it is best to keep the WC lookup table in a database and then just refer to it, as opposed to sending it along with each request.

 

<Lookup>

       <LookupTableId idOwner="EPS" validFrom="2002-04-01" validTo="2003-03-31">

             <IdValue name="TBL_WC_RATES.ER_ID">ABC</IdValue>

             <IdValue name="TBL_WC_RATES.TABLE_ID">37</IdValue>

       </LookupTableId>

      <LookupKey>5213</LookupKey>

</Lookup>

2.4.4          Schedule

In this example, the amount is calculated from a schedule. A basis amount determines the tier or level to apply a formula or amount. The basis amount in this case is 1329.82, so we would apply the second tier formulation.

               (-infinity,1500) = 25

               (1500,3000)     = GrossPay * 14.25%

               (3000,infinity)   = Apply a predefined lookup table using the HoursWorked as the key
                                          to determine the value.

 

<Schedule>

             <ScheduleTable>

                    <ScheduleTableName>Schedule Lookup for Company ABC</ScheduleTableName>

                    <ScheduleTableEntry>

                           <IntervalLow>NegativeInfinity</IntervalLow>

                           <IntervalHigh>1500.00</IntervalHigh>

                           <Fixed>

                                 <Value>25.00</Value>

                           </Fixed>

                    </ScheduleTableEntry>

                    <ScheduleTableEntry>

                           <IntervalLow>1500.00</IntervalLow>

                           <IntervalHigh>3000.00</IntervalHigh>

                           <Percent>

                                 <Basis>

                                    <BasisVariableName>GrossPay</BasisVariableName>

                                  </Basis>

                                 <Percentage>14.25</Percentage>

                           </Percent>

                           </ScheduleTableEntry>

                           <ScheduleTableEntry>

                                 <IntervalLow>3000.00</IntervalLow>

                                 <IntervalHigh>PositiveInfinity</IntervalHigh>

                                 <Lookup>

                                        <LookupTableId idOwner="EPS" validFrom="2002-04-01" validTo="2003-03-31">

                                               <IdValue name="TBL_WC_RATES.ER_ID">ABC</IdValue>

                                               <IdValue name="TBL_WC_RATES.TABLE_ID">721</IdValue>

                                        </LookupTableId>

                                        <LookupKey>HoursWorked</LookupKey>

                                 </Lookup>

                           </ScheduleTableEntry>

                    </ScheduleTable>

                    <ScheduleValue>1329.82</ScheduleValue>

</Schedule>

In this second example, the schedule is assumed to be stored in a database table and is specified using an Id.

<Schedule>

       <ScheduleTableId idOwner="EPS" validFrom="2002-01-01" validTo="2002-12-31">

             <IdValue name="TBL_TAX_SCHEDULES.ER_ID">ABC</IdValue>

             <IdValue name="TBL_TAX_SCHEDULES.TABLE_ID">987</IdValue>

       </ScheduleTableId>

       <ScheduleValue>132.98</ScheduleValue>

</Schedule>


 

2.4.5          Extended

In this example, the calculated amount is a trading partner specific formula that has 4 arguments y = f(x1,x2,x3,x4) with named arguments:

               Disposable Income

               Number Of NC State Income Tax Exemptions

               Variable3

               Number Of Federal Income Tax Exemptions


<
Extended>

       <Function>MyTradingPartnerAgreedFunction</Function>

             <Argument index="1">

                    <ArgumentVariableName name="Disposable Income">DisposableIncome</ArgumentVariableName>

             </Argument