Skip to main content
Skip table of contents

Virginia Retirement System

Overview

Three processes are involved in preparing Virginia retirement data and generating files ready for submission to the state as follows:

  1. PYRERRVARE extracts retirement data from the database for the given month and places it in a table ready for editing or reporting.

  2. PYRERRVARU allows editing of the extracted data. Add, change and delete operations are supported via a standard screen program.

  3. PYRERRVARR provides a batch proof report of the data that will be submitted and generates flat file(s) of retirement information ready to transmit to the state.

The typical scenario involves extracting the data, generating a batch proof report/files(S), making any necessary additions, adjustments or corrections to via the edit program, then generation of a final batch proof report/file(s).

All three processes will ask for a month and year for the processing when they start. In addition, the extract program will ask for a list of pay periods to include in the report. (If the answer to this question is left blank, the process will automatically determine a set of pay periods to use for processing by selecting all pay periods with a calendar month and year matching the input month and year.)

Special Notes

If a list of pay period is input, please note than the number of pay periods that can be input in response to the runtime question is limited. If you need to list more than the question allows, enter “&” as the last character in the list and the question will be asked again allowing you to list more. E.g., a response of “0501001,0501002,0501101,0501102,0501901&” in response to the question “Enter the pay periods to include in the report separated by commas:” will cause the question to be asked again and you will be able to enter more periods.

The extracted dataset and all resultant flat files are unique for each month/year. This means you can go back and re-process any past month's data.

Each month, one or more flat files will be generated. One flat file will be generated for each employer code processed for each month reported. The flat file name will be “R” followed by the year and month in a YYMM format followed by the employer code, e.g., R050312345 would be the resultant flat file for March, 2005 for employer code 12345.

The initial startup month is problematic in that each and every employee will be reported as a new member. This is due to the “look back” capability of the extraction process. Basically the extraction process looks back at prior months to determine if this is the first time an employee is reported (new member), if there is a name change, etc. Needless to say there are no prior months to look back to for the initial month. The logical cure for this is to run the extraction process for the month prior to the startup month so there is a month to look back to.

To be reported, an employee must have a valid employer code and either 1) a demographics change (new member, name change, etc.), 2) a retirement, health or life contribution or a buyback or 3) be terminated during the month.

If an employee changes employer codes, they will be reported as terminated under the last reported employer code and as a new member under the new employer code.
A special debug mode had been implemented named “debug SOV” for “debug source of value”. This debug mode is set via common code PYFG/268VA. When set, the tailsheet will detail the source of each value extracted for each employee reported. Specifically, if you wonder where the extraction program got a value for an employee, turn on debug SOV, extract data for the employee, then examine the tailsheet.

If you re-extract data for an employee, all retirement data for that employee previously extracted for the target month will be deleted and replaced with new data. Previously extracted data for employee's not re-extracted will be left alone. That is, you can either start over by re-extracting everybody or you can selectively re-extract using the run time selection criteria and employees not selected will be left alone.

The Edit Screens

The edit screens consist of two screens, a demographics screen and a transactions/adjustments screen. All fields should be obvious. Note that the Creditable Compensation field on the transactions/adjustments screen is simply a calculation of annual salary divided by the number of months worked (from the demographics screen). This value will be blank for all adjustments, that is, when the Payroll Date on the screen if different from the Payroll Dt on the top of the screen. Very little verification is done for the contents of the screen. The contents represent the semi-raw data prepared by the extract process that will be printed and a file records generated by the reporting process. The “philosophy” of the edit screens is to pretty much allow the user to make any changes they desire to force any results they want.

Setup

Decide on three fields on the PYUPEM screen to hold the employer code, the annual salary and the number of months per year and populate these fields with appropriate values.
For both contributions and deductions pertinent to retirement, decide on a miscellaneous code value and which miscellaneous code will carry the value for buybacks, health, retirement contributions, and life insurance. Populate the appropriate miscellaneous codes with these values.

Common Codes

Common code PYFG 268VA controls the extraction process:
Short Description: Set to DEBUG SOV to turn on debug SOV
Associated Description 1: The cluster/attribute(s) input here control the source of the employer code value.
If a single EMPM cluster attribute is specified of the form “EMPM.attributename”, the program will use the value of this attribute as the employer code.
If two EMPM attributes are specified separated by a common (of the form “EMPM.attributename1,EMPM.attributename2”), a “dual match for employer code” procedure is indicated. This procedure involves the retirement data extraction process obtaining the values of both attributes then using these values to look up the employer code in the common codes PYFG 268VACnn (where nn = 01 to 99). For example, if this field is set to “EMPM.GENCD,EMPM.UNIT”, the program will fetch the employee's entity and the employee's bargaining unit then look for a matching combination of entity/bargaining unit in the PYFG 268VACnn common codes.
Associated Description 2: Set this to the cluster/attribute containing the employee's annual salary. If the value needs to be divided by some value, add the character “/” then the divisor. For example, if the annual salary attribute is stored in the EMPM cluster as a number with two decimals, e.g., 60000.00, add “/100” to the tail end of the description.
Associated Description 3: This value is used to control how the extraction process determines number of months worked; a direct and an indirect method has been implemented.
The direct method is used if there is an EMPM attribute that contains the employee's number of months per year worked. To use the direct method, simply set this field to EMPM.attributename where attributename is the name of the EMPM attribute. If the value needs to be divided by some value, add the character “/” then the divisor. For example, if the number of months per year is stored as a number with two decimals, add “/100” after the cluster attribute.
The indirect method uses the number of pay periods per year contained in some EMPM attribute and the employee's pay cycle to do an indirect lookup in common code PYFG 268VMnn. To use the indirect method, set this field to EMPM.attributename where attributename is the EMPM attribute containing the number of pay periods per year. If the value needs to be divided by some value, add the character “/” then the divisor. For example, if the number of months per year is stored as a number with two decimals, add “/100” after the cluster attribute.

