Specifying charge breakdown categories with lookup classes

Advanced Product Designer provides a user interface to specify charge breakdown categories. When PolicyCenter receives information about a policy line from Advanced Product Designer, it generates a charge breakdown category lookup class to categorize charges for that policy line, if necessary. PolicyCenter uses the ChargeBreakdownCategoryLookupCompositeGenerator in the gw.apd.model.generate.generators package to generate the category codes.

If you use the policy lines in the base configuration of PolicyCenter or write new policy lines from scratch, you can specify charge breakdowns on those policy lines by writing a lookup class for the charge breakdown categories.

The PersonalAutoLineChargeBreakdownCategoryLookup class in the gw.plugin.billing.bc5000 package demonstrates the structure of the lookup class, as shown in the following code.
package gw.plugin.billing.bc5000

uses gw.billing.bc5000.DefaultChargeBreakdownCategoryLookup

@Export
class PersonalAutoLineChargeBreakdownCategoryLookup extends DefaultChargeBreakdownCategoryLookup {
  construct() {
    super({PALiabilityCov, PersonalVehicleCov, PersonalVehicle})
  }
}

The lookup class extends the DefaultChargeBreakdownCategoryLookup class in the gw.billing.bc5000 package and specifies the charge breakdown criteria in the constructor. Charges are broken down by line-level liability coverage, by-vehicle coverage, and vehicle.

To specify charge breakdowns for a different policy line, you create a new class that extends the DefaultChargeBreakdownCategoryLookup class. The name of the class must match the following pattern:
  • The code identifier of the policy line that Advanced Product Designer or Product Designer provides
  • ChargeBreakdownCategoryLookup

For example, the name of the businessowners policy line is BOPLine, so the charge breakdown category lookup class for that line must be BOPLineChargeBreakdownCategoryLookup.

PolicyCenter checks for the existence of a charge breakdown category lookup class when it sends policy period information to the billing system. If the lookup class exists, PolicyCenter uses the categories to break down the charges that it sends. If the lookup class does not exist for the policy line, in most cases, PolicyCenter sends a charge for premium and a charge for tax. In the case that the policy line without a lookup class is part of a product with multiple lines of business that has charge breakdowns on another line, the total of the Transaction.AmountBilled values for the policy line appear as a remainder line item.

To determine the charge breakdown information to send to a billing system, PolicyCenter uses the sendChargeBreakdownCriteria method in the IBillingSystemPlugin implementation. The values of each Transaction.AmountBilled for the policy period are itemized based on the categories. Any charges that do not match a breakdown category are summed and sent as a single remainder value to the billing system for premium or tax cost types.

See also