Product and product line modifiers

Modifiers can exist at the product and product line level, and can also apply to line coverables. They are created as part of product installation and configuration, so there are no endpoints to create or update product-level or line-level modifiers.

Note that product-level modifiers are not copied over when the product is attached to a multi-line product.

For more information, see Modifiers.

Product modifier endpoints

Use the following endpoints to retrieve product and product line modifiers:

  • GET /productdefinition/v1/products/{productId}/modifiers
  • GET /productdefinition/v1/lines/{lineId}/modifiers
  • GET /productdefinition/v1/lines/{lineId}/coverables/{coverableId}/modifiers
Note:

Not all the modifier functionality available through these endpoints is currently supported in Advanced Product Designer (APD). For example, APD does not support creation of modifiers under coverables, or split modifiers. However, products built through other means might have these modifiers, and they can be retrieved with these endpoints. For more information see APD Rate modifiers.

Responses

Endpoint responses include a variety of information about the modifiers, including the modifier type:

"modifierDataType": {
  "code": "boolean",
  "name": "boolean"
},

Modifiers can be of type Boolean, date, rate, or typekey. If the modifier is a typekey, the response will also include the name of the typelist:

"modifierDataType": {
  "code": "typekey",
  "name": "typekey"
},
…
"typeList": "ProfessionalDiscount"

For modifiers of type rate, rate factors are included in the response:

"modifierDataType": {
  "code": "rate",
  "name": "#notnull"
},
…
"rateFactors": [
  {
    "defaultMaximum": "0.05",
    "defaultMinimum": "-0.05",
    "id": "z0hi6ldfeujdpddo0f1hjou9r49",
    "name": "#notnull",
    "priority": 1,
    "rateFactorType": {
      "code": "Building",
      "name": "#notnull"
    }
  },

The type is used to specify a value when the modifier is added to a job. See Line-level and object-level modifiers for more information.

If a modifier is a scheduled modifier, a value of true will be returned in the scheduledRate property:

"scheduleRate": true

See Rate modifiers for more information on scheduled and unscheduled rate modifiers.

Examples

This first example retrieves modifiers that apply to all lines for the CommercialPackage product.

Command

GET /productdefinition/v1/products/CommercialPackage/modifiers

Response

{
  "data": [
    {
      "attributes": {
        "defaultMaximum": "0.25",
        "defaultMinimum": "-0.25",
        "description": "#notnull",
        "descriptionKey": "Product_CommercialPackage.Modifier_CPPIRPM.Description",
        "displayJustification": true,
        "displayRange": true,
        "displayValueFinal": true,
        "id": "CPPIRPM",
        "modifierDataType": {
          "code": "rate",
          "name": "#notnull"
        },
        "name": "#notnull",
        "nameKey": "Product_CommercialPackage.Modifier_CPPIRPM.Name",
        "priority": -1,
        "rateFactors": [
          {
            "defaultMaximum": "0.05",
            "defaultMinimum": "-0.05",
            "id": "z0hi6ldfeujdpddo0f1hjou9r49",
            "name": "#notnull",
            "priority": 1,
            "rateFactorType": {
              "code": "Building",
              "name": "#notnull"
            }
          },
          {
            "defaultMaximum": "0.03",
            "defaultMinimum": "-0.03",
            "id": "zo8h89djdetef2d1nfvvjst1r3a",
            "name": "#notnull",
            "priority": 2,
            "rateFactorType": {
              "code": "Employees",
              "name": "#notnull"
            }
          },
          {
            "defaultMaximum": "0.07",
            "defaultMinimum": "-0.07",
            "id": "zsrha43mufo20ahpqut8gs8mk4a",
            "name": "#notnull",
            "priority": 3,
            "rateFactorType": {
              "code": "Location",
              "name": "#notnull"
            }
          },
          {
            "defaultMaximum": "0.08",
            "defaultMinimum": "-0.08",
            "id": "zuch6p28k1rjbf4n29m29fqbg69",
            "name": "#notnull",
            "priority": 4,
            "rateFactorType": {
              "code": "Management",
              "name": "#notnull"
            }
          },
          {
            "defaultMaximum": "0.05",
            "defaultMinimum": "-0.05",
            "id": "zo0i2mgj33jnberjeomo2fcdd3a",
            "name": "#notnull",
            "priority": 5,
            "rateFactorType": {
              "code": "Premises",
              "name": "#notnull"
            }
          },
          {
            "defaultMaximum": "0.02",
            "defaultMinimum": "-0.02",
            "id": "z91j6pugcp57188kedd1ko0e7d8",
            "name": "#notnull",
            "priority": 6,
            "rateFactorType": {
              "code": "Protection",
              "name": "#notnull"
            }
          }
        ],
        "scheduleRate": true
      }
    },
    …

To retrieve the modifiers that apply to the HOPLine (which is a line under the HOPHomeowners product in the base configuration), use the following command:

Command

GET /productdefinition/v1/lines/HOPLine/modifiers

Response

{
    "data": [
        {
            "attributes": {
                "description": "",
                "descriptionKey": "PolicyLine_HOPLine.Modifier_HOPMultiPolicy.Description",
                "id": "HOPMultiPolicy",
                "modifierDataType": {
                    "code": "boolean",
                    "name": "boolean"
                },
                "name": "Multi Policy",
                "nameKey": "PolicyLine_HOPLine.Modifier_HOPMultiPolicy.Name",
                "priority": 100,
                "referenceDateByType": {
                    "code": "PolicyTerm",
                    "name": "Policy Term"
                }
            }
        },
      …
    ],

You can also retrieve the modifiers for the coverables on a line. The following example retrieves the modifiers for the HOPDwelling coverable on the HOPLine LOB.

Command

GET /productdefinition/v1/lines/HOPLine/coverables/HOPDwelling/modifiers

Response

{
    "data": [
        {
            "attributes": {
                "description": "",
                "descriptionKey": "PolicyLine_HOPLine.Modifier_HOPMannedSecurity.Description",
                "id": "HOPMannedSecurity",
                "modifierDataType": {
                    "code": "boolean",
                    "name": "boolean"
                },
                "name": "Manned Security",
                "nameKey": "PolicyLine_HOPLine.Modifier_HOPMannedSecurity.Name",
                "priority": 200,
                "referenceDateByType": {
                    "code": "PolicyTerm",
                    "name": "Policy Term"
                }
            }
        },
       …