Multiple Assignments and Absence Setup

Follow these steps for the setup that is required for the correct calculation and reporting of absences if you use multiple assignments, each of which may or may not have the same absence payment factor associated with it.

The formula changes described will ensure that the payment factor specific to each assignment is used to determine the contribution base and tier for each assignment. For example, if the member has 2 assignments, and assignment 1 is still paid at a rate of 50% and assignment 2 has dropped to zero pay, each assignment will be assessed according to its own factor.

Prerequisites

Configure your absence elements as described in the help topic: Define Payroll Elements to Process Absences in the Implementing Payroll for the United Kingdom guide. Statutory absence setup must conform to the configuration described in Setting Up and Migrating UK Statutory Absences (Doc ID 2235239.1).
Note: Only one occupational sickness or family-related absence plan can be effective for an assignment at any given point in time. If multiple occupational plans apply, for example, as a means of offsetting maternity absence payments, it’s not possible to determine which plan to use in the pension calculation; the calculation and MyCSP xx records may therefore be incorrect.

This restriction applies whether the employee has one or multiple assignments. When multiple assignments exist, each assignment can have its own occupational plan, or multiple assignments can share the same occupational plan.

Before making the changes described below, make a copy of your statutory and occupational sickness and familyrelated leave formulas and pension scheme formulas:

  • Entitlement Result formulas (<Absence Element Name> Entitlement Result) for both statutory and occupational family-related and sickness absences
  • MyCSP pension calculator formulas (<MyCSP Scheme Name> Calculator)

Once you’ve backed up your existing formulas, edit the absence entitlement and pension scheme formulas as shown in this document, commenting lines as described, removing any code that is shown here as strikethrough text and inserting the code that’s highlighted in the position shown in the formula. Then recompile your formula.

The formula changes are also listed in a text file attached to this document. (Note that the text file includes both the lines to remove and the lines to insert.)

Statutory and Occupational Absence Entitlement Result Formula Changes

These formula changes are required for your statutory and occupational family-related and absence Entitlement Result formulas.
  1. Search for this text:
    IF IS_EXECUTABLE('ORA_HRX_GB_ABS_PEN') THEN
    And replace with this:
    IF IS_EXECUTABLE('ORA_HRX_GB_ABS_ASG_PEN') THEN 
  2. Search for this text:
    EXECUTE('ORA_HRX_GB_ABS_PEN') 
    And replace with this:
    EXECUTE('ORA_HRX_GB_ABS_ASG_PEN') 

Pension Scheme Calculator Formula

MyCSP pension scheme calculator formula changes are needed to support absences for multiple assignments if your pension scheme elements were created before release 23A. These changes are described below.

The changes are included in the pension scheme element template from 23A onwards, so you don’t need to make those changes manually for pension scheme elements created on release 23A or later.
Note: Your MyCSP pension scheme calculator formula is named <User-defined MyCSP pension scheme element name> Calculator.
  1. Search for this text and comment it out:
    CALL_FORMULA('ORA_HRX_GB_ABS_PEN_DTL', 
                 l_csp_app_day_count < 'l_csp_app_day_count' default 0,     l_csp_non_app_day_count < 'l_csp_non_app_day_count' default 0,     l_csp_unpaid_day_count < 'l_csp_unpaid_day_count' default 0,     l_csp_reg_day_count < 'l_csp_reg_day_count' default 0)
    
  2. Then, add the following lines after the commented out text:
    change_contexts(DIR_CARD_COMP_ID = DEDUCTION_COMPONENT_BY_EE) 
    (z = ALL_ASGS_LINK_TO_DEDUCTION_COMPONENT.first(-1) while ALL_ASGS_LINK_TO_DEDUCTION_COMPONENT.exists(z) loop 
    (   change_contexts(PAYROLL_ASSIGNMENT_ID = ALL_ASGS_LINK_TO_DEDUCTION_COMPONENT[z]) 
      (            CALL_FORMULA('ORA_HRX_GB_CSP_ABS_ASG_PEN_DTL',     l_csp_app_day_count < 'l_csp_app_day_count' default 0,     l_csp_non_app_day_count < 'l_csp_non_app_day_count' default 0,     l_csp_unpaid_day_count < 'l_csp_unpaid_day_count' default 0,     l_csp_reg_day_count < 'l_csp_reg_day_count' default 0) 
      )   z = ALL_ASGS_LINK_TO_DEDUCTION_COMPONENT.next(z, -1) )              
     
    )