August, 2023

The August release of the Risk Modeler API introduces changes that enable the HD modeling of losses at sites utilizing location-specific non-ranking deductibles and policy-level aggregate terms.

Datasources

The Administer EDM resource (POST /[v1][v2]/datasources) supports the creation of new EDMs, the downloading of EDMs, and the upgrading of EDMs.

If DOWNLOAD_EDM option is specified, this resource now supports an optional detachOnly parameter that enables faster exports of databases to the MDF file format. If true, the database is merely taken offline for the duration of the export job and not backed up. If the detachOnly parameter is undefined or set to false, the database is backed up before it is detached.

The detachOnly parameter must be set to true if a database larger than 100GB is exported as an MDF database artifact. If this parameter is not set to true, the API returns a 400 Bad Request response.

This resource now returns a warning whenever the client attempts to download a managed SQL Server instance as a SQL Server 2014-based database artfiact.

🍏

SQL Server 2014 Deprectation

Microsoft has deprecated SQL Server 2014. Consequently, the Intelligent Risk Platform™ will end support for downloading EDMs and RDMs in SQL Server 2014 database artifacts in June, 2024. This warning is delivered as an X-RMS-Warning response header.

Exposure Batch

The Manage exposures in batch resource (POST /[v3]/exposurebatches) enables the client to create, update, or delete exposures in batch. Multiple portfolio, account, location, and policy exposures may be managed in a single request.

This resource now enables the client to define three new parameters aggregateMaxDeductible in policy definitions, nonRankingSiteDeductible in location definitions, andnonRankingDeductibleAmt in location coverage definitions.

Exports

The Export data module to file resource (POST /[v2]/exports) now enables you to preserve the table IDs used in the specified sourceDatasource in newly created destinationDataSource.

