This section provides an overview of calculation configuration and discusses how to:
Call user code.
Configure individual user code modules.
This section provides overviews of:
User code usage
User code executables
User code module names
Pension Administration provides a flexible and comprehensive set of calculation options. However, you might need to configure calculation components to exactly conform to your plan rules.
Although configurations enable you to control the system, they can complicate system maintenance, particularly upgrades. Any time that you receive new code from PeopleSoft, you must ensure that the new code does not overlay the configurations that you have instituted.
Because of the potential maintenance issues, the best way to manage your configuration is to isolate your custom code. You must still analyze the effect of PeopleSoft code changes on your configured code, but keeping the PeopleSoft code and your custom code separate makes it easier to reapply configurations after an upgrade.
To help you isolate your modifications, PeopleSoft provides clearly marked user code exit points on many of the system’s parameter pages. Each of these represents a specifically defined portion of one of the system’s delivered functions. When you select the user code option, the calculation runs the configured COBOL module that derives the expected value.
Note. This section discusses user code modules that are associated with the system’s core functions. You can also create user code modules that are not associated with core functions. To incorporate these independent user code modules into the calculation, enter them directly on the Plan Implementation page.
Each component that offers user code options is associated with a single user code executable—with one exception: All service and break components share a single executable. The system predefines the executable name for a component. All custom processing for a function belongs in the module associated with that function.
To set up multiple definitions with separate modifications, ensure that your code includes logic that checks the definition name to determine the appropriate processing.
If a function has multiple user code points, the delivered user code module already has subsections for the different points. When Pension Administration calls the user code module, the main section performs the appropriate user code subsection, based on the point from which the user code was called.
In all cases, your module must pass back the appropriate values, based on the user code options that are selected.
A calculation calls the following modules when it recognizes that a user code option has been selected. Each of these modules is delivered as an empty shell that you can modify. User code modules names begin with PAPX, followed by characters to identify the individual function.
None of the aliases (the components on the Variables menu) employs user code options.
Function |
User Code Module Name |
Consolidated earnings |
PAPXCERN |
Consolidated hours |
PAPXCHRS |
Service |
PAPXSVC |
Vesting |
PAPXVEST |
Final average earnings |
PAPXAERN |
Cash balance accounts |
PAPXABAL |
Early and late retirement factors |
PAPXAGE |
Death coverage factors |
PAPXDTH |
Optional forms of payment |
PAPXOPTF |
415 limits |
PAPX415 |
Rules |
User Code Module Name |
Date conversion options, date round options, and duration options |
PAPXDTGN |
Actuarial assumptions |
PAPXCMFN |
401(a)(17) parameters |
PAPXELMT |
The following functions and rules do not include user code options:
Plan eligibility.
Participation.
Retirement eligibility.
Employee accounts.
Social security primary insurance amount (PIA).
Covered compensation.
Benefit formula.
Employee-paid benefit.
Consolidated contributions.
Interest methods.
Projections.
Human Resources (HR) action and reason categories.
Several functions have parameters that you can mark for custom processing by selecting the User Code in the Zero Options field for a portion of the calculation.
Anywhere that this user code option appears, you can select it to have the system run your configured code to perform that part of the processing.
Two user code options are different:
On the Plan Implementation page, you can insert user code modules directly into the calculation jobstream.
This type of user code module is not associated with the system’s core functions. It is a custom core function that you develop yourself. You set up this type of user code to access values from earlier in the jobstream. To make the results of the user code available later in the jobstream, the user code must create an entry in the alias table so that other calculation components can reference the results by the alias name.
In the Define Calculation (CALCULATE_PENSION) component, a check box for loading external employee data is a user code option because you must write your own data loading procedure.
See Also
Creating a Plan Implementation
This section provides overviews of user code modules and the information in this section and discusses how to configure user code modules.
Although each function uses only one user code module, that code can cover many different situations. Sometimes, the code completes all of the processing without referencing parameters. Sometimes, the code performs one small part of the processing and provides a method or an intermediate value for the function.
Pension Administration expects that the modules perform processing only for the user code options that are selected on the parameter pages.
This section includes summary tables for the system components that have user code options on the parameter pages. These tables include the following information:
User Code Option: The user code option that appears on the system component's parameter page. For example, the Add Periods Rules page contains the user code option Adjustment Rule, which is used in configuring service.
Description: What the function expects the user code to produce.
This section is organized by function and page.
The following pages appear for add period rules and hours equivalence rules definitions:
This page appears only for elapsed time and hours equivalence definitions.
User Code Option |
Description |
Adjustment Rule |
Returns the adjusted effective date for the specified action and reason. |
This page appears only for hours equivalence definitions.
User Code Option |
Description |
Hours Equivalence Type and Customized Equivalence Rules |
Return the number of hours in a period. |
See Also
Setting Up Elapsed Time Service
Setting Up Hours Counting Service
Setting Up Hours Equivalence Service
The following pages appear for break restore rules and break wait rules:
User Code Option |
Description |
Break Defined By |
Sets break for every period in the service history. |
User Code Option |
Description |
One Year Wait and Elapsed Time |
Return Y (service is restored) or N. |
See Also
Defining Service and Break Rules
The following pages appear for add period and hours equivalence rules definitions:
User Code Option |
Description |
Schedule Type |
Returns the vesting percentage for the schedule. This percentage is still compared to results from other schedules, and it is still subject to the full vesting and forfeiture conditions on the Vesting Conditions page. |
User Code Option |
Description |
Full Vesting Conditions |
Returns Y or N. If the value is Y, the final vesting is 100 percent. |
Forfeiture Conditions |
Returns Y or N. If the value is N, the final vesting is 0 percent. |
See Also
To configure final average earnings:
User Code Option |
Description |
Partial Period Options and Final Period Options |
Return two parameters for each partial period in the history: Y or N to determine whether a period is included in the total. If the value is Y, return an earnings amount. |
Limit Options - Before Averaging |
Returns the limited amount for each period in the history. |
Limit Options - While Averaging and Short Service Options |
Return the final average earnings amount. |
Zeros |
Returns the earnings amount for each zero period in the history. |
See Also
Defining Final Average Earnings
To configure cash balance accounts:
User Code Option |
Description |
Calculate Credit According To.. |
Returns a credit amount for each period, still subject to minimums, maximums, and partial period rules. |
Step Rate Threshold |
Returns the earnings amount. |
Subject to Minimum |
Returns the minimum credit amount that is applied to each period. |
Subject to Maximum |
Returns the maximum credit amount that is applied to each period. |
User Code Option |
Description |
Partial/Mini Period Rules |
Returns the credit amount for each partial period in the history. |
See Also
Defining Cash Balance Accounts
To configure early and late retirement factors:
User Code Option |
Description |
Subadjustment Method |
Returns the adjustment factor. You can use it, or you can disregard the employee and beneficiary from and to ages on the Actuarial Equivalence Method page. |
Actuarial Equivalence Method Page
User Code Option |
Description |
Employee From Age, Employee To Age, Beneficiary From Age, and Beneficiary To Age |
Returns the age. |
User Code Option |
Description |
Number of Adjustment Periods |
Returns the number of periods used as the basis for the arithmetic adjustment. |
See Also
Defining Early and Late Retirement Factors
User Code Option |
Description |
Calculate Reduction Using |
Provides the final adjustment factor. |
Apply Table-Defined Schedule |
Provides the final adjustment factor, using values provided by the specified table. |
User Code Option |
Description |
Determine Fixed Period Length |
Returns the number of periods that the arithmetic rule uses to determine the factor. |
See Also
Defining Death Coverage Reductions
To configure optional forms of payment:
User Code Option |
Description |
Non-Taxable Amount Calculation |
Returns the nontaxable portion of the payment for each form in the formset. |
User Code Option |
Description |
Conversion Method |
Returns the factor for converting to the optional form of payment. |
Lump Sum Parameters 2 of 2 Page
User Code Option |
Description |
Use Alternate Assumption Set |
Returns the factor for converting to alternate lump sum amount. |
Lump Sum Not Available |
Returns Y or N. If value is N, the payment option does not appear in the calculation results. |
See Also
Defining Optional Forms of Payment
To configure consolidated earnings:
User Code Option |
Description |
Generation Method for Action Reason and Generation Method for Custom Statement |
Return the earnings amount for the period. This amount is still subject to minimums or maximums. |
User Code Option |
Description |
Adjustment Method - Term |
Returns the earnings amount to replace earnings from the termination period. |
Adjustment Method - Hire |
Returns the earnings amount to replace earnings from the hire period. |
See Also
To configure consolidated hours:
User Code Option |
Description |
Generation Method for Action Reason and Generation Method for Custom Statement |
Return the earnings amount for the period. This amount is still subject to minimums or maximums. |
User Code Option |
Description |
Adjustment Method - Term |
Returns the hours amount to replace hours from the termination period. |
Adjustment Method - Hire |
Returns the hours amount to replace hours from the hire period. |
See Also
To configure duration options:
User Code Option |
Description |
Date Math Method |
Uses the two date end points and returns a decimal date. If this option is used on the Duration Definition page, the duration utility converts this date to the six other formats. |
User Code Option |
Definition |
Decimal Conversion Method |
Uses a raw duration and returns a decimal value. |
See Also
Using Duration Aliases and Duration Options
To configure date rounding options:
User Code Option |
Description |
Date Type |
Uses the date to which the method is applied (raw or decimal) and returns a rounded value. |
See Also
Using Date Aliases and Date Options
To configure date conversion options:
User Code Option |
Description |
Extract |
Returns a custom value based on a raw date. |
Conversion Method |
Uses the date to which the method is applied (raw or decimal) and returns a converted value. |
See Also
Using Date Aliases and Date Options
To configure actuarial assumptions:
User Code Option |
Description |
Interest Basis |
Returns an interest rate. |
See Also
To configure interest methods:
User Code Option |
Description |
Interest Rate Method |
Returns an interest rate. |
User Code Option |
Description |
Full Period Technique |
Returns an interest credit for all full periods to which the rule is applied. |
Partial Period Technique |
Returns an interest credit for all partial periods to which the rule is applied. |
See Also
To configure 401(a)(17) parameters:
User Code Option |
Description |
Earnings are Limited on and Carry Back Limits |
Returns a limited earnings amount for each period to which the rule is applied. |
See Also
Applying Section 401(a)(17) Earnings Limits