June, 2024

🥥

Highlights

The June release introduces operations for managing archived databases in the Admin Data API and enhanced analysis results filtering.

  • The Risk Data API now supports batch processing for creating, updating, or deleting exposures.
  • The Rollup API supports the rollup analysis for programs and business hierarchies.
  • The ESG API now supports ESG_Details and PCAF_Details reports.
  • Intelligent Risk Platform no longer supports SQL Server 2014. Requests that specify the export of databases in that format now return an error message.

Learn More

Accumulation API

In the current release of the Accumulation API, client can create, update, and delete accumulation analysis jobs.

The Accumulation API does not currently support the creation of accumulation profiles, which are required to do an accumulation analyis. Accumlation profiles can be created using the ExposureIQ application.

Nor does the Accumlation API support viewing accumulation analysis results. Result data can be viewed using the ExposureIQ application or exported using the Export API.

Create Accumulation Job

The Create Accumulation Jobs operation (GET /platform/accumulation/v1/jobs) now generates accumulations based on business hierarchies as well as portfolios and portfolio variations.

An accumulation is a type of analysis that enables you to identify areas of concentrated property or workers compensation exposure so that you can assess worst-case scenarios. Accumulations calculate the exposed limit, the maximum loss from a single deterministic event.

If the required resourceType specified in the request body is businessHierarchy, the request accepts a resourceUri and settings object.

{
  "resourceType": "businessHierarchy",
  "settings": {
    "currency": {
      "currencySchemeName": "USD",
      "currencyVersion": "1"
    },
    "eventInfo": {
      "eventDateBehavior": "ddd",
      "eventDate": "2021-06-04"
    },
    "name": "name",
    "message": "message",
    "profileIds": ["3", "4"],
    "financialPerspectives": ["FN"],
    "notes": "note"
  },
  "resourceUri": "path"
}

The resourceType, resourceUri, and settings object are all required. The settings object consists of the required name, currency, profileIds, financialPerspectives and eventInfo parameters and the optional message, notes, and eventInfo parameters. Business hierarchy accumulation jobs do not accept a portfolioProperties object in the request, unlike the profile and profileVariation resource types.

ParameterTypeDescription
resourceTypestringRequired To create a business hierarchy accumulation analysis job, businessHierarchy. The parameter accepts one of portfolio, portfolioVariation, or businessHierarchy.
resourceUriuriRequired URI of the business hierarchy exposure.
settingsobjectRequired Definition of the accumulation job settings including the required name, currency, profileIds, finanacialPerspectives, and eventInfo properties. The message and notes properties are optional.
namestringRequired Name of the accumulation report. If unspecified, the name of the accumulation profile is used.
messagestringShort description of accumulation analysis.
currencyobjectRequired Currency scheme with the version of exchange rates. Consists of the required currencyScheme, currencyVersion, and asOfDate properties and the optional currency property.
profileIdsarrayRequired List of accumulation profiles identified by ID number. The Accumulation API does not currently support the creation of accumulation profiles; use the ExposureIQ application.
financialPerspectivesarrayRequired List of financial perspectives. See Financial Perspectives
notesstringOptional description of the accumulation report.
eventInfoobjectRequired Consists of the required eventDateBehavior and eventDate

Get Accumulation Job

The Search Accumulation Jobs operation (GET /platform/accumulation/v1/jobs/{jobId}) and Get Accumulation Job operation (GET /platform/accumulation/v1/jobs/{jobId}) now returns business hierarchy details.

Analysis API

Get EP Interpolation Results

The updated Get EP Interpolation Results operation (GET /platform/riskdata/v1/analyses/{analysisId}/ep/interpolate) now returns an error message if a negative number is specified as a value in the query.

This operation supports filtering by EP interpolation result property. A keyName (one of returnPeriod, criticalProbability, or validFinancialPerspectiveKeys) must be specified as a query parameter. If the keyName is returnPeriod or criticalProbability, the specified keyValue query parameter must be a positive number, i.e. greater than 0.0, or the API returns an error message. If the keyName is validFinancialPerspectiveKeys, the keyValue is a string that identifies a financial perspective, i.e. GU_LOSS or GR_LOSS.

For example,

curl --request GET \
     --url 'https:/{host}/platform/riskdata/v1/analyses/67/ep/interpolate? \
     perspectiveCode=GS& \
     exposureResourceId=56& \
     exposureResourceType=PORTFOLIO& \
     keyName=RETURNPERIOD& \keyValue=7' \
     --header 'Authorization: XXXXXXXXXX' \
     --header 'accept: application/json'

ESG Data API

Create ESG Report

The Create ESG Report operation (POST) now supports the creation of PCAF_DETAILS and ESG_DETAILS reports in addition to the ESG_EXPOSURE_SUMMARY report.

Environmental, Social, and Governance (ESG) analytics enable you to identify, assess, and manage your portfolios' ESG risk profile.

The mandatory x-rms-resource-group-id header parameter specifies the resource group.

Get ESG Report

The Get ESG Report operation (GET) returns information about the specified ESG report. This operation now supports information about PCAF_DETAILS and ESG_DETAILS reports.

