How do I project hours at different rates
QUESTION: Annual credited service is computed as hours earned during the year divided by 1900 with a maximum of 1 year. Annual vesting service is 1 if over 1000 hours are worked during the year, 0 otherwise. For computing projected benefits, the plan projects credited service using the last fully reported year of hours, and projects vesting service using last reported hours grossed up to a full year. How can ProAdmin do this?
Suppose date of termination is in the future at 12/31/2015 and historical hours (called Hours_History in ProAdmin) look like:
Start date | Stop Date | Hours | |
⁞ | ⁞ | ⁞ | |
1/1/2006 | 12/31/2006 | 2000 | |
1/1/2007 | 12/31/2007 | 2000 | |
1/1/2008 | 9/30/2008 | 600 | |
The plan uses hours in 2007 to project credited service, and hours in 2008, grossed up to a full year, to project vesting service.
ProAdmin’s Projection Assumptions allow you to either project hours using the last fully reported year or the last reported hours (in the year) grossed-up to a full year.
ANSWER: Parameterize the Projection Assumptions Service Increases for one of the hours projection approaches and define the other one directly in the Service Definition Set with a transformation expression.
For this example, we chose to parameterize the Projection Assumptions to use the last fully reported year, which fulfills the requirement for credited service. The credited service projection will use 2000 hours in the example above.
To address vesting service,
Last_hours:= #GETVALUE Hours_History | & |
; this will retrieve the last value ; in the array (600 hours) |
Last_dt:= #GETVALUE Hours_History_Dates | & |
; this will retrieve the last stop ; date in the array (9/30/2008) |
Last_year:= #YEAR last_dt | & |
; provides the year in Last_dt (2008) |
Beg_of_year:= 1/1/1900 #dateplus | ||
[(Last_Year - 1900)*1y] | & | ; first of year (1/1/2008) |
GrossUP_factor:= (last_dt #yeardif |
; provides portion of year |
|
first_of_year_date | & |
; from 1/1/2008 to 9/30/2008 ; which is approx 0.75 |
#IF #DATE <= Last_dt #THEN | ; if prior to last reported date use |
|
#THIS >= 1000 | ; actual hours from data to compute |
|
#ELSE | ; vesting service else if after the |
|
Last_hours / GrossUP_factor | ; last reported Hours date use the |
|
#ENDIF | ; grossed up amount (600/0.75 - 800) |