Skip to main content
Skip table of contents

Idaho PERSI Retirement Reporting Process

Overview

This process produces the State of Idaho Retirement reports and files. 

There are five BusinessPLUS masks involved in this process:

  • PYRERRID01 runs py268id to extract applicable data from Check History and load it into a utility dataset – pyu_utl_dtl.  The data is organized by payroll period in this dataset.

  • PYRERRID03 uses py368id to provide the user a means of viewing and modifying the data previously extracted. 

  • PYRERRID04 is obsolete and will be removed in the future.

  • PYRERRID05 runs py568ide to read the data in the utility table (pyu_utl_dtl) and produce an Enrollment report and generates a file for subsequent submission to PERSI.

  • PYRERRID06 runs py568idt to read the data in the utility table (pyu_utl_dtl) and produce a Transmission report and generates a file for subsequent submission to PERSI.

  • PYRERRID07 runs py568idc to read the data in the utility table (pyu_utl_dtl) and produce a Change report and generates a file for subsequent submission to PERSI.

The process assumes the following, unless overridden by common code PERS/IDMAP:

  • Retirement pay base of 7 (note that contributions only add to the pay base if also flagged with a “Y” in Process Switch 20 – “Count as Salary”).

  • Retirement hour base of 16.

  • Sick balance hour base of 8.

BusinessPLUS Setup

Before data can be extracted for subsequent processing, contribution and deduction definitions must be properly coded, employees must be assigned the appropriate contributions, deductions, and codes, and common codes must be defined.

CDH Setup

Hours, contributions, and deductions that apply to retirement reporting must be coded in one of the eight Miscellaneous Code boxes of the CDH definition.  Which Miscellaneous Code box is used is at the user’s discretion, but the same box must be available for all the retirement CDH definitions.  When the box to be used is determined, designate the number of that box in common code PERS/IDMAP in the fourth Numeric Value field. 

The codes to be used in the CDH misc code and their meaning are listed below.

IRDB

Regular PERSI Defined Benefit (DB) plan activity

IRDC

Regular PERSI Defined Contribution (DC) plan activity

IROR

Regular PERSI Optional Retirement (ORP) Plan activity

IRBA

Adjustment to prior DB plan activity

IRCA

Adjustment to prior DC plan activity

IROA

Adjustment to prior ORP plan activity

IRRP  

Buy Back (always a deduction definition).

IRRL  

Re-pay loan activity (always a deduction definition).

IRPM

PERSI Retired members still working

IRAM

Employee’s with no Retirement deduction or contribution

Others

Anything starting with IR in the misc code

Remember to fill the retirement pay base and hour base on the CDH definitions.  These positions are defined by common code settings as explained later.

The employer rate is calculated using PERS/IDMAP1.

Worker’s Comp pay (not contribution) needs “WORK” in miscellaneous code 1 of the hour definition to trigger the worker’s comp pay flag to be set to “Y” in the report.  When an employee is receiving his/her normal earnings, the worker’s comp flag is automatically “N”.

Employee Setup

The following data must be available for each employee:

  • Employees must be assigned all applicable contributions and deductions.  All ‘PERSI’ contribution and deduction assignments must have beginning and ending dates populated.  Enter a begin date 5 months beyond the hire date, so the employee’s deduction and contribution only takes place after he/she becomes eligible.  Use an end date of 12/31/2050, so the definition remains active until termination.

  • Each employee must have one of the following Class codes assigned for reporting purposes:

            1 = General Member

            2 = Fire or Police

            3 = Teacher

            4 = General with Police grandfather rights

            A = Option I Fire

            B = Option II Fire prior to 7/1/1978

            D = Fire, employed after 10/1/1980

            E = General Member (non-fire) working for an FRF unit

           

