[{TableOfContents }]
!!!UPCAPERSXML -  CALIFORNIA PERS (CalPERS) - NEW XML FORMAT

The CalPERS organization has defined a new file format (XML) for submissions.  This interface will replace that which was created by the [UPCAPERS] program in the application.  [UPCAPERS] will be deprecated and may eventually become obsolete.  [UPCAPERS] can still be used to produce reports

To create the new XML format, the interface creation program UPCAPERSXML will now be used to generate the CalPERS file. The [IDIF] definition used for the previous [UPPHF]-based implementation is no longer used.

The amounts that will be reported must find their way into the pay components / elements that are used by this interface.  This can be accomplished through CalPERS benefit plan set up, transactions being entered or UserCalcs.   Nothing is recomputed by this PERS file creation program.

California PERS operates a number of different retirement systems.  At this time, only the Public Employees’ Retirement System (PERS) is supported.  There is no support provided for Judges’ Retirement Systems (JR1 and JR2), Legislators’ Retirement System (LRS) or the Supplemental Income Plan (SIP).

!!Benefit Plan Changes - Setup
The Benefit Plan is still required, any values that are computed by the benefit plan that need to report to CalPERS must now be stored in a pay component for the UPCAPERSMXL program to pick up.

!!Creating New Elements
To facilitate reporting through UPCAPERSXML, certain elements have been defined.  The following elements may be defined to include the pay components that reflect the different categories of information.  Unless otherwise identified below, these elements must all be set up, even if they are empty.
||Element Name||Meaning
|PERSRPT EARNS|The reportable earnings, as defined by CALPERS, of the member for the reported period.
|PERSRPT DEDN TAX|The reported contribution/deduction amount paid by the member that has been taxed.
|PERSRPT DEDN|The reported contribution amount paid by the member which has not been taxed.
|PERSRPT CONT|The reported contribution amount paid by the employer which has not been taxed.
|PERSRPT SURVIVOR|The reported 1959 Survivor Benefit Contribution amount paid by the member.
|PERSRPT DEDN ADD|This does not apply to most employers, it is the “additional” contribution paid by the member.\\  \\This is an old program and is no longer available to new hires. Contributions can be reported in this program only if the member had been contributing to it continuously from the date when they had enrolled in the program.
|PERSRPT CONT ADD|This does not apply to most employers, it is the “additional” contribution paid by employer. This money is a tax deferred contribution.\\  \\This is an old program and is no longer available to new hires. Contributions can be reported in this program only if employers had been contributing to it continuously.
|PERSRPT HOURS|The total number of hours that the CalPERS retiree (required) has worked during the reported period.
|PERSRPT OPR|Deduction for overpayment received 
|PERSRPT SCP TAX|Service credit purchase taxed
|PERSRPT SCP DEF|Service credit purchase tax deferred 
|PERSRPT SIP2|457 Plan - This element should only be populated if the CalPERS Plan has 457 Supplemental Income associated with it.
|PERSRPT LOAN|After tax loan payment - This element is optional

!Using User Defined Fields
User-defined fields (UDFs) are utilized, at this time, for storing some CalPERS information.  These UDFs are all required and UPCAPERSXML will issue error messages and terminate if any are missing.

