Skip to content

EverSharp Quote Extension

The EverSharp Quote Extension is a comprehensive library of insurance-specific functions for EverSharp, providing specialized capabilities for:

  • Premium Calculations - Complex pricing with factors, discounts, and taxes
  • Policy Lifecycle - New business, mid-term adjustments (MTA), renewals, cancellations
  • Underwriting - Automated decision-making, referrals, and risk assessment
  • Ledger Management - Transaction tracking and audit trails
  • Regulatory Compliance - IPT, tax/duty calculations, commission handling

This extension adds 44 specialized functions to EverSharp, enabling sophisticated insurance quoting workflows entirely within EverSharp scripts.


Installation

NuGet Package

dotnet add package Elements.Libs.EverSharpQuoteExtension

Package Manager Console

Install-Package Elements.Libs.EverSharpQuoteExtension

Quick Start

Basic Setup

Register the Quote Extension functions when creating your EverSharpRunner:

using Elements.Libs.EverSharp;
using Elements.Libs.EverSharpQuoteExtension;

// Create runner with Quote Extension functions
var runner = new EverSharpRunner(null, QuoteExtension.Functions);

// Now all 44 Quote Extension functions are available
var result = runner.Run(yourEverSharpScript);

Combining with Core EverSharp Functions

// Merge Quote Extension with core EverSharp functions
var allFunctions = new Dictionary<string, Callable>(QuoteExtension.Functions);

// Add your custom functions if needed
allFunctions["$MyCustomFunction"] = new MyCustomFunction();

var runner = new EverSharpRunner(null, allFunctions);

Simple Example

// Initialize pricing matrix
$SetCurrencyToPricingMatrix("GBP");
$SetCommissionRateToPricingMatrix(0.15);
$SetIptRateToPricingMatrix(0.12);

// Add base premium
$AddItemToPricingMatrix("Base Premium", 500.00);

// Apply factor
$AddFactorToPricingMatrix("Age Factor", 1.25, true, 0);

// Calculate quote
$CalculatePremiumAdditive("NewBusiness");

// Output contains final premium with all calculations applied

Function Categories

Pricing Matrix Functions

27 functions for building and manipulating pricing structures:

  • Add items, factors, discounts, add-ons
  • Configure tax, IPT, commission, fees
  • Remove items and manage matrix state

Quote Calculation Functions

7 functions for premium calculations and adjustments:

  • Calculate premiums for new business, MTAs, renewals
  • Process cancellations (full, pro-rata, no refund)
  • Calculate age and policy dates

Quote Functions

3 functions for managing quote public data and features:

  • Validate quote status based on underwriting decisions
  • Add and manage policy features and benefits
  • Structure quote data for external consumption

Ledger Functions

Transaction tracking and audit trail management:

  • Add ledger entries for all financial transactions
  • Maintain complete audit history

Underwriter Functions

7 functions for automated underwriting decisions:

  • Add underwriter decisions (accept, decline, refer)
  • Multi-level referrals (Level 1, 2, 3)
  • Add endorsements

Time Functions

Policy date calculations:

  • Calculate policy start/end dates
  • Handle time-based premium adjustments

Output Functions

Format and structure quote results:

  • Set premium values
  • Configure monthly payments
  • Apply IPT and other calculated values

Key Concepts

Pricing Matrix

The PricingMatrix is the central data structure for quote calculations. It accumulates:

  • Base premiums and items
  • Factors (multiplicative adjustments)
  • Discounts (gross, net, internal, item-level)
  • Add-ons (additional charges)
  • Tax, duty, IPT (insurance premium tax)
  • Commission and fees

All pricing functions operate on the PricingMatrix environment variable.

Ledger

The Ledger tracks all financial transactions for audit and reporting:

  • Each calculation creates ledger entries
  • Maintains transaction history
  • Supports reversals and adjustments

The ledger is automatically populated when using $CalculatePremiumAdditive.

Underwriter Decisions

The Underwriter subsystem handles risk assessment:

  • Automated accept/decline logic
  • Multi-level referral workflows
  • Decision tracking with authority levels and codes
  • Endorsement management

Quote Public Data

The QuotePublicData structure serves as the external quote contract:

  • Centralized quote information for external consumption
  • Policy dates, financial data, and features
  • Underwriter decisions and quote status
  • Automatically populated by quote functions

Environment Variables

Quote Extension functions expect these environment variables:

Variable Type Description
PricingMatrix Object Central pricing structure
Ledger Array Transaction audit trail
Output Object Final quote output structure
QuotePublicData Object External quote data contract
QuoteStatus String Validated quote status
ProductDetails Object Product configuration
HasActiveFinanceAgreement Boolean Finance status flag
UnderwriterDecisions Array Underwriting decision history
InceptionDate String Policy inception date (ISO 8601)
ExpiryDate String Policy expiry date (ISO 8601)
PolicyDurationInDays Number Policy duration in days

These are automatically managed by the extension functions.


Examples

Explore practical examples showing complete workflows:


Reference


Integration with EverSharp Core

Quote Extension is built on EverSharp's Callable interface, making all functions:

  • Composable - Chain with core EverSharp functions
  • Testable - Unit test with EverSharpRunner
  • Extensible - Add your own domain-specific functions

See the EverSharp Extension Functions Guide for creating custom functions.


Support

For issues, questions, or contributions:

  • Repository: Azure DevOps - Elements.Libs.EverSharpQuoteExtension
  • Core EverSharp: Documentation
  • Team: Eversure Elements Team