The Class Code may be assigned to each employee in one of three ways:

  1. Using the CLASS/UNIT or CLASS/TYPE mechanism provided through common code PERS IDMAP, as described below.

  2. By entering a valid Class Code in switch 17 of the deduction or contribution definition (screen 3 of masks PYUPCC and PYUPDD). For this method to work, however, multiple contributions and/or deductions must be defined—at least one for each class of employee—and employees must be assigned only those contributions and deductions with the appropriate Class Code.

  3. By entering a value in switch 4 of screen 2 of the employee definition (mask PYUPEM). Class Codes entered in the employee master switch 4 override any values found in the contribution/deduction definition switch 17.

Special Employee Setup

Special Employee setup for IRRP and IRRL (repayments); IRBA, IRCA, and IROA (adjustments); and officials.

  • Employees that are on a re-pay or buyback plan can have an invoice number assigned to the deduction by placing up to 10 alphanumeric characters in the special miscellaneous code fields of their employee deduction assignment for the CDH number relating to re-pay loan activity. Adjustments may be set up with begin/end dates or a particular pay period in the special codes fields of the employee’s deduction/contribution assignment.  There are four 4 character special code fields.  Treat them as one 7-digit field when using a pay period.  When using begin/end dates, use the first 8 characters for the begin date, and the second 8 characters for the end date.  The dates must be in “mmddccyy” format.

  • There is a provision to identify elected “officials” by placing “ELEC” in the type field of the employee master definition. 

Common Code Setup

PERS/IDMAP

Set up common code PERS/IDMAP:

Code Category: PERS

Code Value: IDMAP

Short Description: Employer Number to be reported to PERSI.

Medium Description: Schedule Name to be reported to PERSI.

Long Description: Employer Name in the first 60 positions and the Employer Code (BCSD, MJSD, etc.) in the last 12 positions.

Numeric Value 1: Retirement Pay Base to be used to report earnings, the default is 7.

Numeric Value 2: Retirement Hour Base to be used for hours worked, the default is 16.

Numeric Value 3: Not used.

Numeric Value 4: Miscellaneous Code box in CDH definitions where the “IR” code is entered (in the sample below, 6 is used), default is 3.  If this Misc Code starts with “IR”, then the deduction or contribution is an Idaho Retirement CDH.

Numeric Value 5: Average salary for class 1 employees in IRDB.  If this is filled in, the average is generally 2080 hours divided by 12 months or 173.33333.  This monthly avergae is then multiplied by the FTE to determine the employee’s average hours. 

PERSI does not want reports over the summer with zero hours even if an employee does have any actual hours.  They will accept average hours to accommodate this.

The Associated Code and Associated Description fields are used together to assign employees a Class Code based on either their Type or Unit.

Associated Code:

  • CLASS=x

    • Where x is a valid Class Code (e.g., CLASS=1, CLASS=2, etc.)

Associated Description:
Use either a Unit-based or Type-based assignment:

  • UNIT=xxxx,yyyy,...
    (Assigns based on Bargaining Unit)

  • TYPE=xxxx,yyyy,...
    (Assigns based on Employee Type)

Important Rules

  • You must choose either UNIT= or TYPE= for all entries—not both.

  • Use @@ as a wildcard to catch any unmatched Units or Types.

  • No embedded spaces in the Associated Description values.                                                                                                                              

PERS/IDMAP1

Set up common code PERS/IDMAP1:

Code Category: PERS

Code Value: IDMAP1

Short Description: Employer Number to be reported to PERSI.

Medium Description: Schedule Name to be reported to PERSI.

Long Description: Employer Name and description of common code’s purpose.

Numeric values 1-5: Employer’s percentage rate for each class of employee and must correspond to the “CLASS=” in the Associated Codes fields.

Associated Codes: Match exactly to the ones defined in PERS/IDMAP, described previously.

PERS/IDMAP2

Set up common code PERS/IDMAP2:

Code Category: PERS

Code Value: IDMAP2

Short Description: Employer Number to be reported to PERSI.

Medium Description: Schedule Name to be reported to PERSI.

Long Description: Employer Name and description of common code’s purpose.

Numeric Values 1-5: Employee’s percentage rate for each class of employee and must correspond to the “CLASS=” in the associated codes fields.

Associated Codes: must match exactly to the ones defined in PERS/IDMAP and PERS/IDMAP1.

PERS/IDELIGnn