This resource supports three different jobs depending on the type attribute specified in the request body. If the ExposureExportInput type is specified, the resource exports exposure data stored in one EDM (the sourceDatasource) to another another EDM (the destinationDatasource. When the destinationDatasource is a new EDM, you can preserve the table IDs by specifying a value of true for the preserveIds parameter.

{
    "type": "ExposureExportInput",
    "exportType": "EDM",
    "sourceDatasource": "test_edm2edm_changes",
    "destinationDatasource": "test_local_pr_edm_export",
    "exposureType": "PORTFOLIO",
    "exposureIds": [
        1
    ],
    "download": false,
    "createnew": true,
    "exportOptions": {
        "exportAccounts": true,
        "exportLocations": true,
        "exportPolicies": true,
        "exportTreaties": true,
        "exportReinsuranceInfo": true,
        "exportPerilDetailsInfo": true
    },
    "exportFormat": "BAK",
    "sqlVersion": "2019",
    "preserveIds": true
}

This resource now returns a warning whenever the client attempts to export and download an RDM as a SQL Server 2014-based database artifact.

🍏

SQL Server 2014 Deprectation

Microsoft has deprecated SQL Server 2014. Consequently, the Intelligent Risk Platform™ will end support for downloading EDMs and RDMs in SQL Server 2014 database artifacts in June, 2024. This warning is delivered as an X-RMS-Warning response header.

Import

The Import exposures from file resource (POST /[v1]/imports) now validates the values specified in the Accept-Language header.

This resource accepts the Accept-Language header that identifies the formatting convention that is assumed for imported dates and numbers. Depending on the option specified (en-US, en-GB, de-DE, fr-FR) dates may be interpreted as DD/MM/YYYY or MM/DD/YYYY, or numbers and decimals may use periods or commas as separators.

curl --request POST \
     --url https://{host}/riskmodeler/v1/imports \
     --header 'Accept: application/json' \
     --header 'Content-Type: application/json' \
     --header 'Accept-Language: en-US' \
     --header 'Authorization: XXXXXXXXXXXX'

If no value is specified, American English (en-US) is assumed, and the imported exposure data is formatting using American conventions.

If an invalid value is specified, the resource returns a 400 Bad Request response:

{
    "code": "IMP-006",
    "message": "You have provided an invalid value for the HTTP header \"Accept-Language\". Check the value and the spelling (it's case-sensitive). Valid values are en-US, de-DE, en-GB, fr-FR, en, de and fr.",
    "logId": "e136fea5ed88b7a4"
}

Locations

The Get location coverage resource (GET /[v1]/locations/{locationId}/coverage/{coverageId}) returns details of the location coverage applied to a specific information.

Location coverage defines the liability of the underwriter for damages to entities (buildings, building contents, businesses) at a specific location due to catastrophe events. Location coverage defines maximum insurer liability, the perils covered, and coverage modifiers.

This resource now returns the nonRankingDeductibleAmt attribute in the response body. The nonRankingDeductibleAmt identifies the amount specified for non-ranking deductible for a location. This deductible is applicable when loses for the location exceed those covered by the aggregateMaxDeductible. Non-ranking, location-level deductibles are interpreted by the HD financial model as residual excess (trailing) amounts. Used by High Definition™ (HD) models only.

{
  "limitExtension": 0,
  "operationType": "INSERT",
  "waitingPeriod": 0,
  "id": 0,
  "label": {
    "id": 0,
    "code": "string",
    "name": "string"
  },
  "eqslModifier": 0,
  "lossType": "Building",
  "percentSprinkler": 0,
  "value": 0,
  "biPoi": 0,
  "deductible": 0,
  "coverageModifier": {
    "id": 0,
    "code": "string",
    "name": "string"
  },
  "accumulation": "Building",
  "limit": 0,
  "peril": {
    "id": 0,
    "code": "string",
    "name": "string"
  },
  "percentageLossDeductibleAmount": 0,
  "isFranchiseDeductible": {
    "id": 0,
    "code": "string",
    "name": "string"
  },
  "isValid": true,
  "nonRankingDeductibleAmt": 0
}

The create location coverage resource (POST /[v1]/locations/{locationId}/coverage/{coverageId}) defines the terms of risk or liability for losses such as buildings, personal property, and business interruptions at the specified location.

The request body now accepts the optional nonRankingDeductibleAmt parameter. The nonRankingDeductibleAmt parameter specifies the non-ranking deductible for the location. Non-ranking, location-level deductibles are interpreted by the HD financial model as residual excess (trailing) amounts that are applicable when aggregated losses exceed those covered by the policy-level aggregateMaxDeductible. This parameters is used by High Definition™ (HD) models only.

{
  "limitExtension": 0,
  "waitingPeriod": 0,
  "id": 0,
  "label": {
    "id": 0,
    "code": "string",
    "name": "string"
  },
  "eqslModifier": 0,
  "lossType": "Building",
  "percentSprinkler": 0,
  "value": 0,
  "biPoi": 0,
  "deductible": 0,
  "coverageModifier": {
    "id": 0,
    "code": "string",
    "name": "string"
  },
  "accumulation": "Building",
  "limit": 0,
  "peril": {
    "id": 0,
    "code": "string",
    "name": "string"
  },
  "percentageLossDeductibleAmount": 0,
  "isFranchiseDeductible": {
    "id": 0,
    "code": "string",
    "name": "string"
  },
  "isValid": true,
  "nonRankingDeductibleAmt": 0
}

The [Update location coverage resource (PUT /[v1]/locations/{locationId}/coverage/{coverageId}) updates the terms of risk or liability for losses such as buildings, personal property, and business interruptions at the specified location.

The request body now accepts the optional nonRankingDeductibleAmt parameter. The nonRankingDeductibleAmt parameter specifies the non-ranking deductible for the location. Non-ranking, location-level deductibles are interpreted by the HD financial model as residual excess (trailing) amounts that are applicable when aggregated losses exceed those covered by the policy-level aggregateMaxDeductible. This parameters is used by High Definition™ (HD) models only.

{
  "limitExtension": 0,
  "waitingPeriod": 0,
  "id": 0,
  "label": {
    "id": 0,
    "code": "string",
    "name": "string"
  },
  "eqslModifier": 0,
  "lossType": "Building",
  "percentSprinkler": 0,
  "value": 0,
  "biPoi": 0,
  "deductible": 0,
  "coverageModifier": {
    "id": 0,
    "code": "string",
    "name": "string"
  },
  "accumulation": "Building",
  "limit": 0,
  "peril": {
    "id": 0,
    "code": "string",
    "name": "string"
  },
  "percentageLossDeductibleAmount": 0,
  "isFranchiseDeductible": {
    "id": 0,
    "code": "string",
    "name": "string"
  },
  "isValid": true,
  "nonRankingDeductibleAmt": 0
}

The Get EQ Peril resource (GET /[v1]/locations/{locationId}/locationeqdetailId) returns details about the earthquake (EQ) peril at a specific location.

This resource now returns the nonRankingSiteDeductible and nonRankingCombinedDeduct attributes in the response body.

{
  "id": 0,
  "siteLimit": 0,
  "siteDeduct": 0,
  ...,
  "nonRankingCombinedDeduct": 0,
  "nonRankingSiteDeductible": 0,
  "isValid": true,
  "eqslInsurance": {
  ...
  }
}

The [Create EQ Peril resource (POST /[v1]/locations/{locationId}/locationeqdetailId) creates an earthquake (EQ) peril for the specific location.

This resource now enables the client to specify nonRankingSiteDeductible and nonRankingCombinedDeduct parameters in the request body.

{
  "id": 0,
  "siteLimit": 0,
  "siteDeduct": 0,
  ...,
  "nonRankingCombinedDeduct": 0,
  "nonRankingSiteDeductible": 0,
  "isValid": true,
  "eqslInsurance": {
  ...
  }
}

The [Update EQ Peril resource (PUT /[v1]/locations/{locationId}/updatelocationeqdetail-locationeqdetailId2) creates an earthquake (EQ) peril for the specific location.

This resource now enables the client to update the nonRankingSiteDeductible and nonRankingCombinedDeduct parameters in the request body.

{
  "id": 0,
  "siteLimit": 0,
  "siteDeduct": 0,
  ...,
  "nonRankingCombinedDeduct": 0,
  "nonRankingSiteDeductible": 0,
  "isValid": true,
  "eqslInsurance": {
  ...
  }
}

The Get FL Peril resource (GET /[v1]/locations/{locationId}/locationfldetailId) returns details about the flood (FL) peril at a specific location.

This resource now returns the nonRankingSiteDeductible and nonRankingCombinedDeduct attributes in the response body.

{
  "id": 0,
  "siteLimit": 0,
  "siteDeduct": 0,
  ...,
  "nonRankingCombinedDeduct": 0,
  "nonRankingSiteDeductible": 0,
  "isValid": true,
  "eqslInsurance": {
  ...
  }
}

The [Create FL Peril resource (POST /[v1]/locations/{locationId}/locationfldetailId) creates a flood (FL) peril for the specific location.

This resource now enables the client to specify nonRankingSiteDeductible and nonRankingCombinedDeduct parameters in the request body.

{
  "id": 0,
  "siteLimit": 0,
  "siteDeduct": 0,
  ...,
  "nonRankingCombinedDeduct": 0,
  "nonRankingSiteDeductible": 0,
  "isValid": true,
  "eqslInsurance": {
  ...
  }
}

The [Update FL Peril resource (PUT /[v1]/locations/{locationId}/updatelocationfldetailId) creates a flood (FL) peril for the specific location.

This resource now enables the client to update the nonRankingSiteDeductible and nonRankingCombinedDeduct parameters in the request body.

{
  "id": 0,
  "siteLimit": 0,
  "siteDeduct": 0,
  ...,
  "nonRankingCombinedDeduct": 0,
  "nonRankingSiteDeductible": 0,
  "isValid": true,
  "eqslInsurance": {
  ...
  }
}

The Get FR Peril resource (GET /[v1]/locations/{locationId}/locationfrdetailId) returns details about the fire (FR) peril at a specific location.

This resource now returns the nonRankingSiteDeductible and nonRankingCombinedDeduct attributes in the response body.

{
  "id": 0,
  "siteLimit": 0,
  "siteDeduct": 0,
  ...,
  "nonRankingCombinedDeduct": 0,
  "nonRankingSiteDeductible": 0,
  "isValid": true,
  "eqslInsurance": {
  ...
  }
}

The [Create FR Peril resource (POST /[v1]/locations/{locationId}/locationfrdetailId) creates an fire (FR) peril for the specific location.

This resource now enables the client to specify nonRankingSiteDeductible and nonRankingCombinedDeduct parameters in the request body.

{
  "id": 0,
  "siteLimit": 0,
  "siteDeduct": 0,
  ...,
  "nonRankingCombinedDeduct": 0,
  "nonRankingSiteDeductible": 0,
  "isValid": true,
  "eqslInsurance": {
  ...
  }
}

The [Update FR Peril resource (PUT /[v1]/locations/{locationId}/updatelocationfrdetailId) creates a fire (FR) peril for the specific location.

This resource now enables the client to update the nonRankingSiteDeductible and nonRankingCombinedDeduct parameters in the request body.

{
  "id": 0,
  "siteLimit": 0,
  "siteDeduct": 0,
  ...,
  "nonRankingCombinedDeduct": 0,
  "nonRankingSiteDeductible": 0,
  "isValid": true,
  "eqslInsurance": {
  ...
  }
}

The Get TO Peril resource (GET /[v1]/locations/{locationId}/locationtodetailId) returns details about the tornado (TO) peril at a specific location.

This resource now returns the nonRankingSiteDeductible and nonRankingCombinedDeduct attributes in the response body.

{
  "id": 0,
  "siteLimit": 0,
  "siteDeduct": 0,
  ...,
  "nonRankingCombinedDeduct": 0,
  "nonRankingSiteDeductible": 0,
  "isValid": true,
  "eqslInsurance": {
  ...
  }
}

The [Create TO Peril resource (POST /[v1]/locations/{locationId}/locationtodetailId) creates a tornado (TO) peril for the specific location.

This resource now enables the client to specify nonRankingSiteDeductible and nonRankingCombinedDeduct parameters in the request body.

{
  "id": 0,
  "siteLimit": 0,
  "siteDeduct": 0,
  ...,
  "nonRankingCombinedDeduct": 0,
  "nonRankingSiteDeductible": 0,
  "isValid": true,
  "eqslInsurance": {
  ...
  }
}

The [Update TO Peril resource (PUT /[v1]/locations/{locationId}/updatelocationtodetailId) creates a tornado (TO) peril for the specific location.

This resource now enables the client to update the nonRankingSiteDeductible and nonRankingCombinedDeduct parameters in the request body.

{
  "id": 0,
  "siteLimit": 0,
  "siteDeduct": 0,
  ...,
  "nonRankingCombinedDeduct": 0,
  "nonRankingSiteDeductible": 0,
  "isValid": true,
  "eqslInsurance": {
  ...
  }
}

The Get TR Peril resource (GET /[v1]/locations/{locationId}/locationtrdetailId) returns details about the terrorism (TR) peril at a specific location.

This resource now returns the nonRankingSiteDeductible and nonRankingCombinedDeduct attributes in the response body.

{
  "id": 0,
  "siteLimit": 0,
  "siteDeduct": 0,
  ...,
  "nonRankingCombinedDeduct": 0,
  "nonRankingSiteDeductible": 0,
  "isValid": true,
  "eqslInsurance": {
  ...
  }
}

The [Create TR Peril resource (POST /[v1]/locations/{locationId}/locationtrdetailId) creates an terrorism (TR) peril for the specific location.

This resource now enables the client to specify nonRankingSiteDeductible and nonRankingCombinedDeduct parameters in the request body.

{
  "id": 0,
  "siteLimit": 0,
  "siteDeduct": 0,
  ...,
  "nonRankingCombinedDeduct": 0,
  "nonRankingSiteDeductible": 0,
  "isValid": true,
  "eqslInsurance": {
  ...
  }
}

The [Update TR Peril resource (PUT /[v1]/locations/{locationId}/updatelocationtrdetail-locationeqdetailId2) creates a terrorism (TR) peril for the specific location.

This resource now enables the client to update the nonRankingSiteDeductible and nonRankingCombinedDeduct parameters in the request body.

{
  "id": 0,
  "siteLimit": 0,
  "siteDeduct": 0,
  ...,
  "nonRankingCombinedDeduct": 0,
  "nonRankingSiteDeductible": 0,
  "isValid": true,
  "eqslInsurance": {
  ...
  }
}

The Get WS Peril resource (GET /[v1]/locations/{locationId}/locationwsdetailId) returns details about the windstorm (WS) peril at a specific location.

This resource now returns the nonRankingSiteDeductible and nonRankingCombinedDeduct attributes in the response body.

{
  "id": 0,
  "siteLimit": 0,
  "siteDeduct": 0,
  ...,
  "nonRankingCombinedDeduct": 0,
  "nonRankingSiteDeductible": 0,
  "isValid": true,
  "eqslInsurance": {
  ...
  }
}

The [Create WS Peril resource (POST /[v1]/locations/{locationId}/locationwsdetailId) creates storm (WS) peril for the specific location.

This resource now enables the client to specify nonRankingSiteDeductible and nonRankingCombinedDeduct parameters in the request body.

{
  "id": 0,
  "siteLimit": 0,
  "siteDeduct": 0,
  ...,
  "nonRankingCombinedDeduct": 0,
  "nonRankingSiteDeductible": 0,
  "isValid": true,
  "eqslInsurance": {
  ...
  }
}

The [Update WS Peril resource (PUT /[v1]/locations/{locationId}/updatelocationwsdetail-locationwsdetailId) creates storm (WS) peril for the specific location.

This resource now enables the client to update the nonRankingSiteDeductible and nonRankingCombinedDeduct parameters in the request body.

{
  "id": 0,
  "siteLimit": 0,
  "siteDeduct": 0,
  ...,
  "nonRankingCombinedDeduct": 0,
  "nonRankingSiteDeductible": 0,
  "isValid": true,
  "eqslInsurance": {
  ...
  }
}

Policy

The Get policies resource (GET /[v1]/policies) returns a list of policies.

A policy is an insurance contract between an insurance company and a person or company with some potential for economic loss from property being damaged. A policy associated with an account includes the inception and expiration dates, blanket limit, deductible, and reinsurance (if any), for one peril, applying to all locations.

This resource now returns the aggregateMaxDeductible attribute in the response body. The aggregateMaxDeductible attribute identifies the maximum amount allowed for annual deductibles (aggregate terms) applied to locations within a policy. Coverage for loses cannot exceed the specified aggregateMaxDeductible. Losses beyond this deductible are covered by non-ranking deductibles, which are defined at the location level.

{
  "matchCount": 0,
  "policies": [
    {
      "operationType": "INSERT",
      "id": 0,
      ...,
      "aggregateMinDeductible": 0,
      "aggregateLimit": 0,
      "aggregateMaxDeductible": 0
    }
  ]
}

The Get policy resource (GET /[v1]/policies/{policyId}) returns details for a specific policy.

This resource now returns the aggregateMaxDeductible attribute in the response body. The aggregateMaxDeductible attribute identifies the maximum amount allowed for annual deductibles (aggregate terms) applied to locations within a policy. Coverage for loses cannot exceed the specified aggregateMaxDeductible. Losses beyond this deductible are covered by non-ranking deductibles, which are defined at the location level.


{
  "operationType": "INSERT",
  "id": 0,
  ...,
  "aggregateMinDeductible": 0,
  "aggregateLimit": 0,
  "aggregateMaxDeductible": 0
}

The [Create policy resource (POST /[v1]/policies) enables the client to create a policy.

This resource now accepts the aggregateMaxDeductible parameter in the request body. The aggregateMaxDeductible attribute specifies the maximum to be paid out for the aggregated annual deductibles applied to locations within a policy. Coverage for loses cannot exceed the specified aggregateMaxDeductible. Losses beyond this deductible are covered by non-ranking deductibles, which are defined at the location level.


{
  "id": 0,
  "number": "string",
  ...,
  "aggregateMinDeductible": 0,
  "aggregateLimit": 0,
  "aggregateMaxDeductible": 0
}

The [Update policy resource (PUT /[v1]/policies) enables the client to update a policy.

This resource now accepts the aggregateMaxDeductible parameter in the request body. The aggregateMaxDeductible attribute specifies the maximum to be paid out for the aggregated annual deductibles applied to locations within a policy. Coverage for loses cannot exceed the specified aggregateMaxDeductible. Losses beyond this deductible are covered by non-ranking deductibles, which are defined at the location level.


{
  "id": 0,
  "number": "string",
  ...,
  "aggregateMinDeductible": 0,
  "aggregateLimit": 0,
  "aggregateMaxDeductible": 0
}

Workflow

The Get Workflow resource (GET /[v1]/workflow/{workflow_id}) now returns the locationsSubmitted and locationsModeled attributes as part of the summary object returned for a DLM job.

{
    "id": 15565841,
    ...,
    "name": "RMS_RL18_Ref_TestData_EDM: PORTFOLIO: Port_All_Acc",
    "type": "DLM",
    "jobs": [ ... ],
    "summary": {
        "analysisType": "Exceedance Probability",
        "analysisId": "56300",
        "exposureName": "Port_All_Acc",
        "exposureType": "PORTFOLIO",
        "softwareVersion": "RL23",
        "modelProfileName": "RM2.0_API_ILEQ_V23",
        "outputProfileName": "Default",
        "databaseName": "RMS_RL18_Ref_TestData_EDM",
        "dataVersion": "21.0.0",
        "locationsSubmitted": "3000",
        "locationsModeled": "31"
    },
    "output": {
        "analysisId": "56300"
    },
    "progress": 100,
    "messages": []
}

The locationsSubmitted attribute identifies the number of locations submitted for DLM modelling in the custom workflow. The locationsModeled attribute identifies the number of locations successfully modelled in a custom workflow.