DC Formula Operators
A formula expression in a DC Contribution Definition defines the amount of the expected employer match or non-elective contribution. An expression is useful when the contribution formula is more complex than the Simple Parameters allow for. The expression can reference database fields as well as the following operators. Examples of common uses are given below the listing.
DC Regulatory Operators
These return the regulatory limit or amount as of the first day of the plan year that is specified in the DC Allocation.
#MAXSAL 401(a)(17) Maximum Compensation as of first day of plan year
#DEFLIM 402(g) Deferral Limit as of first day of plan year
#CATCHUPLIM 414(v) Catch-up Limit as of first day of plan year, or zero if not eligible for catch-up
#CONTLIM 415(c) Defined Contribution Limit as of first day of plan year
#SSWB U.S. Social Security Wage Base as of first day of plan year
Other DC Operators
#PYBEG Plan year start date
#PYEND Plan year end date
#FIRSTDAY First day, as specified in Contribution Definition
#LASTDAY Last day, as specified in Contribution Definition
#OTHERDATE Other date, as specified in Contribution Definition
#SALARY Total compensation, limited to 401(a)(17) Maximum Compensation, if applicable
#DEFERRALS Employee deferrals applicable to this match, limited to 402(g) Deferral Limit, if applicable
General Operators also available in a DC formula
Arithmetic Operators | +, -, *, /, #MIN, #MAX, etc. |
Date Operators | #YEARDIF, #DATEPLUS, etc. |
Relational Operators | =, <, <=, >=, >, etc. |
Logical Operators | =, <, <=, >=, >, etc. |
If Then Else Operators | #AND, #OR, #NOT |
Miscellaneous Operators | :=, &, etc. |
Examples These formulas could be coded using Simple Parameters, and are shown here for comparison.
Basic safe harbor match (100% of deferrals for the first 3% of eligible compensation plus 50% of deferrals for the next 2% of eligible compensation).
[#DEFERRALS #MIN (#SALARY * 0.03)] + ;100% of limited deferrals up to 3% pay
({[#DEFERRALS #ZMINUS (#SALARY * 0.03)] #MIN (#SALARY * 0.02)} * 0.5) ;50% of next 3%
[#DEFERRALS #MIN (#SALARY * 0.01)] + ;100% of limited deferrals up to 1% pay
({[#DEFERRALS #ZMINUS (#SALARY * 0.01)] #MIN (#SALARY * 0.05)} * 0.5) ;50% of next 5%
AgeEOY:=#FLOOR (#PYEND #YEARDIF DOB) & ;Attained age in whole years
#IF AgeEOY < 40 #THEN
[0.02 * (#SALARY #MIN #SSWB)] + [0.03 * (#SALARY #ZMINUS #SSWB)]
#ELSEIF AgeEOY <50 #THEN
[0.04 * (#SALARY #MIN #SSWB)] + [0.06 * (#SALARY #ZMINUS #SSWB)]
#ELSE
[0.05 * (#SALARY #MIN #SSWB)] + [0.07 * (#SALARY #ZMINUS #SSWB)]
#ENDIF