Set up common code PERS/IDELIGnn (where nn is a sequential number from 01 through 99):

Associated Descriptions 1-5: CDHs that, when assigned to an employee, make them PERSI Eligible in the form of CDH=(CDH List)

Associated Code 1-5: If “RETIRED” in the corresponding Associated Code (1 through 5), then an employee with this CDH assignment is a retired member.

PERS/IDSICK

Use common code PERS/IDSICK to set up options related to the Sick Leave CDH or Hours base and Sick Rate.

  • Defaults to the regular hourly rate of the primary pay assignment.

  • Look at common code PERS/IDSICK to override the regular hourly rate. 

Code Category: PERS

Code Value: IDSICK

Associated Codes:

  • If any of the 5 Associated Codes = “TOTAL HOURLY”, then use the total hourly rate from the primary pay assignment in HR.

  • If any if the 5 Associated Codes = “TOTAL DAILY”, use the total daily rate from the primary pay assignment in HR.

  • Determine Hour Base or CDH numbers:

  • Enter “SICK LEAVE” in any of the five Associated Codes.  In the corresponding associated numeric value place the Sick Leave Hour Base. Alternatively, in the corresponding Associated Description field, enter “CDH=xxxx,yyyy,…” (no embedded spaces) where xxxx, yyyy, etc., are the CDH numbers for Sick Leave.   If the numeric value is filled in for an hour base, the Associated Description to define a CDH will be ignored. Or, in the corresponding Associated Description field, enter “NUM=#” (no embedded spaces) where # is the numeric value number from the HR Employee Master.  “NUM=1” will use the first numeric value.

PYFG/PY268ID

Common Code to set up General Switches.

Code Category: PYFG

Code Value: PY268ID

Short Description: DEBUG activates debug mode to display additional information on the tail sheet that might help diagnose any problems with this process.

Medium Description: Set to "TIMECARD" or "TIMECARDS" to activate the TIMECARD-FLAG and include timecards in calculations.

Long Description: Contains the same information as in PERS/IDMAP:

  • First 60 characters: Employer Name

  • Last 12 characters: Employer Code (e.g., BCSD, MJSD)

    • Note: The Long Description in PERS/IDMAP will override this value.

Numeric Values 1-5: Not Used.

Associated Descriptions 1-5: Not Used.

Associated Code 1-5: Not Used.

Reason Code Setup

If the eligibility end date is filled in on the PYRERRID03 screen, the reason code will be determined in the following manner:  If the HR status in HR Employee Master is T or I, the PERSI Reason Code will be mapped to the HR TERMINATION Code using Common Code PERS/IDRSxxxx, where xxxx is the HR Term Code.  The PERSI Reason Code will be mapped in the first Associated Code field.  See example below of mapping the HR Term code of MD to the PERSI reason code of MEDL.

If we still have a blank Reason Code then, if the payroll termination date is not filled in, “INEL” will be used.  Otherwise, “OTHR” will be used. 

Extract PERSI Data from History(PYRERRID01)

Once setup is complete, use mask PYRERRID01 to extract data from a specific Check History period.

  1. Enter Pay Period, required field.
    Typically, this is the most recent paid and distributed period.

  2. Apply Selection Criteria (Optional).
    Use selection criteria to extract PERSI data for a limited group of employees. This is useful after a full-cycle extract when changes have been made to only a few employees.

  3. Include Unpaid Check History?
    Normally, select “NO” to exclude unpaid records.
    Select “YES” only for testing or to generate a preliminary PERSI report before the pay/distribute process.

  4. Delete Report Period Before Merge?, required field.

    • For partial re-extracts (specific employees): select “NO” to retain existing data and update only selected records.

    • For full-cycle extracts or re-extracts: select “YES” to replace all data for the period.

  5. Do you want to use the latest primary rate? Is obsolete and will be removed in the future.

Update PERSI Data (PYRERRID03)

The PYRERRID03 mask allows users to add, modify, or delete records in the retirement utility dataset before generating a report and submission file for PERSI.