The following UDFs are required for operation of this XML interface and need to be defined on [IMUF], as character fields:
||User Field||Table Alias||Meaning
|CALPERS_INTERFACE_TYPE|DED|This CalPERS ID is a new unique identifier, created by the new system.  The CalPERS XML Schema names this item ‘Interface Type’ and most likely should contain ‘10006’ for regular pyroll.
|CALPERS_BP_ID|DED|If you are reporting your own payroll files, the Business Partner ID is the same as the Employer CalPERS ID.  If you use a third-party vendor, then CalPERS will assign a unique identifier number once the third-party becomes an approved business partner.
|CALPERS_EMPLOYER_ID|DED|This CalPERS ID is a new unique identifier, created by the new system.  This replaces the CalPERS Employer Code and Unit Code used today. This CalPERS ID is of the employer who is submitting the payroll on behalf of all the employees in the file.\\  \\This may be the employer where all the employees are working, but it may also be the employer who is authorized to send payroll for other employers’ employees.
|POSTED UPCAPERS|PPH|A flag that is used to indicate if the pay header has been posted to CalPERS or not.  A value of “Y” means that it has and it will not be processed by subsequent UPCAPERSXML runs.  A value of “N” or null means that it has not yet been processed and is eligible to be picked up.\\  \\%%information Note that this UDF has a space in the name not an underscore.%%\\  \\This is for compatibility with prior versions of CalPERS reporting.
|CALPERS_ID|EID|the CalPERS-generated unique CalPERS ID for the participant\\  \\The CalPERS ID will be ten digits in length and used in place of a Social Security Number in contribution files. Prior to system “go-live”, CalPERS will send employers a file with the CalPERS ID for each of their existing employees.
|APPOINTMENT_ID|EASD|The code representing the appointment into which the employee has been hired\\  \\Prior to system implementation, CalPERS will provide employers a list of their member’s Appointment IDs.  After system implementation, employers can run a report online to generate a list of Appointment IDs.\\  \\If multiple appointments exists with the reporting employer, Appointment ID must be provided or the payroll record will error.
|PERS_MEMO|EASD|This memo line can be provided by the employer as a reference field.  CalPERS will store this information and provide it back to the employer on a download of FTP response. 
|PERSRPT SIP Type|DUD|This line reads from the lexicon [X_PERSRPT_SIP] (created above) to return one of four values PERSRPT SIP1, PERSRPT SIP2, PERSRPT SIP3 or PERSRPT SIP4. Currently only PERSRPT SIP2 is supported for SIP reporting.
|Pers SIP Plan Id|DUD|Pers SIP Plan Id is the plan identification number supplied by CALPERS for the unit that is being reported.

!!Loading Employee Identifiers from CalPERS
CalPERS provides a spreadsheet of employee identifiers.  There are actually three different identifiers in this spreadsheet: 
*CalPERS ID –The CalPERS ID is a new unique identifier, which will be created by the new system during enrollment and will be used to identify participants when sharing data with CalPERS.  This is tied to the employee on [IEID].
*Appointment ID - CalPERS will generate and store Appointment ID for the participant at the time of enrollment, and this is tied to the employee’s position on [IEAS].
*Beneficiary ID – CalPERS is creating a unique identifier for the beneficiaries.  This is not currently used.
Support can assist in loading this data into the User Defined fields noted above, if desired.

!!Identifying Retired Annuitants
Retired Annuitants may be identified either through their Employment Status (on [IEAS]) or via enrollment in a CALPERS plan.
!Option 1 – Employment Status
A new employment status on [IDES] called “PERS ANNUITANT” can be created.  Any employee who has this assignment status will be considered a Retiree Annuitant.
 
!Option 2 – Retiree Plan Coverage
You can create a new coverage level for your CAPERS benefit plan and include the word “RETIREE” in the Policy Number (this is not case sensitive).  Employees who are enrolled in this description will be considered a Retiree Annuitant.  An employee may only be enrolled in one plan of type = CAPERS.  The actual plan code does not matter.

!Semi-Monthly payrolls
Note that for semi-monthly payrolls, the user has to run UPCAPERSXML for the __SECOND__ period in the month. Semi-monthly payrolls are reported on a monthly basis and therefore only one out of the two pay periods are used for reporting (the second pay period in the month).

!!Retroactive Pay
My|CalPERS requires that any Retroactive Pay be reported in separate ‘Transaction Types’.  To accommodate this,  Retroactive Pay must be created with [UPRETRO] and be stored into a pay category that has the Pay Category type of ’07-Reto Pay’.

!!Special Compensation Codes
A user-defined lexicon (CALPERS_SC) has been created to cross-reference the CalPERS Special Compensation codes, their categories and the pay components or elements that reflect the value for that special compensation.  If you will use Special Compensation codes, you must run the script __''create_CALPERS_SC_lexicon.sql''__ which is included with the 4.10 Backend release.  This will create the structure as noted below.  Any records that do not pertain to your operation can then be deleted.  Any changes made will be kept unless that script is run again.
The lexicon is CALPERS_SC and has the following structure in [IMLN]:
|SAVED VALUE|Special Compensation Type - which is a value from the list provided by the CalPERS agency\\  \\e.g. DST - Dictation/Shorthand/Typing Premium\\e.g. PFP - Physical Fitness Program
|DISPLAYED_VALUE|This is the Pay Component code or Element name (if it starts with E- (eg E-EARNS23)) that contains the value for the special compensation
|MEANING|This is the Compensation Category (from CalPERS Agency).  This must be one of ICP, EDP, PPP, SAP, SSI, SCL or UNK.  If the category is not specified, the compensation will be lumped in with UNK.\\  \\ICP - Incentive Pay\\EDP - Educational Pay\\PPP - Premium Pay\\SAP - Special Assignment Pay\\SSI - Statutory Items\\UNK - Unknown\\SCL - Sp Comp Legacy