Common code PYFG 268VA2 controls the extraction process:
Associated Value 1: Set this to the miscellaneous code number of the contribution/deduction miscellaneous code that will control buybacks.
Associated Value 2: Set this to the miscellaneous code number of the contribution/deduction miscellaneous code that will control health credit contributions.
Associated Value 3: Set this to the miscellaneous code number of the contribution/deduction miscellaneous code that will control retirement contributions.
Associated Value 4: Set this to the miscellaneous code number of the contribution/deduction miscellaneous code that will control group life insurance contributions.
Associated Code 1: Set this to the contribution/deduction miscellaneous code value that will control buybacks.
Associated Code 2: Set this to the contribution/deduction miscellaneous code value that will control health credit contributions.
Associated Code 3: Set this to the contribution/deduction miscellaneous code value that will control retirement contributions.
Associated Code 4: Set this to the contribution/deduction miscellaneous code value that will control group life insurance contributions.

Common codes PYFG 268VAE01 through PYFG 268VAE99 define the valid employer codes to the extraction process:
Associated Codes 1-5: Set this to a valid 5 digit employer code.

Common Codes PYFG 568VA01 through PYFG 568VA99 define various rates by employer code for the batch proof/file generation process reported on the total record:
Medium Description: Set this to the employer code for the rates listed in the Numeric Values
Associated Value 1: Set this to the retirement rate accurate to 5 decimal places.
Associated Value 2: Set this to the health rate accurate to 5 decimal places.
Associated Value 3: Set this to the life insurance rate accurate to 5 decimal places.

Common Codes PYFG 568VAC01 through PYFG 568VAC99 define employer codes to be used based on matching the values of two EMPM attributes to the contents of these common codes (See Associated Description 1 of common code PYFG 268VA):
Associated Codes 1-5: Set these codes to valid employer codes. The same employer code can be used on more than one entry.
Associated Description 1-5: Set the description to the values of two EMPM attributes (separated by a “|” character) that correspond to the Associated Code. Using the above example, if the extract process (for a particular employee) fetches the value “SUPV” for the first EMPM attribute specified in Associated Description 1 of PYFG 268VA then fetches the value “ROOT” for the second EMPM attribute, employer code 22222 would be used as the employer code for the employee.
Medium Description: Set this to the employer code for the rates listed in the Numeric Values
Associated Value 1: Set this to the retirement rate accurate to 5 decimal places.
Associated Value 2: Set this to the health rate accurate to 5 decimal places.
Associated Value 3: Set this to the life insurance rate accurate to 5 decimal places.

Common Codes PYFG 568VAM01 through PYFG 568VAM99 define the number of months per year to be reported based on an employees pay cycle and the number of pay period per year the employee is paid (See Associated Description 3 of common code PYFG 268VA):
Medium Description: Set this to the pay cycle using two numbers, e.g., “01”.
Associated Values 1 to 5: Set to the number of pay periods per year.
Associated Descriptions 1-5: Set this to the number of months per year corresponding to the number of pay periods per year contained in the corresponding Associated Value.

CDD Reporting

The retirement processing uses the PYRD_DEMO_DTL table to store employee specific information, e.g. annual salary, while the PYRW_WORK_DTL dataset is used to store monthly transaction and adjustment detail information. Both tables are “keyed” by employee ID and extract date. The extract date is the last date in the month of the month/year specified at extract process runtime, e.g., if the retirement data is for 07/06, the extract date will be 07/31/2006.
The following map maps table field names to the values pertinent to Virginia Retirement (only non-obvious fields are included, e.g., employee's last name is not included in the map below but is obviously contained in field PYRD_EMP_L_NAME):

PYRD_DEMO_DTL table

Table Column Name

Content

PYRD_EMP_MSC_NUM01

Member Information Change flag where:
0 = No change
1 = New member
2 = Employer code change
3 = Terminated

PYRD_EMP_MSC_NUM02

Name Change flag where:
0 = No name change
1 = Name change

PYRD_EMP_MSC_NUM03

Gender Change flag where:
0 = No gender change
1 = Gender change

PYRD_EMP_MSC_NUM04

Date of Birth (DOB) Change flag where:
0 = No DOB change
1 = DOB change

PYRD_EMP_MSC_NUM05

Annual salary in whole dollars

PYRD_EMP_MSC_NUM06

Number of months per year employee works

PYRD_EMP_MSC_LCHR01

Employer code

PYRD_EMP_MSC_LCHR02

First report date (for new members)

PYRD_EMP_MSC_LCHR03

Reported Hire Date (for new members)

PYRD_EMP_MSC_LCHR04

Prior reported employer code (for employer code changes)

PYRD_WORK_DTL table 

Table Column Name

Content

PYRW_FUNC_ID

Comment code (“01” for new Member, otherwise “06”)

PYRW_REC_ID

Payroll date (YYMM format)

PYRW_O-AMT01

Retirement Contribution amount

PYRW_O_AMT02

Health amount

PYRW_O_AMT03

Group Life amount

PYRW_O_AMT04

Buyback amount

JavaScript errors detected

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

If this problem persists, please contact our support.