Functionality
  • Retrieves employee data by payroll period, using either SSN or Name sequence.

  • Demographic information is pulled from the employee’s master record.

    • To update demographic data, use the standard employee maintenance process (e.g., PYUPEM in Payroll or the appropriate HR screen).

Detail Entry Section
  • Located at the bottom of the screen.

  • Allows browsing or entering up to five detail entries per employee.

  • An eligibility end date is required for most updates:

    • For terminations, enter the actual termination date.

    • For ongoing eligibility, use a placeholder such as 12/31/2050.

Enrollment Report and File (PYRERRID05)

The PYRERRID05 mask is the final step in processing the PERSI Enrollment file. It generates a formatted report and creates a submission file as required by PERSI.

Steps to Complete
  1. Enter Pay Period, required field.
    Specify the payroll period to be extracted. Entered as YYccIII (YY=Year, cc=Pay Cycle, III=Number).

  2. Enter Report Start and End Dates.
    Define the date range for the report.

  3. Specify Enrollment File Name, required field.
    Provide a name for the file to be created.

    1. The file will be saved in the ADMIN/DATA directory on the BPlus App server and can be transmitted to PERSI per the Employer Manual.

  4. Select Sick Leave Data Type.
    Enter:

    • "C" for Current Sick Entitlement, or

    • "Y" for Year-to-Date Sick Balance

  5. Enter PERSI Schedule Name, MONTHLY is the default.
    Provide the appropriate schedule name for the report.

If any data is missing or incorrect, use PYRERRID03 to make updates. You may re-run PYRERRID05 as needed until the file is complete and accurate.

Transmission Report and File (PYRERRID06)

The PYRERRID06 mask is the final step in generating the PERSI Transmission file. It produces a formatted report and creates a submission file as required by PERSI.

Steps to Complete
  1. Enter Pay Period, required field. Entered as YYccIII (YY=Year, cc=Pay Cycle, III=Number)
    Specify the payroll period to be extracted. Entered as YYccIII (YY=Year, cc=Pay Cycle, III=Number).

  2. Enter Report Start and End Dates.
    Define the reporting date range.

  3. Specify Transmission File Name, required field.
    Provide a name for the output file.

    • The file will be saved in the ADMIN/DATA directory on the BPlus App server and can be transmitted to PERSI per the Employer Manual.

  4. Select Sick Leave Data Type.
    Enter:

    • "C" for Current Sick Entitlement, or

    • "Y" for Year-to-Date Sick Balance

  5. Enter PERSI Schedule Name, MONTHLY is the default.
    Provide the appropriate schedule name for the report.

If any data is missing or incorrect, use PYRERRID03 to make updates. You may re-run PYRERRID06 as needed until the file is complete and accurate.

Change Report and File (PYRERRID07)

The PYRERRID07 mask is the final step in generating the PERSI Change file. It produces a formatted report and creates a submission file in the format required by PERSI.

Steps to Complete
  • Enter First Pay Period, required field. Entered as YYccIII (YY=Year, cc=Pay Cycle, III=Number)
    Specify the first previously extracted pay period to be included.

  • Enter Second Pay Period.
    Specify the second previously extracted pay period to be included.

  • Specify Change Retirement File Name, required field.
    Provide a name for the output file.

    • The file will be saved in the ADMIN/DATA directory and can be transmitted to PERSI as outlined in the Employer Manual.

  • Enter PERSI Schedule Name, MONTHLY is the default.
    Provide the appropriate schedule name for the report.

If any data is incorrect or missing, use PYRERRID03 to make updates. You may re-run PYRERRID07 as needed until the file is complete and accurate.

File Formats

The Enrollment process creates the following detail rows in the report file.

Len

FT

Req

Field Name

Description

4

A

R

employer code

The 4-character code number for the employer reporting the employee.

9

I

R

ssn

The employee’s 9-digit social security number with no punctuation or hyphens.

20

A

R

employee unique identifier

Unique identifier for each employee. It cannot be the employee’s SSN.

30

A

R

first name

The employee’s first name.

30

A

R

last name

The employee’s last name.

30

