Specifying whether to merge a cost as basis scalable
Each cost data subclass indicates whether to merge the CostData object as basis scalable.
To specify how to merge the costs, each
cost data can implement a property getter function for the property MergeAsBasisScalable. In most
cases, this property returns always true
or always false for any
class, but you can add custom logic if necessary to return true or false accordingly.
The rating engine behaves differently
based on the value of the cost data property MergeAsBasisScalable.
- If
false, the rating engine merges this CostData object using the standard method mergeIfCostEqual. - If
true, the rating engine instead merges this CostData object using the method mergeAsBasisScalableIfCostEqual. This method extends this cost data object to cover the period spanned by the other cost. Additionally, it adds together theBasis,ActualTermAmount, andActualAmountproperties if all the following things are true.- The passed-in
CostDatais effective as of the expiration date of this current cost. - The other cost is equal to this current cost as determined by the isBasisScalableCostEqual method.
- The passed-in
The rating engine also uses the value of MergeAsBasisScalable to treat
costs differently when creating CostData
objects based on a set of existing costs and then prorating them.
The root class CostData always returns false. Cost data classes can override
it as needed.
override property get MergeAsBasisScalable() : boolean {
return true
}
An example of when you might use more complex logic
in this property get function is general liability exposure costs. The
built-in cost data subclasses returns true
for costs with class codes that have an auditable basis, and false for any other class codes.
