# Product Inheritance

# Overview

Inheritance allows models to share common definition ancestors. This allows common data elements to be defined in an upstream template LOB, then utilized repeatedly through inheritance into specific LOBs that extend the base template. For example, I might have a Homeowners template that defines 80% of all HO business, but then inherit HO-Common into HO-2, HO-3, and HO-5, each of which introduces new item, rates, and rules.

# Inheritance Status

Each entity within a Product will have one of three inheritance statuses:

  1. Original - created in the current product.
  2. Inherited - no modifications have been made to it in the current product. All the entity's data is exactly the same as the parent product. All changes made in the parent product will be present in the current product when the status is inherited.
  3. Overridden - a modification has been made in the current product that makes the entity's data different from the parent product. Changes made in the parent product will not be present in the current product when the status is overridden.

# Revert To Inherited

All entities with an inheritance status of "Overridden" have the ability to re-establish the inheritance connection with the parent product. This means that the data will be updated to be the same as the parent product and once again any changes made to that entity in the parent product will be available in the current product.

In order to re-establish the inheritance connection the user can hover over the inheritance status on the edit page for that entity and select the “Revert to Inherited” button. Once the changes are reverted the inheritance status will be updated to “Inherited”.

# Deleting Entities Within A Product Hierarchy

Entities deleted from products within a hierarchy will also be deleted from all descendant products regardless of the inheritance status of the entity in the descendant product. However, the entity would not be deleted from within any sibling products.

# Reference Names in Inheritance

When working within a product hierarchy the user will only be allowed to modify a reference name in the root product. The user will be prevented from modifying reference names in all descendant products. If the reference name is modified in the root product the updated reference name will persist to all child products regardless of the inheritance status of the entity within that child product.

# Inheritance Entities

The following entities within BriteLines inherit between products.

# Data Fields

Data fields are considered overridden when any of the data field attributes in a child product are modified. Note that the user will not have the ability to modify the reference name in a child product.

The inheritance status for a Data Field is displayed in two places:

  1. On the Data Field summary page.

  2. On the Edit Data Field page.

    Hovering over the inheritance status on the Edit Data Field page will present the user with the opportunity to Revert To Inherited. It will also display for the user which product the Data Field either inherits from or overrides as well as any child products which are overriding it.

Users will be notified when deleting or breaking inheritance on a Data Field that is used as a Rate Table Source that the change will result in one or more rate tables being inconsistent. The warning will include a list of the rate tables that will be affected. The user can then choose to continue with the change or not.

# Shared Calculations

Shared Calculations are considered overridden when the formula is modified in a child product. Note that the user will not have the ability to modify the Calculation reference name in a child product.

Hovering over the inheritance status on the Calculations List page will present the user with the opportunity to Revert To Inherited. It will also display for the user which product the calculation either inherits from or overrides. It will also show which child products have an override for the Calculation.

# Rate Tables

Rate tables are considered overridden when any of the Rate Table's attributes are modified in a child product. Rate Table attributes include the Label, Default, Source(s) and Factor. Note that the user will not have the ability to modify the Rate Table's Reference Name in a child product.

The inheritance status for a Rate Table is displayed in two places:

  1. On the Rate Table List page.

  2. On the Edit Rate Table page.

    Hovering over the inheritance status on the Edit Rate Table page will present the user with the opportunity to Revert To Inherited. It will also display for the user which product the Rate Table either inherits or overrides from as well as any child products that have overridden the rate table.

When reverting a Rate Table to inherited when a Rate Table Source or Data Field Source is overridden the user will receive a “Revert Not Allowed” message. The user will be notified that they need to restore the affected entities before being allowed to restore the Rate Table.

# Items

An Item is considered overridden when the Item definition has been modified. The Item Definition includes the “Label”, “Presence” and “Type”. Note that the user should not have the ability to modify the reference name.

The way in which the UI currently displays the inheritance status on the Item List page is that the Item will show “Overridden” only if the Item definition is overridden. In this case a Variable, Premium, Limit or Deductible may still be inherited. Also, if the item definition is inherited the item will appear as Inherited in the item list, however, any of the variables, Premium, Limits or Deductible, may be overridden.

# Item Calculations

Within an item on the “Coverage calculations” page the user also defines the following entities: Variables, Premium, Limits, and Deductible. These entities behave independently of the Item Definition and each other in inheritance. For example the user can break inheritance on one variable and the other Variables, Premium, Limits and Deductible will remain inherited.

The Item definition inheritance status can be viewed in two places:

  1. On the Item list page.

    The way in which the UI currently displays inheritance on the Item List page is that the Item will show as “Overridden” only if the Item definition is overridden. In this case a Variable, Premium, Limit or Deductible may still be inherited. Also, if the item definition is inherited the item will show inherited in the item list, however any of the Variables, Premium, Limits or Deductible may be overridden.

  2. On the Edit Item page.

    Hovering over the inheritance status on the Edit Item page will present the user with the opportunity to Revert To Inherited. It will also display for the user which product the Item definition either inherits or overrides from as well as any child products that have overridden the Item definition.

Within an Item the user also defines the following entities: Variables, Premium, Limits, and Deductible. These entities behave independently of the Item Definition and each other in inheritance. For example the user can break inheritance on only one variable and the other Variables, Premium, Limits and Deductible will remain inherited.

# Item Variables

Item variables are considered overridden when the formula is modified in a child product. Note that the user will not have the ability to modify the Item Variable reference name in a child product.

Hovering over the inheritance status of the Item Variable within the Edit Item page will present the user with the opportunity to Revert To Inherited. It will also display for the user which product the variable either inherits or overrides from. It will also show which child products are overriding the Variable.

# Premium

Item Premium is considered overridden when the formula is modified in a child product.

Hovering over the inheritance status of the premium within the Edit Item page will present the user with the opportunity to Revert To Inherited. It will also display for the user which product the premium either inherits or overrides from, and the list of child products which are overriding the it.

# Limits

The Limit within an Item consists of a Limit Definition and a value. These 2 pieces also behave independently in inheritance. The Item Limit includes the Label, Reference Name and Type. Again, the user would not be allowed to modify the reference name. For example if I modify the Limit value in a child product any changes to the Limit Definition in the parent will still inherit to the Limit in the child.

The Limit value is considered overridden when the formula is modified in a child product.

Hovering over the inheritance status for the Limit value on the Edit Item page will present the user with the opportunity to Revert To Inherited. It will also display for the user which product the limit value either inherits or overrides from, and the list of child products which are overriding the limit's value.

# Deductible

Item Deductible is considered overridden when the formula is modified in a child product.

Hovering over the inheritance status of the deductible within the Edit Item page will present the user with the opportunity to Revert To Inherited. It will also display for the user which product the deductible either inherits or overrides from, and which child products are overriding it.

On the Item Detail page on the “Coverage related documents tab” users add Coverage Related Documents. Coverage related documents are considered overridden when any of the attributes in a child product are modified. Coverage related document attributes include Related Document Label, Related Document Name, and Description.

The inheritance status for a Coverage Related Document is displayed in two places:

  1. On the Coverage Related Documents list page.

  2. On the Edit Related Document page.

    Hovering over the inheritance status on the Edit Related Document page will present the user with the opportunity to Revert To Inherited. It will also display for the user which product the Related Document either inherits from or overrides as well as any child products that are overriding it.