A

O

middle name

The employee’s middle name or initial, if applicable.

3

A

O

name suffix

The employee’s name suffix. Only the following values will be accepted:

I, II, III, IV, JR, SR

8

D

R

birth date

The employee’s data of birth.

1

A

R

gender code

The employee’s gender:

  • M = Male

  • F = Female

  • U = Unknown

1

A

O

marital status

The employee’s marital status:

  • M = Married

  • S = Single

  • U = Unknown

10

I

O

cell phone number

The employee’s 10-digit cell phone number without any punctuation or spaces.

100

A

O

email

The employee’s email address.

200

A

R

address

The employee’s full address in the form “address city state zip code” without commas or other punctuation.

Examples:

100 Main Street Boise ID 83702

102 Main St Apt 1 Boise ID 83702

3

A

O

country

The employee’s three-character country code. For example:

  • USA = United States

  • CAN = Canada

4

A

R

eligibility status

The PERSI eligibility status for the employee:

  • ELIG = PERSI-Eligible

  • NPEL = not PERSI-Eligible

  • RETC = Retired Contributing

8

D

R

hire date

The employee’s hire date or rehire date for the most-recent employment period.

5

A

R

plan

The PERSI retirement plan the employee is being hired into:

  • PERSI

  • ORP

 

1

A

R

employment type

The type of employment being reported to PERSI:

  • R = Regular (default case)

  • E = elected/appointed officials (even if less than 20 hours per week)

1

A

R

seasonal

Is the employee in a seasonal position?

  • Y = Yes

  • N = No

1

A

R

reported class

The class for the reported employee:

  • X = Not PERSI eligible (no contributions)

  • 1 = General

  • 2 = Police/fire

  • 3 = School employee

  • D = PERSI firefighter, employed after 10/1/1980

  • E = General member working for an FRF unit

Note: Some classes require the user to select and validate a specific position, statute subsection, and/or certification on the Enrollment screen after the file is submitted

 The Transmission process creates the following detail rows in the report file.

Header Record.

Len

FT

Field Name

Description

1

I

header format id

Always 1.

4

A

employer code

The 4-character employer code for the employer.

30

A

pay cycle schedule name

Your pay cycle schedule name.

8

D

current cycle start date

The first day of the current pay cycle.

8

D

current cycle end date

The last day of the current pay cycle.

 Detail Record.

Len

FT

Req

Field Name

Description

1

I

R

format id

Always 4.

6

I

R

sequence number

Starts with '1' and increases by 1 for each row. Should be in numerical sequence order within the file.

20

A

R

employee unique identifier

Unique identifier for each employee as established during enrollment. Cannot be the employee’s SSN.

8

D

R

cycle start date

The start date for the pay cycle being reported by this record.

Can be for the current or a prior pay cycle.

8

D

R

cycle end date

The end date for the pay cycle being reported by this record. Can be for the current or a prior pay cycle.

12

C

R

compensation

All regular compensation for this employee except for the following:

·   Any compensation associated with sick leave only (or non-pensionable earnings).

·   Income not from a conventional source (e.g., uniform allowances).

Examples: Normal wages, bonuses, etc.

12

C

X

other pay

Income that is not from a conventional source and is not used to determine eligibility.

Examples: Stipends, uniform allowances, and similar items that are not used to determine service credit.

12

C

X

non-pensionable compensation

Earnings that do not contribute toward PERSI eligibility, but are used to calculate non- pensionable compensation totals for employees in a PERSI sick leave plan. These include lump-sum payouts at the time of termination.

12

C

X

contributions

The contribution amount for the employee during this pay cycle.

Must match the sum of the employee’s compensation and other pay fields multiplied by the contribution rate as determined by the employee’s class as of the pay cycle end date.

Required unless the employee is an ORP member.

8

N

X

hours

The hours worked by this employee for the wages shown on this record.

Required unless the employee is reported with a contract percent or is an ORP member.

1

I

R

format id

Always 4.

6

I

R

sequence number

Starts with '1' and increases by 1 for each row. Should be in numerical sequence order within the file.

