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.
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.
Parameter | Type | Description |
---|---|---|
resourceType | string | Required To create a business hierarchy accumulation analysis job, businessHierarchy . The parameter accepts one of portfolio , portfolioVariation , or businessHierarchy . |
resourceUri | uri | Required URI of the business hierarchy exposure. |
settings | object | Required Definition of the accumulation job settings including the required name , currency , profileIds , finanacialPerspectives , and eventInfo properties. The message and notes properties are optional. |
name | string | Required Name of the accumulation report. If unspecified, the name of the accumulation profile is used. |
message | string | Short description of accumulation analysis. |
currency | object | Required Currency scheme with the version of exchange rates. Consists of the required currencyScheme , currencyVersion , and asOfDate properties and the optional currency property. |
profileIds | array | Required List of accumulation profiles identified by ID number. The Accumulation API does not currently support the creation of accumulation profiles; use the ExposureIQ application. |
financialPerspectives | array | Required List of financial perspectives. See Financial Perspectives |
notes | string | Optional description of the accumulation report. |
eventInfo | object | Required 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:
Property | Data Type | Description |
---|---|---|
exposureResourceName | string | Name of the EDM database. |
exposureResourceIds | array | List of exposures downloaded identified by ID number. |
exposureType | string | Type of exposures downloaded. One of ACCOUNT , PORTFOLIO |
exposureSetId | string | ID of the exposure set securable. |
downloadUrl | string | URI of downloadable database artifact. |
expiresAt | string | Date that the URI to the report expires in ISO 8601 format, i.e. YYYY-MM-DDThh:mm:ss.sss |
fileExtension | string | File extension of the database artifact. One of BAK , MDF report. |
sqlVersion | string | Version 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:
Property | Data Type | Description |
---|---|---|
perilCodes | string | Two-character code identifying the peril type. |
reportName | string | Name of the report. |
downloadLink | string | URI of downloadable report. |
fileExtension | string | File extension of the downloadble report. |
expirationDate | string | Date that the URI to the report expires in ISO 8601 format, i.e. YYYY-MM-DDThh:mm:ss.sss |
reportType | string | Additional information is returned if the reportType is Analysis Summary or Exposure Summary |
exposureName | string | If 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
:
Parameter | Type | Description |
---|---|---|
resourceType | string | One of program or businessHierarchy . |
resourceUri | uri | URI of the program resource. |
settings | object | Program analysis configurations. |
If the resourceType
is businessHierarchy
:
Parameter | Type | Description |
---|---|---|
resourceType | string | One of program or businessHierarchy . |
resourceUri | uri | URI of the business hierarchy resource. |
settings | object | Business 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"
}
}
}
]
}