%%information The table at the bottom of this page can be used to aid in filling out this lexicon value set.  If you are not using a particular special compensation code, you can leave it with its initial value or delete the record from [IMLN].%%  

!!Launching  UPCAPERSXML
To create the CalPERS file, the UPCAPERSXML function must be launched.  This is a batch process that could be scheduled as well.  The following parameters have significance for the purposes of the CalPERS interface file generation:
!Report Parameters & Filters
||Report Parameters|| 
|Entity|Mandatory, LOV available\\One entity is allowed only per execution. Employer CalPERS ID is unique per entity.
|Pay Calendar|Mandatory, LOV available\\This field limits the process to the pay calendar specified. Only one pay calendar (frequency) is allowed per execution.
|Pay Period|Mandatory, LOV available\\This identifies the pay period of the current CalPERS Reporting Cycle.  Any transactions that are dated previous to the Period Begin date of this period are considered adjustments. 
|Directory Name|Mandatory, Text\\This is the directory on the data base server that you want to have the file created in.  This must be a directory (or directory object) that is write-enabled for the data base process.
|CPE File Name|Mandatory, Text\\This is the name of the actual file you want created, for Payroll & Retirement submission. Note that CalPERS expects files that will be submitted to be in a specific naming format.
|SP2 File Name|Optional, Text\\The name of the actual file you want created, for SIP2 submission.  If this file name is provided __and__ there are SIP2 entries to be made, they will be written to this file, instead of the CPE file.  Note that this file name is optional.
|Test Report|Mandatory, LOV available\\If set to “No”, the POSTED UPCAPERS field will be updated with a “Y” so the pay header being processed does not get picked up again in a subsequent run.  The generated XML file will be marked as a valid file.\\  \\If set to “Yes” the generated XML file will be marked as a ‘Test Run’ and the POSTED UPCAPERS field will not be updated.
|Exception Level|Optional, [Exception Level|X_TRACE_LEVEL] lexicon available\\This field defines the exception level (report messages) required. A ‘trace’ report of exception messages may be produced to assist in the testing phase. If necessary, choose from 0 – 9 (highest) level of trace. Please note that this is a voluminous report and will cause very slow performance. 
|User Comments |Optional, Text \\This field holds the user-supplied comment which will appear in the header of all pages of the report.  This is useful during testing phases to identify similar reports from each other.

||Report Filters||
These filters can be used to further narrow down the list of pay headers that you wish to process.  Typically 'Entity', 'Payroll' and 'Pay Run Number' are used to filter to a specific pay run, or 'Person' may be used to run tests against a subset of employees.
|Person List Code|Optional, Multiple selections, LOV available\\This field limits the report to the person lists specified.
|Person|Optional, Multiple selections, LOV available\\This field limits the report to the persons specified.
|Unit|Optional, Multiple selections, LOV available\\This field limits the report to the units specified.
|Group|Optional, Multiple selections, LOV available\\This field limits the report to the groups specified.
|Payroll|Optional, Multiple selections, LOV available\\This field limits the report to the payrolls specified.
|Payroll Number|Optional, Multiple selections, LOV available\\This field limits the report to the payroll numbers specified.
|Department|Optional, Multiple selections, LOV available\\This field limits the report to the departments specified.
|Org Level Type|Optional, Multiple selections, LOV available\\This field limits the report to the org level types specified.
|Org Level|Optional, Multiple selections, LOV available\\This field limits the report to the org levels specified.
|Authorization|Optional, Multiple selections, LOV available\\This field limits the report to the authorizations specified.
|Location|Optional, Multiple selections, LOV available\\This field limits the report to the locations specified.
|Status|Optional, Multiple selections, LOV available\\This field limits the report to the status specified.

