Regions
Overview
In Socotra Insurance Suite, regions are used to lend organizational context to the work being done. While generally used to represent a geographic region or state (e.g. "North East", "South West", "SW", "CA", "TX", "VIC", "NSW" etc), implementers may define whatever collection of regions makes sense for their business use cases.
Regions are defined as a list of strings in configuration, and on the operational side can be assigned to draft quotes. The region value on a quote is automatically copied over to the policy upon issuance. Adding regions to the configuration is optional, as is utilizing them on any given quote or policy.
Once set on a quote and validated, the region property is fixed for the life of the policy. The property will appear at the top level of a quote and policy.
Use Cases
There are currently three primary use cases for the region property, with more to follow.
- Reporting: The
regionproperty is replicated into Data Lake and can be leveraged to bring the intended context through to reporting. - Data Access Control: The
regionproperty can be leveraged as one of several values upon which implementers can control which users can access which quotes, policies, or their related entities via the Data Access Controls feature. - Work Management: In a work management context, regions will be used primarily as a container for users, groups, and business practice settings. An activity (a specific task or item of work to be done) can be assigned to someone in a given region. More details to follow as our forthcoming Work Management capabilities reach general availability.
Configuration
Like many other configurable entities, regions are defined in configuration as a map of RegionRef.
{
// other config entities
"regions":{
"NW": {
"displayName" : "North West"
},
"NE": {
"displayName" : "North East"
}
}
}Quote and Policy Regions
Assuming there have been regions configured for the tenant, a quote can be assigned a region while in draft state via a create or update request.
createQuote/policy/{tenantLocator}/quotesParameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
tenantLocator | path | uuid | Yes |
Required properties
| Property | Type | Description |
|---|---|---|
accountLocator | ulid | |
productName | string | |
startTime | datetime | |
invoiceFeeAmount | number | |
data | map<string, object> | |
contacts | ContactRoles[] |
Optional properties
| Property | Type | Description |
|---|---|---|
quoteGroupLocator | ulid? | |
region | string? | |
autoRenewalPlanName | string? | |
delinquencyPlanName | string? | |
endTime | datetime? | |
currency | string? | |
durationBasis | Enum? years | months | weeks | days | hours | |
timezone | string? | |
billingLevel | Enum? account | inherit | policy | |
expirationTime | datetime? | |
jurisdiction | string? | |
preferences | PreferencesResponse? | |
producerCode | string? | |
termDuration | integer? | |
static | map<string, object>? | |
coverageTerms | map<string, object>? | |
elements | ElementCreateRequest[]? |
If set, the region property will appear in the top level of the response when fetching a quote or policy.
fetchQuote/policy/{tenantLocator}/quotes/{locator}Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
tenantLocator | path | uuid | Yes | |
locator | path | ulid | Yes |
QuoteResponsequotesreadRequired properties
| Property | Type | Description |
|---|---|---|
locator | ulid | |
accountLocator | ulid | |
productName | string | |
quoteState | Enum draft | validated | earlyUnderwritten | priced | underwritten | accepted | issued | underwrittenBlocked | declined | rejected | refused | discarded | |
billingLevel | Enum account | inherit | policy | |
element | ElementResponse | The root element in the hierarchy |
contacts | ContactRoles[] |
Optional properties
| Property | Type | Description |
|---|---|---|
policyLocator | ulid? | |
groupLocator | ulid? | |
quickQuoteLocator | ulid? | |
region | string? | |
autoRenewalPlanName | string? | |
delinquencyPlanName | string? | |
issuedTime | datetime? | |
startTime | datetime? | |
endTime | datetime? | |
acceptedTime | datetime? | |
currency | string? | |
duration | number? | The duration of the prospective policy in units of durationBasis |
durationBasis | Enum? years | months | weeks | days | hours | |
timezone | string? | |
anonymizedAt | datetime? | |
expirationTime | datetime? | |
invoiceFeeAmount | number? | |
jurisdiction | string? | |
policyNumber | string? | |
preferences | PreferencesResponse? | Plan selections and setting overrides |
producerCode | string? | |
quoteNumber | string? | |
reservedPolicyNumber | string? | |
underwritingStatus | string? | |
validationResult | ValidationResult? | |
static | map<string, object>? | |
createdAt | datetime? | |
createdBy | uuid? |
fetchPolicy/policy/{tenantLocator}/policies/{locator}Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
tenantLocator | path | uuid | Yes | |
locator | path | ulid | Yes |
PolicyResponsepoliciesreadRequired properties
| Property | Type | Description |
|---|---|---|
locator | ulid | |
accountLocator | ulid | |
issuedTransactionLocator | ulid | The locator of the latest issued transaction for the policy. |
latestSegmentLocator | ulid | The last segment on the policy, based on issued transactions only |
latestTermLocator | ulid | |
productName | string | |
startTime | datetime | The start time, based on issued transactions only |
endTime | datetime | The end time based on issued transactions only. |
currency | string | |
durationBasis | Enum years | months | weeks | days | hours | |
timezone | string | |
billingLevel | Enum account | inherit | policy | |
static | map<string, object> | |
createdAt | datetime | |
createdBy | uuid | |
contacts | ContactRoles[] | |
moratoriumElections | map<string, string> | |
statuses | Enum[] pending | expired | cancelled | cancelPending | onRisk | delinquent | doNotRenew |
Optional properties
| Property | Type | Description |
|---|---|---|
region | string? | |
autoRenewalPlanName | string? | |
delinquencyPlanName | string? | |
anonymizedAt | datetime? | |
coverageEndTime | datetime? | |
invoiceFeeAmount | number? | |
jurisdiction | string? | |
policyNumber | string? | |
producerCode | string? | |
producerCodeOfRecord | string? | |
validationResult | ValidationResult? | |
branchHeadTransactionLocators | ulid[]? | The locators of all the top-level transactions on the policy, one per branch |