Home > FAQ > Salary Definitions > Projecting flat bonuses and increasing salaries

Projecting flat bonuses and increasing salaries

Question: When running an estimated benefit calculation, the plan sponsor wants to increase wages at 2.5% per year. In the computation, the wages are allowed to increase, but annual bonuses, which are part of pensionable earning, must be projected at the last known amount. Wages are paid monthly at the end of the month. Bonuses are paid once a year at the end of January. How can this be done? There are separate historical fields for wages and bonus. 

Answer:

Set-up two start & stop array fields: Salary and Bonus.

Make a Salary Definition Set and Salary Definition: Pay. Include both fields in the Salary History

In the Transform salary topic, the For all periods, Transformation expression might look like:


LastBonus := #getvalue Bonus &

; get the last non-zero bonus
Last_dt := 2 #effdate wages &

; get the most recent stop date

YearlySum := 1 #mpsum wages &

; sum wages by calendar year
Jan_1 := (-12) #MONTHROUND Last_dt   &

; get Jan 1st of year of Last_dt
LastYear_12_31 := Jan_1 #dateminus 1d &

; get Dec 31st of previous year
Value:=
YearlySum * (#date = LastYear_12_31) &

; segregate the value on Dec 31st
; of last year. All other values
; will be zero.

LastYearWages:= 0 #mpsum Value &

; Make Value the last amount
; of array
years_after:= (#Year #date) #zminus
              (#year Last_dt)    &

; get the number of years between
; Last_dt and #date
Future_EOM:= (#date = (#endmonth #date) *
             (#date > (#endmonth Last_dt)) &
; result=1 if date is in the future
; and end of month result=0 if not

EOM_Jan31:= (#month Future_EOM) = 1 &
; result=1 if January 31st in
; future result=0 if not

Monthly_wages:= LastYearWages/12 *
                [(1.025) ** years_after] *
                Future_EOM                 &
; result=monthly wages if future
; date is end of month
; result=0 if not

Annual_Bonus:= EOM_Jan31 * LastBonus 

 
; annual bonuses are paid
; on Jan 31st of each year
Monthly_after:= Monthly_wages + LastBonus  & ; monthly amounts of wages and
; bonuses after Last_dt

[(#date <= (#endmonth Last_dt)) * #this] +
  Monthly After
 
; actual wages and Bonuses before
; the end of month of Last_dt and
; projected wages and bonuses after



Back to Salary Definitions