Oracle® Rules Palette Release 9.1.0.0.0 E15811-01

# InterestRateCalculation

## Description

The business rule defines the type and details for the calculation of interest performed over fixed funds. Interest rate calculation methodologies can be assigned to fixed funds using this rule. In most cases, this rule is overridden on a specific fund.

Specific values from the database can be retrieved without writing SQL statements, by using the available defined prefixes and fields for configuration. Please see the Available Prefixes and Fields for Configuration for a listing.

## InterestRateCalculation Element\Attribute Table

Element | Definition | Attribute | Values
<InterestRateCalculation> | Opening and closing tag for the rule. |  |
<InterestType> | Required; Indicates the formula that will be used to calculate interest for the fund |  | Compound: Existing calculation type. Simple: Simple interest will be compounded annually based on the anniversary of a date value specified by SIMPLEINTERESTDATE.
simpleinterestdate | Required when the fund is a simple interest fixed fund type. The value must resolve to a valid date. Literal date value, Plan field, Policy field or Valuation data using the syntax Plan:some date field, Policy:some date field, Valuation:Deposit:some date field, Valuation:Fund:some date field.
<LeapYearMethod> | Required; Opening tag to define a node that describes leap year affect on interest calculations. |  |
<Method> | Required. Opening tag to define the leap calculation method employed by this fund. | Year | Required. Opening tag to define the calculation method of the numerator and denominator. Calendar: indicates that leap year is determined based on the calendar year. ReferenceDate: indicates that leap year is determined based on the number of days between anniversaries of a referenced date field value. 365: the actual value to use in the denominator. 360: the actual value to use in the denominator.
<MethodReferenceDate> | Required; When YEAR is ReferenceDate. The value must resolve to a valid date. The number of days between anniversaries becomes the value of the denominator. |  | Literal date value, Plan field, Policy field or Valuation data using the syntax Plan:some date field, Policy:some date field, Valuation:Deposit:some date field, Valuation:Fund:some date field.
<Method365IncludeLeapDayInNumerator> | Required; W hen YEAR is 365. This determines if February 29th is skipped while calculating the number of days for the numerator. |  | No: skip February 29th. Yes: include February 29th.
<InterestPeriod> | Required; This determines the boundary dates where the numerator and denominator change. Needed with leap year and/or interest rate changes. |  | Begin: the interest to be calculated includes interest for the beginning date of the date range (last valuation date) and excludes the ending date. End: the interest to be calculated includes interest for the ending date of the date range (current valuation date) and excludes the beginning date.
<ValueAsOfPreviousDate> | Optional; Indicates a one day adjustment to both ends of the date range. This provides the ability to value the fixed fund up to but not including the valuation date. The default value is No. |  | Yes: the start and end dates of the date range will be adjusted one day prior to the valuation date. No: valuation dates will be kept as is without adjustment.
<GuaranteedInterestRate> | Optional; Opening tag defining a node that describes the look-up of the guaranteed interest rate. Ultimately, the rate used to calculate interest must be the greater of the result from this node and the result from the CurrentInterestRate node. When this node is not present, consider the result to be 0. |  |
<RateType> | Required; Opening tag for the node that defines the rate or its retrieval. |  |
Type | Required. Describes whether the rate is provided in the rule (Static) or from a retrieval of AsRate/AsRateGroup (Lookup). Static: rate is provided in <StaticRate>. Lookup: rate will be retrieved from AsRate using information provided within <RateLookup>.
<StaticRate> | Required; When TYPE is Static. Defines a static rate in the rule that never changes. Value must resolve to a decimal data type. |  | The interest rate as a percentage or decimal equivalent.
<RateAsPercent> | Optional; Default value is No. Indicates that the rate is a percentage. |  | Yes: rate is expressed as a percent and will be divided by 100 before being used in the interest calculations. No: rate, as expressed, is used in the interest calculations (default).
<RateLookup> | Required; Must be in each interest rate node where RateType is Lookup. This is the opening tag defining how to look-up the interest rate and the behavior for changing an interest rate. |  |
<Math> | Optional; Opening tag for a Math node with scope limited to this interest rate node. |  |
<MathVariables> | Required; Opening tag for the variables within the Math node. |  |
<MathVariable> | Required; Defines the variables that will support tag values needed in subsequent tags in this interest rate node. |  |
<RateDescription> | Required; Provides the rate description of the rate(s) to look up. The same rate description that is in AsRate and AsRateGroup. |  | Literal value, Plan field, Policy field, Math variable or Valuation data using the syntax Plan:some data field, Policy:some data field, Math:some variable, Valuation:Deposit:xxxx, Valuation:Fund:xxxx.
<EffectiveDate> | Required; A date mapped to AsRateGroup’s EffectiveDate. It is used to filter rates based on an approval date. Value must resolve to a valid date. |  | Literal value, Plan field, Policy field Math Variable or Valuation data using the syntax Plan:some date field, Policy:some date field, Math:some date variable, Valuation:Deposit:some date field, Valuation:Fund:some date field.
<Criteria> | Optional; Opening tag that holds the rate criteria that may be used to look-up a rate. |  |
<RateCriteria> | Optional; Provides a value to a criteria column that will be used to retrieve the correct rate(s). This may be repeated up to 11 times (one for each criteria column and one for the IntegerCriteria column) as needed depending on the structure of the set of rates being retrieved. Correct data types will be enforced. |  | Literal value, Plan field, Policy field, Valuation data or Math variable using the syntax Plan:some field, Policy:some field, Valuation:Deposit:data, Valuation:Fund:data, Math:some variable.
Name | Required. The name for the column as provided by AsRateGroup.
Default | Optional. Provides a secondary value from which the criteria column may be compared to if the use of the primary value has returned no value(s) from the database. Correct data types will be enforced. Literal value, Plan field, Policy field, Valuation data or Math variable using the syntax Plan:some field, Policy:some field, Valuation:Deposit:data, Valuation:Fund:data, Math:some variable.
Operation | Optional. Default value is EQ. Provides a comparison operator between the database value and the value referenced by the parent tag’s value. LT: Less than GT: Greater than EQ: Equal to LTEQ: Less than equal to GTEQ: Greater than equal to
<DateCriteria> | Optional; Provides a value to the DateCriteria column that will be used to retrieve the correct rate(s). The field or math variable must resolve to a valid date. |  | Literal date value, Plan field, Policy field, Valuation data or Math variable using the syntax Plan:some date field, Policy:some date field, Valuation:Deposit:date, Valuation:Fund:date, Math:some date variable.
Default | Optional. Provides a secondary value that the criteria column may be compared to if the use of the primary value has returned no value(s) from the database. Correct data types will be enforced. Literal date value, Plan field, Policy field, Valuation data or Math variable using the syntax Plan:some date field, Policy:some date field, Valuation:Deposit:date, Valuation:Fund:date, Math:some date variable.
Operation | Optional. Default value is EQ. Provides a comparison operator between the database value and the value referenced by the parent tag’s value. LT: Less than GT: Greater than EQ: Equal to LTEQ: Less than equal to GTEQ: Greater than equal to
<RateChange> | Required; Opening tag for the rate change node. Defines the behavior of the rate changes that should occur. |  | Child nodes in this section are required only when TYPE = ReferenceDate.
Type | Required. Defines how the system treats interest rate changes that occur inclusively between the last valuation and current valuation date. Never: interest rate changes should not be recognized by the system. ReferenceDate: provides a date from which to calculate anniversaries/monthaversaries. Immediate: interest rate changes on the date it is effective (DateCriteria).
<ReferenceDate> | Required; Must use when the value of TYPE is ReferenceDate. The value must resolve to a valid date. The value provides a date to calculate durations (if needed) and anniversaries/monthaversaries for shadow removals (if needed). |  | Literal date value, Plan field, Policy field, Valuation data or Math variable using the syntax Plan:some date field, Policy:some date field, Valuation:Deposit:date, Valuation:Fund:date, Math:some date variable.
<EffectivePeriod> | Required; Must use when TYPE is ReferenceDate. Value is the number of years or months a particular interest rate is applicable. This maintains a rate for a specific period of time no matter how many rate changes may exist between the last valuation date and the current valuation date. |  | Any number of years or months is valid. 0 means that the rate may change at any time negating the value of a reference date.
Interval | Required when TYPE is ReferenceDate. Defines how EffectivePeriod is expressed. Years: value of <EffectivePeriod> is expressed as years. Months: value of <EffectivePeriod> is expressed as months.
<LookUpChangeRateBy> | Required; Must use when TYPE is ReferenceDate. Defines how to look up a changed rate after determining that the date range is eligible for rate changes. |  | LastRateAtDuration: use a duration calculated as the full number of years or months (see INTERVAL) between <ReferenceDate> and the start date of the time period in which interest is being calculated. Map to the IntegerCriteria column. LastEffectiveRate: retrieve the last rate that was declared on or prior to an anniversary/monthaversary (see INTERVAL) that is based on <ReferenceDate>. Map to DateCriteria column.
<CurrentInterestRate> | Opening tag defining a node that describes the look-up of the current interest rate. It is an optional section if <GuaranteedInterestRate> is present. Otherwise, it is required. Ultimately, the rate used to calculate interest must be the greater of the result from this node and the result from the GuaranteedInterestRate node. When this node is not present, consider the result to be 0. |  |
<RateType> | Required; Opening tag for the node that defines the rate or its retrieval. |  |
Type | Required. Describes whether the rate is provided in the rule (Static) or from a retrieval of AsRate/AsRateGroup (Lookup). Static: rate is provided in <StaticRate>. Lookup: rate will be retrieved from AsRate using information provided within <RateLookup>.
<StaticRate> | Required; Must use when TYPE is Static. Defines a static rate in the rule that never changes. Value must resolve to a decimal data type. |  | The interest rate as a percentage or decimal equivalent.
<RateAsPercent> | Optional; Default value is No. Indicates that the rate is a percentage. |  | Yes: rate is expressed as a percent and will be divided by 100 before being used in the interest calculations. No: rate, as expressed, is used in the interest calculations (default).
<RateLookup> | Required; Must use in each interest rate node where RateType is Lookup. This is the opening tag defining how to look-up the interest rate and the behavior for changing an interest rate. |  |
<Math> | Optional; Opening tag for a Math node with scope limited to this interest rate node. |  |
<MathVariables> | Required; Opening tag for the variables within the Math node. |  |
<MathVariable> | Required; Defines the variables that will support tag values needed in subsequent tags in this interest rate node. |  |
<RateDescription> | Required; Provides the rate description of the rate(s) to look up. The same rate description that is in AsRate and AsRateGroup. |  | Literal value, Plan field, Policy field, Math variable or Valuation data using the syntax Plan:some data field, Policy:some data field, Math:some variable, Valuation:Deposit:xxxx, Valuation:Fund:xxxx.
<EffectiveDate> | Required; A date mapped to AsRateGroup’s EffectiveDate. It is used to filter rates based on an approval date. Value must resolve to a valid date. |  | Literal value, Plan field, Policy field Math Variable or Valuation data using the syntax Plan:some date field, Policy:some date field, Math:some date variable, Valuation:Deposit:some date field, Valuation:Fund:some date field.
<Criteria> | Optional; Opening tag that holds the rate criteria that may be used to look-up a rate. |  |
<RateCriteria> | Optional; Provides a value to a criteria column that will be used to retrieve the correct rate(s). This may be repeated up to 11 times (one for each criteria column and one for the IntegerCriteria column) as needed depending in the structure of the set of rates being retrieved. Correct data types will be enforced. |  | Literal value, Plan field, Policy field, Valuation data or Math variable using the syntax Plan:some field, Policy:some field, Valuation:Deposit:data, Valuation:Fund:data, Math:some variable.
Name | Required; The name for the column as provided by AsRateGroup.
Default | Optional. Provides a secondary value that the criteria column may be compared to if the use of the primary value has returned no value(s) from the database. Correct data types will be enforced. Literal value, Plan field, Policy field, Valuation data or Math variable using the syntax Plan:some field, Policy:some field, Valuation:Deposit:data, Valuation:Fund:data, Math:some variable.
Operation | Optional. Default value is EQ. Provides a comparison operator between the database value and the value referenced by the parent tag’s value. LT: Less than GT: Greater than EQ: Equal to LTEQ: Less than equal to GTEQ: Greater than equal to
<DateCriteria> |  |  | Optional. Provides a value to the DateCriteria column that will be used to retrieve the correct rate(s). The field or math variable must resolve to a valid date. Literal date value, Plan field, Policy field, Valuation data or Math variable using the syntax Plan:some date field, Policy:some date field, Valuation:Deposit:date, Valuation:Fund:date, Math:some date variable.
Default | Optional. Provides a secondary value that the criteria column may be compared to if the use of the primary value has returned no value(s) from the database. Correct data types will be enforced. Literal date value, Plan field, Policy field, Valuation data or Math variable using the syntax Plan:some date field, Policy:some date field, Valuation:Deposit:date, Valuation:Fund:date, Math:some date variable.
Operation | Optional. Default value is EQ. Provides a comparison operator between the database value and the value referenced by the parent tag’s value. LT: Less than GT: Greater than EQ: Equal to LTEQ: Less than equal to GTEQ: Greater than equal to
<RateChange> | Required; Opening tag for the rate change node. Defines the behavior of the rate changes that should occur. |  | Child nodes in this section are required only when TYPE = ReferenceDate.
Type | Required. Defines how the system treats interest rate changes that occur inclusively between the last valuation and current valuation date. Never: interest rate changes should not be recognized by the system. ReferenceDate: provides a date from which to calculate anniversaries/monthaversaries. Immediate: interest rate changes on the date it is effective (DateCriteria).
<ReferenceDate> | Required; Must use when the value of TYPE is ReferenceDate. The value must resolve to a valid date. The value provides a date from which to calculate durations (if needed) and anniversaries/monthaversaries for shadow removals (if needed). |  | Literal date value, Plan field, Policy field, Valuation data or Math variable using the syntax Plan:some date field, Policy:some date field, Valuation:Deposit:date, Valuation:Fund:date, Math:some date variable.
<EffectivePeriod> | Required; Must use when TYPE is ReferenceDate. Value is the number of years or months a particular interest rate is applicable. This maintains a rate for a specific period of time no matter how many rate changes may exist between the last valuation date and the current valuation date. |  | Any number of years or months is valid. 0 means that the rate may change at any time negating the value of a reference date.
Interval | Required when TYPE is ReferenceDate. Defines how EffectivePeriod is expressed. Years: value of <EffectivePeriod> is expressed as years. Months: value of <EffectivePeriod> is expressed as months.
<LookUpChangeRateBy> | Required; Must use when TYPE is ReferenceDate. Defines how to look up a changed rate after determining that the date range is eligible for rate changes. |  | LastRateAtDuration: use a duration calculated as the full number of years or months (see INTERVAL) between <ReferenceDate> and the start date of the time period in which interest is being calculated. Map to the IntegerCriteria column. LastEffectiveRate: retrieve the last rate that was declared on or prior to an anniversary/monthaversary (see INTERVAL) that is based on <ReferenceDate>. Map to DateCriteria column.
<AdditiveInterestRates> | Optional; Opening tag defining one or more additive rates. Each additive rate is added to the final rate used to calculate interest. |  |
<AdditiveInterestRate> | Required; Opening tag defining a node that describes calculation of one additive interest rate. The result from this node will be added to the <GuaranteedInterestRate> result, to the <CurrentInterestRate> result or to the result of the greater of <GuaranteedInterestRate> and <CurrentInterestRate>. |  |
CODE | Required. Uniquely identifies this node with a code value that provides a business name for the interest rate that is being calculated. Any valid code value from AsCodeAdditiveRateCode.
<RateType> | Required; Opening tag for the node that defines the rate or its retrieval. |  |
Type | Required. Describes whether the rate is provided in the rule (Static) or from a retrieval of AsRate/AsRateGroup (Lookup). Static – rate is provided in <StaticRate>. Lookup: rate will be retrieved from AsRate using information provided within <RateLookup>.
<StaticRate> | Required; Must use when TYPE is Static. Defines a static rate in the rule that never changes. Value must resolve to a decimal data type. |  | The interest rate as a percentage or decimal equivalent.
<RateAsPercent> | Optional; Default value is No. Indicates that the rate is a percentage. |  | Yes: rate is expressed as a percent and will be divided by 100 before being used in the interest calculations. No: rate, as expressed, is used in the interest calculations (default).
<RateLookup> | Required; Must use in each interest rate node where RateType is Lookup. This is the opening tag defining how to look-up the interest rate and the behavior for changing an interest rate. |  |
<Math> | Optional; Opening tag for a Math node with scope limited to this interest rate node. |  |
<MathVariables> | Required; Opening tag for the variables within the Math node. |  |
<MathVariable> | Required; Defines the variables that will support tag values needed in subsequent tags in this interest rate node. |  |
<RateDescription> | Required; Provides the rate description of the rate(s) to look up. The same rate description that is in AsRate and AsRateGroup. |  | Literal value, Plan field, Policy field, Math variable or Valuation data using the syntax Plan:some data field, Policy:some data field, Math:some variable, Valuation:Deposit:xxxx, Valuation:Fund:xxxx.
<EffectiveDate> | Required; A date mapped to AsRateGroup’s EffectiveDate. It is used to filter rates based on an approval date. Value must resolve to a valid date. |  | Literal value, Plan field, Policy field Math Variable or Valuation data using the syntax Plan:some date field, Policy:some date field, Math:some date variable, Valuation:Deposit:some date field, Valuation:Fund:some date field.
<Criteria> | Optional; Opening tag that holds the rate criteria that may be used to look-up a rate. |  |
<RateCriteria> | Optional; Provides a value to a criteria column that will be used to retrieve the correct rate(s). This may be repeated up to 11 times (one for each criteria column and one for the IntegerCriteria column) as needed depending in the structure of the set of rates being retrieved. Correct data types will be enforced. |  | Literal value, Plan field, Policy field, Valuation data or Math variable using the syntax Plan:some field, Policy:some field, Valuation:Deposit:data, Valuation:Fund:data, Math:some variable.
Name | Required. The name for the column as provided by AsRateGroup.
Default | Optional. Provides a secondary value from which the criteria column may be compared to if the use of the primary value has returned no value(s) from the database. Correct data types will be enforced. Literal value, Plan field, Policy field, Valuation data or Math variable using the syntax Plan:some field, Policy:some field, Valuation:Deposit:data, Valuation:Fund:data, Math:some variable.
Operation | Optional. Default value is EQ. Provides a comparison operator between the database value and the value referenced by the parent tag’s value. LT: Less than GT: Greater than EQ: Equal to LTEQ: Less than equal to GTEQ: Greater than equal to
<DateCriteria> | Optional. Provides a value to the DateCriteria column that will be used to retrieve the correct rate(s). The field or math variable must resolve to a valid date. |  | Literal date value, Plan field, Policy field, Valuation data or Math variable using the syntax Plan:some date field, Policy:some date field, Valuation:Deposit:date, Valuation:Fund:date, Math:some date variable.
Default | Optional. Provides a secondary value from which the criteria column may be compared to if the use of the primary value has returned no value(s) from the database. Correct data types will be enforced. Literal date value, Plan field, Policy field, Valuation data or Math variable using the syntax Plan:some date field, Policy:some date field, Valuation:Deposit:date, Valuation:Fund:date, Math:some date variable.
Operation | Optional. Default value is EQ. Provides a comparison operator between the database value and the value referenced by the parent tag’s value. LT: Less than GT: Greater than EQ: Equal to LTEQ: Less than equal to GTEQ: Greater than equal to
<RateChange> | Required; Opening tag for the rate change node. Defines the behavior of the rate changes that should occur. |  | Child nodes in this section are required only when TYPE = ReferenceDate.
Type | Required. Defines how the system treats interest rate changes that occur inclusively between the last valuation and current valuation date. Never: interest rate changes should not be recognized by the system. ReferenceDate: provides a date from which to calculate anniversaries/monthaversaries. Immediate: interest rate changes on the date it is effective (DateCriteria).
<ReferenceDate> | Required when the value of TYPE is ReferenceDate. The value must resolve to a valid date. The value provides a date from which to calculate durations (if needed) and anniversaries/monthaversaries for shadow removals (if needed). |  | Literal date value, Plan field, Policy field, Valuation data or Math variable using the syntax Plan:some date field, Policy:some date field, Valuation:Deposit:date, Valuation:Fund:date, Math:some date variable.
<EffectivePeriod> | Required when TYPE is ReferenceDate. Value is the number of years or months a particular interest rate is applicable. This maintains a rate for a specific period of time no matter how many rate changes may exist between the last valuation date and the current valuation date. |  | Any number of years or months is valid. 0 means that the rate may change at any time negating the value of a reference date.
Interval | Years: value of <EffectivePeriod> is expressed as years. Months: value of <EffectivePeriod> is expressed as months.

## XML Example

<InterestRateCalculation>

<InterestType>Compound</InterestType>

<LeapYearMethod>

<Method YEAR="Calendar"></Method>

</LeapYearMethod>

<InterestPeriod>Begin</InterestPeriod>

<ValueAsOfPreviousDate>No</ValueAsOfPreviousDate>

<GuaranteedInterestRate>

<RateType TYPE="Static">

<StaticRate>.03</StaticRate>

<RateAsPercent>No</RateAsPercent>

</RateType>

</GuaranteedInterestRate>

<CurrentInterestRate>

<RateType TYPE="Static">

<StaticRate>.05</StaticRate>

<RateAsPercent>No</RateAsPercent>

</RateType>

</CurrentInterestRate>

</InterestRateCalculation>