COLA Expression Operators
A COLA expression (e.g., “#COLA * #BEN”) defines the annual amount of increase in the benefit, generally using the operator #BEN to refer to the previous year’s benefit and the operator #COLA to refer to the rate of increase. COLA expressions may also refer to database fields. The following operators are available for writing COLA expressions in Valuation Assumptions (by selecting a rate type of Advanced, as opposed to Compound or Simple):
#COLA | The COLA rate as specified, including COLAs that vary by calendar year or coded database field. |
#BEN | The benefit amount in the prior payment (or deferral) year, including accumulated COLAs to date. |
#DECBEN | The benefit amount at decrement. Note that for inactive participants, this operator requires the input of the benefit at decrement in the Inactive Data topic of Census Specifications. |
#PMTAGE | The rounded age of the member in the year of payment (or deferral) |
#PMTYEAR | The calendar year of payment (or deferral) |
#COMMAGE | The rounded age of the member at commencement (determined by the commencement parameters of the benefit's payment form). |
#COMMYEAR | The calendar year of the commencement date rounded to the nearest valuation anniversary. For example, for a 1/1 valuation, if a benefit commences at 9/1/2020, the date will round to 1/1/2021 and #COMMYEAR will be 2021. |
#DECAGE | The rounded age of the member in the year of decrement |
#DECYEAR | The calendar year of decrement |
#MEMDTHAGE | Age of member at assumed death (available for post-decrement death benefits only). For joint life COLAs, see example 14 below. |
Arithmetic operators | +, -, *, /, #MIN, #MAX, etc. |
Date operators | #YEARDIF, #DATEPLUS, etc. |
Relational Operators | =, <, <=, >=, >, etc. |
Logical Operators | #AND, #OR, #NOT |
If Then Else Operators | #IF, #THEN, #ELSEIF, etc. |
Miscellaneous Operators | :=, &, etc. |
Examples
#COLA * #BEN; the prior year's benefit is multiplied by the COLA rate
#COLA * #DECBEN; the benefit at decrement is multiplied by the COLA rate
#IF #BEN<=(3500*12) #THEN
600*12
#ELSEIF #BEN<=(6300*12) #THEN
400*12
#ELSE
100*12
#ENDIF
(#BEN #MIN 36000) * #COLA
#IF #BEN <= 10000 #THEN
#BEN * #COLA
#ELSEIF #BEN <= 20000 #THEN
#BEN * #COLA * 0.75
#ELSE
#BEN * #COLA * .5
#ENDIF
#BEN * #COLA * COLASVC / (COLASVC + (#DECYEAR #ZMINUS 2018))
#IF #COMMYEAR<=2010 #THEN
#BEN * #COLA
#ELSEIF #COMMYEAR<=2015 #THEN
#BEN * #COLA / 2
#ELSE
#BEN * #COLA / 4
#ENDIF
(#BEN #MIN {25000 * [1.01 ** (#PMTYEAR-2014)]} ) * #COLA
(#BEN * #COLA) #MAX 120
(#BEN * #COLA * 3) * [3 #MOD (#PMTAGE #ZMINUS #COMMAGE)=0]
Annual increase limited to U.S. Internal Revenue Code section 415 maximum benefit. For example, a 3% COLA but the 415 limit increases 2% per year.
(#BEN * #COLA) #MIN ({MaxBft_415 * [1.02**(#PMTYEAR - #COMMYEAR)]}#ZMINUS #BEN),
where MaxBft_415 is the name of the database field containing the 415 limit amount for the year of commencement.
#IF (#MEMDTHAGE - #COMMAGE) < 10 #THEN
#BEN * #COLA ; standard COLA if death within 10 years of commencement
#ELSEIF (#MEMDTHAGE - #COMMAGE) < 20 #THEN
#BEN * #COLA * .5 ; half COLA if death between 10-20 years from commencement
#ELSE
#BEN * #COLA * .25 ; quarter COLA if death after 20 years from commencement
#ENDIF
This is useful if you have a joint and survivor benefit where the COLA is granted only while the member is alive. Break the joint and survivor into two benefits, one that is a single life annuity with COLA and the other benefit, reversionary to spouse/beneficiary without COLA, shown here:
#IF #PMTAGE < #MEMDTHAGE #THEN
#BEN * #COLA ; member COLA only
#ELSE
0 ; 0% spouse COLA
#ENDIF
This is useful if you have a joint and survivor benefit where the COLA is granted only while the member is alive. Break the joint and survivor into two benefits, one that is a single life annuity with COLA and the other benefit, reversionary to spouse/beneficiary without COLA, shown here:
#IF #PMTAGE < #MEMDTHAGE #THEN
#BEN * #COLA ; standard member COLA
#ELSEIF #MEMDTHAGE < 85
#BEN * #COLA/2 ; reduced COLA after member death, if member died before 85
#ELSE
0 ; no spouse COLA after member death, if member died at age 85 or older
#ENDIF
#IF #BEN<=(3500*12) #THEN
(600*12) - [(#PMTAGE = #MEMDTHAGE) * (1-0.75) * (#BEN+(600*12))]
; At member death age, apply the spouse reduction
#ELSEIF #BEN<=(6300*12) #THEN
(400*12) - [(#PMTAGE = #MEMDTHAGE) * (1-0.75) * (#BEN+(400*12))]
; At member death age, apply the spouse reduction
#ELSE
(100*12) - [(#PMTAGE = #MEMDTHAGE) * (1-0.75) * (#BEN+(100*12))]
; At member death age, apply the spouse reduction
#ENDIF
Post-Decrement Death Benefit COLA starts when payments to the spouse begin. For example, the spouse annuity under a Post-Decrement Death Benefit payment form commences at member age 55. Although ProVal will commence the actual payment stream to the spouse at the later of member age 55 and member death age, the payment period COLA would be applied from member age 55 regardless of whether the member dies before or after age 55. If the plan applies the payment period COLA from the later of member age 55 and member death age (that is, the COLA starts when payments start), a COLA expression is required:
#IF #PMTAGE > (#COMMAGE #MAX #MEMDTHAGE) #THEN
#BEN * #COLA ; This example assumes a compound COLA
#ELSE
0 ; This example assumes no deferral period COLA
#ENDIF
Different benefits with different COLAs that intersect after decrement. For example, a plan that pays the maximum of Benefit A with COLA A and Benefit B with COLA B where the benefits may cross after decrement. This can actually be handled without COLA expressions.
Each Benefit Definition, under the Cost-of-Living Adjustments (COLAs) Limits button, contains parameters which either cease COLAs once the adjusted benefit exceeds a benefit formula amount at decrement or apply a minimum benefit until the adjusted benefit passes it. That is, each benefit can have a flat “cap” or “floor” defined by a benefit formula at decrement. In the illustrations below, the solid line indicates the effective benefit after the cap and floor are applied:
Given any constant compound COLA rates (i.e. not variable by calendar year), and benefits A and B, the crossover amount can be found as follows:
To program MAX(Benefit A with COLA A, Benefit B with COLA B), you would sum the following three benefits:
Note that a constant simple COLA would involve a similar solution for t that eliminates the need for logarithms. Note also that because the formulas for A, B, and the crossover amount will all be used multiple times, it may speed processing (and readability) to place each in a Subformula component so that ProVal will evaluate each formula only once. For example, the Subformula component for the crossover amount can look as follows:
B * ((1 + COLA_B) ** ((#LN (B / A)) / (#LN ((1 + COLA_A) / (1 + COLA_B)))))
where A and B are the Benefit Formula Components for Benefits A and B, and COLA_A and COLA_B are constant components holding the COLA rates for Benefits A and B.