Export API

Create Export Job

The Create Export Job operation (POST /platform/export/v1/jobs/) no longer supports the downloading RDM and EDM databases in SQL 2014 version.

The Create Export Job operation supports six different types of export jobs: EDM, EXPOSURE_RESOURCE, RDM, RDM_DATABRIDGE, RESULTS, and LOCATION_RESULTS. The RDM and EDM export jobs no longer support SQL Server 2014 downloads.

If the request specifies a sqlVersion value of 2014, the API returns a 400 error message to the client.

{
  "code": "EXPORT_SERVICE-022",
  "message": "With Microsoft SQL 2014 version coming to end of life on July 9 2024, IRP has ended its support. Please use the higher SQL versions offered in IRP.",
  "logId": "9a630b9877821364"
}

The Create Export Job operation (POST /platform/export/v1/jobs/) now supports filtering by exposure types when downloading an EDM.

If a filter is specified in the request, the resource returns the exposures specified in the request. If no filter is specified, the API returns a download link to an EDM that contains all of the data in the specified EDM database.

The following request package specifies job that will download an EDM. It includes a filter that selects a single account exposure, i.e. 84.

{
  "exportType": "EDM",
  "resourceUri": "/platform/riskdata/v1/exposures/69290",
  "resourceType": "EXPOSURE",
  "settings": {
    "fileExtension": "BAK",
    "fileName": "test",
    "sqlVersion": "2016",
    "filters": {
      "exposureResourceType": "ACCOUNTS",
      "exposureResourceIds": [84]
    }
  }
}

This returns a 201 Created response code and adds an EDM2EDM job to the job engine queue.

If the specified filter selects a bad exposure type or non-existent exposure IDs, the API returns an error.

The Search Export Jobs (GET /platform/export/v1/jobs/) and Get Export Job (GET /platform/export/v1/jobs/{jobId}) now returns additional information about EDM2EDM jobs in the log object :

"log": {
    "exposureResourceNames": "Prem1",
    "exposureResourceIds": "[212]",
    "exposureType": "PORTFOLIO",
    "exposureName": "EDM_xxxxxxxxxx",
    "exposureSetId": "476665",
    "downloadUrl": "https://xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    "fileSize": "3 MB",
    "expiresAt": "2024-07-02T11:25:01.831Z",
    "fileExtension": "BAK",
    "sqlVersion": "2019"
}

Additional properties are returned in the log object:

PropertyData TypeDescription
exposureResourceNamestringName of the EDM database.
exposureResourceIdsarrayList of exposures downloaded identified by ID number.
exposureTypestringType of exposures downloaded. One of ACCOUNT, PORTFOLIO
exposureSetIdstringID of the exposure set securable.
downloadUrlstringURI of downloadable database artifact.
expiresAtstringDate that the URI to the report expires in ISO 8601 format, i.e. YYYY-MM-DDThh:mm:ss.sss
fileExtensionstringFile extension of the database artifact. One of BAK, MDF report.
sqlVersionstringVersion of the SQL Server downloaded. By default, 2019

The Delete Export Job operation (POST /platform/export/v1/jobs/) now supports filtering by exposure types when downloading an EDM.

Legacy APIs

Output Profiles

The updated Create Output Profile operation (POST /analysis-settings/outputprofiles) now accepts the optional excludeDefaultMetrics parameter in the request body.

If true, analysis results generated using this output profile do not include the RMS default metrics. By default, false

An output profile is configuration that identifies the loss tables, EP metrics, and statistics output to an analysis result. An output profile must be specified in every request that initiates a modeling job. This output profile specifies the granularity (resolution) of the results the and the financial perspectives used to calculate modeled losses.

The new Update Output Profile operation (PATCH /analysis-settings/outputprofiles/{ouputProfileId} ) enables the client to update the specified output profile by adding tags.

A tag is a keyword or label that can be assigned to risk data resources (e.g. an account, database, profile, or treaty) to facilitate searching and automation.

An older implementation of this operation has been deprecated.

Risk Data API

Search Risk Data Jobs

The Search Risk Data Jobs (GET /platform/export/v1/jobs/) and Get Risk Data Job (GET /platform/export/v1/jobs/{jobId}) now returns additional information about Analysis Summary and Exposure Summary reports:

{
    "jobId": "2001516",
    ...,
    "details": {
        "resources": [
            {
                "uri": "string"
            }
        ]
    },
    "log": {
        "perilCodes": "ws",
        "reportName": "TestIRPReport",
        "downloadLink": "https://xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
        "downloadFileSize": "2.7 kB",
        "fileExtension": "JSON",
        "expirationDate": "",
        "reportType": "Analysis Summary",
        "exposureName": "string" //only if applicable, same as datasource name if available in existing flow
    }
}

Additional properties are returned in the log object:

