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.
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>