Underwriting
This article provides an overview of underwriting in the Socotra Insurance Suite.
Overview
In the Socotra Insurance Suite, underwriting is a process that determines whether a quote or policy transaction is worthwhile from a business standpoint.
Typically, underwriting utilizes an underwriting plugin. The underwriting plugin uses custom logic (written in Java) to analyze a transaction.
Based on its analysis, the underwriting plugin assigns underwriting flags to the transaction.
What is an underwriting plugin?
An underwriting plugin is a module that contains custom logic (written in Java) to perform underwriting checks.
The underwriting transaction is capable of adding and clearing (removing) underwriting flags.
The plugin determines if the transaction passes underwriting. If so, the flow continues. If not, the transaction diverts to a blocked state.
What is an underwriting flag?
An underwriting flag is a marker that can be added to a transaction. Underwriting flags are either:
Added manually (via the API or web app)
Added programmatically (via an underwriting plugin)
There are five types of underwriting flags:
approve
block
decline
info
reject
Once underwriting flags have been applied to a transaction, the system performs an evaluation process to analyze whether the transaction should proceed.
Post-underwriting evaluation
After a transaction goes through pricing, the typical next step is for it to go through an underwriting plugin. The underwriting plugin adds or clears any flags on the transaction.
The next step is evaluation, where an algorithm determines the appropriate course of action for a transaction given its assigned flags. Then, the transaction is assigned an underwriting status.
Evaluation algorithm
The evaluation algorithm examines the remaining uncleared flags on a quote. The system makes the following checks in order:
If there are any
approve
flags assigned to the quote, underwriting passes. The transaction will transition to the desired state.If there are any
reject
flags assigned to the quote, underwriting fails. The quote state will be set torejected
.If there are any
decline
flags assigned to the quote, underwriting fails. The quote state will be set todeclined
.If there are any
block
flags assigned to the quote, underwriting fails. The quote state will be set tounderwritingBlocked
.Otherwise, underwriting passes.
Tips
Based on the algorithm described above, we suggest the following tips:
If you never want to block underwriting, avoid adding any flags (or only add
approve
orinfo
flags).If your decision making logic is in a system external to Socotra, fetch that system’s result in the underwriting plugin. Based on result, add an
approve
,reject
, ordecline
flag. Evaluation will proceed as described above.If you have a system where you also need to accomplish certain checks (e.g. property inspection or manual review), you can add (and subsequently clear)
block
flags for each task.
Underwriting status
Every quote has an underwritingStatus
property that indicates the underwriting decision applied to the quote.
approved
blocked
declined
none
rejected
Important
The rejected
underwriting status is terminal. You cannot reset a transaction of its underwriting status when it is rejected. If this is not acceptable, we recommend using the decline
or block
flags as alternatives.