Underwriting

This article provides an overview of underwriting in the Socotra Insurance Suite.

Overview

Infographic depicting the underwriting step of a transaction in the Socotra Insurance Suite.

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:

  1. If there are any approve flags assigned to the quote, underwriting passes. The transaction will transition to the desired state.

  2. If there are any reject flags assigned to the quote, underwriting fails. The quote state will be set to rejected.

  3. If there are any decline flags assigned to the quote, underwriting fails. The quote state will be set to declined.

  4. If there are any block flags assigned to the quote, underwriting fails. The quote state will be set to underwritingBlocked.

  5. 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 or info 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, or decline 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.

See also