20

A

R

employee unique identifier

Unique identifier for each employee as established during enrollment. Cannot be the employee’s SSN.

8

D

R

cycle start date

The start date for the pay cycle being reported by this record.

Can be for the current or a prior pay cycle.

8

D

R

cycle end date

The end date for the pay cycle being reported by this record. Can be for the current or a prior pay cycle.

12

C

R

compensation

All regular compensation for this employee except for the following:

·   Any compensation associated with sick leave only (or non-pensionable earnings).

·   Income not from a conventional source (e.g., uniform allowances).

Examples: Normal wages, bonuses, etc.

12

C

X

other pay

Income that is not from a conventional source and is not used to determine eligibility.

Examples: Stipends, uniform allowances, and similar items that are not used to determine service credit.

12

C

X

non-pensionable compensation

Earnings that do not contribute toward PERSI eligibility, but are used to calculate non- pensionable compensation totals for employees in a PERSI sick leave plan. These include lump-sum payouts at the time of termination.

12

C

X

contributions

The contribution amount for the employee during this pay cycle.

Must match the sum of the employee’s compensation and other pay fields multiplied by the contribution rate as determined by the employee’s class as of the pay cycle end date.

Required unless the employee is an ORP member.

8

N

X

hours

The hours worked by this employee for the wages shown on this record.

Required unless the employee is reported with a contract percent or is an ORP member.

3

I

X

contract percent

The contract percent for this employee. Must be reported as a whole number. Required unless the employee is reported with hours worked or is an ORP member.

8

N

X

unused sick leave units

The total unused sick leave days or hours (depending on employer) an employee has. Required if the employer participates in the Sick Leave program.

20

A

X

invoice number

The invoice number for an employee who is paying back a PERSI Base Plan loan. Required if the member has an open loan.

12

C

X

remittance amount

The payment amount going toward the associated PERSI Base Plan invoice number. Required if the member has an open loan.

1

A

X

employment type

The type of employment being reported to PERSI:

·   R = Regular (default case)

·   E = elected/appointed officials (even if less than 20 hours per week)

Required unless the employee is an ORP member.

500

A

X

earning explanation

Notes field to provide clarifying information on income reported in the other pay field. Also used to provide information on pay changes like bonuses, overtime, high compensation, etc.

Required when other pay is reported.

Footer Record.

Len

FT

Field Name

Description

1

I

format id

Always 9.

16

C

compensation

The total of all values from the compensation column in the detail records.

16

C

other pay

The total of all values from the other pay column in the detail records.

16

C

non-pensionable compensation

The total of all values from the non-pensionable compensation column in the detail records.

16

C

employee contributions

The total of all values from the employee contributions column in the detail records.

6

I

number of detail records

Count of the detail records being reported in this file.

The Change process creates the following detail rows in the report file.

Len

FT

Req

Field Name

Description

4

A

R

employer code

The 4-character code number for the employer reporting the employee.

20

A

R

employee unique identifier

Unique identifier for each employee as established during enrollment. Cannot be the employee’s SSN.

8

D

R

effective date

The date for the status and/or class change.

Note: If change reason is CORR, effective date = correct hire date.

4

A

R

change reason

The reason code for the status change.

  • CORR = Corrected hire date - first day on the job - correcting an existing row for the hire date

 

Note: To correct employees submitted with the wrong date and the wrong class, see Rule 1.)

  • CLS = Class change

  • LDW = Last day worked

  • DECD = Deceased

  • ELIG = Eligible

  • INEL = Remains employed, but no longer meets eligibility requirements (e.g., dropped to part time)

  • LWOP = On leave without pay

  • MILL = On military leave

  • WCMW = On workers compensation and salary is being made whole

  • WCOM = On workers compensation

 

1

A

R

reported class

The class for the reported employee:

  • X = Not PERSI eligible (no contributions)

  • 1 = General

  • 2 = Police/fire

  • 3 = School employee

  • 4 = General with police grandfather rights

  • D = PERSI firefighter, employed after 10/1/1980

  • E = General member working for an FRF unit

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.