COMMUTATION

Commutation functions are a system of tabulated functions that allow most of the expected present values (EPVs) in everyday use to be calculated with a minimal number of arithmetical operations. The commutation functions supported through the MathVariable type “COMMUTATION” are listed below. The following is assumed for these calculations:

  • v is defined as 1/(1+i), where i is a deterministic and constant rate of interest per annum effective
  • lx at integer age x represents the expected number of survivors at age x out of a large cohort of lives alive at some starting age.

Equation 1

COMMUTATION Elements and Attributes
TYPE=COMMUTATION
Element Attributes Element/Attribute Value and Description Definition

<MathVariable>

 

Dx12/Dx/Cx12/Cx/Mx12/Mx/Nx12/Nx

Required element:

The value of this element specifies the array should be indexed.

Dx12: Monthly Dx values

Dx: Yearly Dx values

Cx12: Yearly Cx values

Cx: Monthly Mx values

Mx12: Monthly Mx values

Mx: Yearly Mx values

Nx12: Monthly Nx values

Nx: Yearly Nx values

  VARIABLENAME A literal string that is the name of the MathVariable.

Required attribute:

This attribute defines the name of the MathVariable.

TYPE

COMMUTATION

Required attribute:  

This attribute identifies type of the MathVariable. The Commutation MathVariable returns a single value from a specified commutation array. It's also used to recalculate all of the commutation functions, using the input fields indicated below.

Note: This MathVariable relies on the INDEX attribute to return a value from a commutation array.

INDEX An integer

Required attribute:

This attribute specifies which single index value in the array should be returned.

Note: Array indices start with 1, rather than 0.

RECALC

Yes/No

Required attribute:  

Yes: The Commutation functions will be recalculated. This should be done any time there is a change to an input that should result in new commutation function values.

No: The Commutation functions will not be recalculated. This value should be used if the MathVariable is only indexing currently calculated commutation function arrays.

AGE An integer

Required attribute:

The value of this attribute should be the starting age for the commutation calculations.

An INTEGER MathVariable may also be used to provide the value for this attribute, provided that it resolves to the desired value.

DEATHBENEFIT

01/02 or MathVariable

Required attribute:

01: The level death benefit option will be assumed.

02: The increasing death benefit option will be assumed.

A TEXT MathVariable may also be used to provide the value for this attribute, provided that it resolves to either "01" or "02."

INTERESTRATE A decimal value or MathVariable

Required attribute:

This attribute defines the interest rate. Its value should be 1 plus the monthly factor (i.e. 1.xxxx), regardless of the MODE used.

This value can be either a literal value or an DECIMAL MathVariable that resolves to the desired value.

MATURITY An integer or MathVariable

Required attribute:

This attribute defines the ending age to be in the commutation function calculations. The ending age should be greater than the value of the AGE attribute, and must math the ending point of the SourceArray (the age at the end point of the array plus one year).

This value can be either an integer or an INTEGER MathVariable that resolves to the desired value.

Note: While the system will not error if the source array doesn't match the length of MATURITY minus AGE, it may produce unexpected results.

SOURCEARRAY A NUMERICARRAY MathVariable

Required attribute:

This attribute contains an array of Q values that are to be used to calculate the commutation functions.

Note: While the system will not error if the source array doesn't match the length of MATURITY minus AGE, it may produce unexpected results.

MODE MONTHLY/ANNUAL or MathVariable

This attribute specifies whether the commutation functions are to produce annual or monthly Q values in an annual array. The SOURCEARRAY of these Q values should match either the monthly or the annual values.

MONTHLY: The commutation functions should produce monthly values. This is the default behavior.

ANNUAL: The commutation functions should produce annual values. If ANNUAL is used, only annual commutation functions will be available.

A TEXT MathVariable may also be used to provide the value for this attribute, provided it resolves to "MONTHLY" or "ANNUAL."

Note: If a monthly value is used with the ANNUAL mode, the system will return "0."

PAYCLAIMS BEGIN/END/IPOC or MathVariable

Required attribute:

This attribute defines whether it is assumed that the claim will be paid at the beginning of the month, the end of the month or at any time during the month.

BEGIN: It is assumed that the claim will be paid at the beginning of the month.

END: It is assumed that the claim will be paid at the end of the month. This is the default behavior.

IPOC: It is assumed that the claim will be made at any point during the month.

A TEXT MathVariable may also be used to provide the value for this attribute, provided it resolves to "BEGIN," "END" or "IPOC."

DATATYPE DECIMAL Required attribute:

This attribute is used to define the datatype of the MathVariable. For the COMMUTATION MathVariable, it must be set to "DECIMAL."

ROUND An Integer The number of places to which the MathVariable's resulting value should be rounded.

XML Example

<Transaction>
<EffectiveDate STATUS="Disabled" TYPE="SYSTEM"/>
<Math>
<MathVariables>
<MathVariable VARIABLENAME="pQXG" TYPE="NUMERICARRAY" OPERATION="FILLBY-LIST" DATATYPE="DECIMAL">.000007,.000005,.0000085,.0000076,.00000123,.0000056,.00000876,.000009,.00000874,.0000088,.0000055,.0000034</MathVariable>
<MathVariable VARIABLENAME="pIssueAge" TYPE="VALUE" DATATYPE="INTEGER">0</MathVariable>
<MathVariable VARIABLENAME="MonthlyInterestRate" TYPE="EXPRESSION" DATATYPE="DECIMAL">(1+.04)^(1.0/12.0)</MathVariable>
<MathVariable VARIABLENAME="Maturity" TYPE="VALUE" DATATYPE="INTEGER">11</MathVariable>
<MathVariable VARIABLENAME="MxMonOne" TYPE="COMMUTATION" RECALC="Yes" INDEX="1" AGE="pIssueAge" DEATHBENEFIT="01" INTERESTRATE="MonthlyInterestRate" MATURITY="Maturity" SOURCEARRAY="pQXG" MODE="MONTHLY" PAYCLAIMS="BEGIN" DATATYPE="DECIMAL" ROUND="8">Mx12</MathVariable>
</MathVariables>
</Math>
</Transaction>