%%information Note that the PAY RUN NUMBER filter will only show pay runs that are for the pay period selected in the report parameters section.%%

The “Report List” will indicate all the pays, as seen on [IPPH] that will be processed by the UPCAPERSXML program.
 
!!Special Compensation Codes Matrix
|SAVED VALUE|Special Compensation Type - which is a value from the list provided by the CalPERS agency.\\   \\e.g. DST - Dictation/Shorthand/Typing Premium\\e.g. PFP - Physical Fitness Program
|DISPLAYED_VALUE|This is the Pay Component code or Element name (if it starts with E- eg E-EARNS23) that contains the value for the special compensation.\\   \\For example, if for Educational Incentive Pay (EEI) you are computing/entering this in pay component 6543, you would update the displayed value for the EEI entry from PC or E-Element to 6543.\\   \\For example, if you had an element called EDUC_INCENT which contained all the pay components going into this special compensation category, you would update the displayed value from PC or E-Element to E-EDUC_INCENT – the E- at the beginning is the trigger to identify the value as an element.
|MEANING |This is the Compensation category (from CalPERS Agency).  The category must be one of ICP, EDP, PPP, SAP, SSI, SCL or UNK.  If the category is not specified, the compensation will be lumped in with UNK.\\  \\ICP - Incentive Pay\\EDP - Educational Pay\\PPP - Premium Pay\\SAP - Special Assignment Pay\\SSI - Statutory Items\\UNK - Unknown\\SCL - Sp Comp Legacy

!Incentive Pay (ICP)
||Type||Long Name||PC Code||Element Code
|BON|Bonus|    |	 	 
|DST|Dictation/Shorthand/typing Premium|    |	 	 
|LLP|Longevity Pay|    |	 	 
|MIP|Management Incentive Pay	|    | 	 
|MKP|Marksmanship Pay	 |    |	 
|MPO|Master Police Officer|    |	 	 
|PFP|Physical Fitness Program|    |	 	 
|VEP|Value of Employer Paid Member Contributions|    |	 	 
|OSP|Off-Salary-Schedule Pay|    |	 	 

!Educational Pay (EDP)
||Type||Long Name||PC Code||Element Code
|AAD|Applicator’s Differential|    |	 	 
|CPA|Certified Public Accountant Incentive|    |	 	 
|EEI|Educational Incentive|    |	 	 
|EMT|Emergency Medical Technician Pay|    |	 	 
|ERP|Engineering Registration Premium	|    | 	 
|GAR|Government Agency Required Licenses|    |	 	 
|ICB|International Conference of Building Officials Certificate	 |    |	 
|MPP|Mechanical Premium	 |    |	 
|NAS|National Institute of Automotive Service Excellence Certificate	|    | 	 
|NPP|Notary Pay	 |    |	 
|PPP|Paramedic Pay	|    | 	 
|POS|Peace Officer Standard Training (POST) Certificate Pay|    |	 	 
|RSP|Reading Specialist Premium|    |	 	 
|RRB|Re-certification Bonus|    |	 	 
|SCD|Special Class Driver’s License Pay|    |	 	 
|UGD|Undergraduate/Graduate/Doctoral Credit|    |	 	 

!Premium Pay (PPP)
||Type||Long Name||PC Code||Element Code
|TUP|Temporary Upgrade Pay|    |	 	 

