Skip to Content

Quote Domain

The Quote Domain manages risk pricing, capacity allocation, and the generation of formal insurance offers. It supports both automated (Rated) and manual (Non-Rated) pricing models.

Core Architecture

The domain is split into two primary quote types sharing a common base.

Class Hierarchy

Quote Types

1. Rated Quote (RatedQuote)

Driven by Product definitions. The premium is calculated automatically by applying product rules (parameters) to submission data.

  • Structure: Composed of QuoteUnits (e.g., “Property”, “Liability”), which contain QuoteUnitItems (specific risk locations or items).
  • Versioning: Linked to specific ProductVersion and RenewalVersion.
  • Logic: Uses a MatchMatrix to derive multipliers from risk data.

2. Non-Rated Quote (NonRatedQuote)

Used for open-market or complex risks where pricing is determined manually by an underwriter.

  • Flexibility: Premium and Minimum are set explicitly.
  • Calculation Rows: Optional line-item breakdown (e.g., “Base Premium”, “Catastrophe Load”) can be added for documentation.
  • Subdivision: Linked to a business subdivision rather than a strict Product definition.

Rating Logic (Deep Dive)

The rating engine transforms Submission Data into a Premium using Product Context.

The Matching Process

For every QuoteUnitItem, the system builds a MatchMatrix.

  1. Context Loading: ProductQuoteContext (Rules) and SubmissionQuoteContext (Data) are loaded.
  2. Layering: The LayeringService determines the applicable Limit and Attachment Point.
  3. Parameter Matching:
    • The system iterates through all Parameters defined in the Product Unit.
    • A Matcher (e.g., RangeMatcher, SelectMatcher) compares Submission Data against the Parameter rules.
    • Result: A Match object containing a multiplier (e.g., 1.25 for “High Risk”).
  4. Matrix Compilation: All Match objects are collected into the MatchMatrix.

Calculation Flow

Financial Models

Premium Value Object

The Premium class encapsulates the “Greater Of” logic used throughout the system.

Effective Value=max(Calculated Amount,Minimum Premium)\text{Effective Value} = \max(\text{Calculated Amount}, \text{Minimum Premium})

Capacity & Security

Quotes manage the Security (Insurers) backing the risk.

  • QuoteCapacity: Represents a share of the risk assigned to a specific Stamp (Underwriter capacity).
  • Status: Capacity can be INVITED, QUOTED, DECLINED, or BOUND.

Key Workflows

1. Quote Generation

  • Trigger: User requests a quote for a Submission.
  • Action: RatedQuote.create() is called.
  • Outcome: A new RatedQuote is instantiated, units are rated, and the state is set to OPEN.

2. Binding (Quote -> Policy)

  • Pre-requisites: Status must be BOUND (conceptually), and Security must be fully allocated (100% Signed Lines).
  • Action: The Binding domain takes over, converting the Quote state into a Policy contract.

3. NTU (Not Taken Up)

  • Trigger: Client rejects the quote or time expires.
  • Action: Quote status moves to NTU.
  • Reason: A QuoteNTUReason (e.g., PRICE, LOST_ACCOUNT) is required.
Last updated on