PropertyData TypeDescription
perilCodesstringTwo-character code identifying the peril type.
reportNamestringName of the report.
downloadLinkstringURI of downloadable report.
fileExtensionstringFile extension of the downloadble report.
expirationDatestringDate that the URI to the report expires in ISO 8601 format, i.e. YYYY-MM-DDThh:mm:ss.sss
reportTypestringAdditional information is returned if the reportType is Analysis Summary or Exposure Summary
exposureNamestringIf reportType is Exposure Summary, name of the exposure.

Batch Processing of Exposures

The Manage Exposures in Batch (POST /platform/riskdata/v1/exposures/{exposureId}/bulk-update)
creates, updates, or deletes multiple exposures (portfolios, accounts, locations, policies, or treaties) in a single request.

The request body defines an object that consists of five arrays: a portfolios array, accounts array, locations array, policies, and treaties array. Where parent-child relationships exist between exposures (e.g. between a portfolio and its accounts, or accounts and locations), child exposures may be nested within the parent exposure.

{
    "portfolios:" [
        {
            "portfolioId": 0,
            "portfolioName": "Port01",
            "portfolioNumber": "Port_ExpBatch_1_Num",
            "description": "Test_Location_Batch",
            "createDate": "2022-05-24T23:47:58.076Z",
            "stampDate": "",
            "operationType": "INSERT",
            "label": "Port_LocationBatch_01_Label",
            "accounts": [
                    {
                        "accountId": 23,
                        "label": "Acct_LocationBatch_01_Label",
                        "policies": [...],
                        "locations": [...],
                    },
                    {...}
            ],
        }
    ],
    "accounts": [...],
    "locations": [...],
    "policies": [...],
    "treaties": [...]
}

Each array defines one or more operations that creates, edits, or deletes an exposure. An operation is defined by an optional operationType, a required label, and a required request body. The operationType specifies the action performed (INSERT, UPDATE, or DELETE). By default, INSERT. The label uniquely identifies an operation enabling you refer to that operation or the output of that operation in user-defined workflows. The request body specifies exposure property values:

  • The portfolios array defines operations for creating, updating, or deleting portfolios. The array defines one or more portfolios and associated accounts. Required parameters depend on the operation type.
  • The accounts array defines operations for creating, updating, or deleting accounts. The array defines one or more accounts and the associated locations and policies. Required parameters depend on the operation type.
  • The locations array defines operations for creating, updating, or deleting locations The array defines location properties. Required parameters depend on the operation type.
  • The policies defines an array of operations for creating, updating, or deleting policies The array defines one or more policies. Required parameters depend on the operation type.
  • The treaties defines an array of operations for creating, updating, or deleting treaties. The array defines one or more treaties. Required parameters depend on the operation type.

This service supports the processing of large number of exposures in a single request. Consequently, the size of the request package may be quite large. Maximum supported payload: 5MB. Request packages that define up to 1000 exposures may be submitted in JSON format: Content-Type: application/json

Rollup API

The Rollup API supports TreatyIQ business hierarchy and program workflows.

Create Rollup Job

The Create Rollup Analysis Job operation (POST) creates a rollup analysis job for the specified program or business hierarchy.

  • A business hierarchy rollup analysis returns projected losses and statistics by position. This analysis returns aggregated loss metrics for the positions (portfolios, programs, groups) in a business hierarchy.
  • A program rollup analysis returns projected losses and statistics by program position and program treaty. This analysis returns aggregated loss metrics for the retrocession programs in a business hierarchy.

Depending on the resource type, this endpoint accepts different parameters:

If the reportType is program:

ParameterTypeDescription
resourceTypestringOne of program or businessHierarchy.
resourceUriuriURI of the program resource.
settingsobjectProgram analysis configurations.

If the resourceType is businessHierarchy:

ParameterTypeDescription
resourceTypestringOne of program or businessHierarchy.
resourceUriuriURI of the business hierarchy resource.
settingsobjectBusiness hierarchy analysis configurations.

Update Rollup Job

The Update Rollup Analysis Job operation (PATCH) updates the specified rollup analysis job. In the current release, this operation can be used to cancel a job.

Get Rollup Job

The Get Rollup Jobs operation (GET) returns information about the specified rollup job.

{
  "jobId": "string",
  "priority": "verylow",
  "userName": "string",
  "status": "QUEUED",
  "submittedAt": "string",
  "startedAt": "string",
  "endedAt": "string",
  "name": "string",
  "type": "string",
  "progress": 0,
  "details": {
    "resources": [
      {
        "uri": "string"
      }
    ],
    "summary": "string"
  },
  "tasks": [
    {
      "taskId": 0,
      "guid": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "jobId": "string",
      "status": "string",
      "submittedAt": "string",
      "createdAt": "string",
      "name": "string",
      "percentComplete": 0,
      "priorTaskGuids": ["3fa85f64-5717-4562-b3fc-2c963f66afa6"],
      "output": {
        "summary": "string",
        "errors": [
          {
            "message": "string"
          }
        ],
        "log": {
          "analysisId": 0,
          "resourceType": "program",
          "resourceName": "string",
          "resourceId": 0,
          "securableSetUri": "string",
          "securableSetName": "string",
          "variationUri": "string"
        }
      }
    }
  ]
}