!Special Assignment Pay (SAP)
||Type||Long Name||PC Code||Element Code
|AAP|Accountant Premium	|    | 	 
|ASP|Administrative Secretary Premium|    |	 	 
|APP|Aircraft/Helicopter Pilot Premium|    |	 	 
|AWP|Asphalt Work Premium|    |	 	 
|AVP|Audio Visual Premium|    |	 	 
|APR|Auditorium Preparation Premium|    |	 	 
|BBP|Bilingual Premium|    | 	 
|BAP|Branch Assignment Premium|    |	 	 
|COA|Canine Officer/Animal Premium|    |	 	 
|CFP|Cement Finisher Premium|    |	 	 
|CLP|Circulation Librarian Premium|    |	 	 
|COP|Computer Operations Premium|    |	 	 
|CCP|Confidential Premium|    |	 	 
|CAC|Contract Administrator Coordinator Premium|    |	 	 
|CSI|Crime Scene Investigator Premium|    |	 	 
|CCD|Critical Care Differential Premium	|    | 	 
|DAP|D.A.R.E. Premium|    |	 	 
|DSP|Detention Services Premium|    |	 	 
|DDP|Detective Division Premium	|    | 	 
|DTO|DUI Traffic Officer Premium|    |	 	 
|EOP|Extradition Officer Premium|    |	 	 
|FIP|Fire Inspector Premium|    |	 	 
|FIN|Fire Investigator Premium|    |	 	 
|FPA|Fire Protection Assignment Premium|    |	 	 
|FSP|Fire Staff Premium	|    | 	 
|FTP|Flight Time Premium|    |	 	 
|FDP|Float Differential Premium	 |    |	 
|FDA|Front Desk Assignment (Jail)|    |	 	 
|FOP|Fugitive Officer Premium|    |	 	 
|GDA|Gang Detail Assignment Premium|    |	 	 
|GAP|Grading Assignment Premium	 |    |	 
|HZP|Hazard Premium|    |	 	 
|HSE|Heavy/Special Equipment Operator|    |	 	 
|HHP|Height Premium|    |	 	 
|HSP|Housing Specialist Premium|    |	 	 
|JOP|Juvenile Officer Premium|    |	 	 
|LWP|Lead Worker/Supervisor Premium|    |	 	 
|LRD|Library Reference Desk Premium|    |	 	 
|GMP|Gas Maintenance Premium|    |	 	 
|PIS|Plumber Irrigation System Premium|    |	 	 
|RCP|Refuse Collector Premium|    |	 	 
|SLR|Street Lamp Replacement Premium|    |	 	 
|MCI|MCO Instructor Premium|    |	 	 
|MOP|Motorcycle Patrol Premium|    |	 	 
|MMP|Mounted Patrol Premium|    |	 	 
|NDP|Narcotic Division Premium|    |	 	 
|PCP|Paramedic Coordinator Premium|    |	 	 
|PPC|Park Construction Premium|    |	 	 
|PMM|Park Maintenance/Equipment Manager Premium|    |	 	 
|PCC|Parking Citation Premium|    |	 	 
|PAP|Patrol Premium|    |	 	 
|PAO|Police Administrative Officer|    |	 	 
|PIP|Police Investigator Premium|    |	 	 
|PLP|Police Liaison Premium|    |	 	 
|PPO|Police Polygraph Officer|    |	 	 
|PRA|Police Records Assignment Premium|    |	 	 
|RMP|Range Master Premium|    |	 	 
|RAC|Refugee Arrival Cleanup Premium|    |	 	 
|SOT|Safety Officer Training/Coordinator Premium|    |	 	 
|SPP|Sandblasting Premium|    |	 	 
|SYP|School Yard Premium|    |	 	 
|SEP|Search Pay Premium|    |	 	 
|SDP|Severely Disabled Premium|    |	 	 
|SCP|Sewer Crew Premium|    | 	 
|SDD|Shift Differential|    |	 	 
|SSP|Solo Patrol Premium|    |	 	 
|SBP|Sprinkler and Backflow Premium|    |	 	 
|TIP|Tiller Premium|    |	 	 
|TTP|Tire Technician Premium|    |	 	 
|TDP|Traffic Detail Premium|    |	 	 
|TPP|Training Premium|    |	 	 
|TCP|Tree Crew Premium|    |	 	 
|USO|Utility Systems Operation Premium|    |	 	 
|WCP|Water Certification Premium|    |	 	 

!Statutory Items (SSI)
||Type||Long Name||PC Code||Element Code
|FLS|Fair Labor Standards Act (FLSA)|     |	 	 
|HPP|Holiday Pay|    |	 	 
|UAA|Uniform Allowance|    |	 	 

!Unknown (UNK)
||Type||Long Name||PC Code||Element Code
|UNK|Unknown|    |	 	 
----
![Notes|Edit:Internal.UPCAPERSXML]
[{InsertPage page='Internal.UPCAPERSXML' default='Click to create a new notes page'}]