Skip to content

SAIF.Business.Policy.Premium architecture

SAIF.Business.Policy.Premium sits in the BOF business layer and owns the premium-side domain model of a policy period: what was rated, what adjustments applied, what premium amounts should be surfaced, and how premium-adjacent billing and reporting data is represented. It builds on clsBusinessBase and IBusinessCriteria† while consuming SAIF.Business.Policy.Rating for rating-factor contracts and calculations.

Responsibilities

  • Premium-set aggregate management and dual-database routing between Enterprise objects and Policy-side @POLDB objects.
  • Class coverage modeling, rating-plan association, premium-summary adjustment modeling, and billing/reporting support.

Component boundaries

  • Upward: exposes business objects, collections, interfaces, and extension modules for higher policy/application layers.
  • Persistence: routes all CRUD and ad-hoc SQL through BOF data-portal requests and criteria objects†.
  • Sibling dependency: depends on SAIF.Business.Policy.Rating; Premium consumes Rating, not the reverse.
  • Framework dependency: clsCodeTableBase and clsAddress are touched by this library, but indexed framework documentation for those types was not available.**

Interaction model

Callers reach entities through shared factory methods and extension helpers. BOF lifecycle hooks (BeforeRetrieve, AfterRetrieve, BeforeInsert, AfterInsert, BeforeUpdate, AfterUpdate) provide the consistent retrieval and persistence pattern†, while Premium-specific helpers add subtotaling, weighted claim frequency, named premium-amount lookup, and rating-plan merging.

Architecture diagram

The following diagram shows the library's primary collaborators and the Premium → Rating dependency direction.

flowchart TD
    Caller[Policy callers] --> Premium[SAIF.Business.Policy.Premium]
    Premium --> Rating[SAIF.Business.Policy.Rating]
    Premium --> Core[SAIF.Framework.Core / BOF]
    Core --> Enterprise[(Oracle Enterprise objects)]
    Premium -->|Routing via @POLDB| Policy[(Oracle Policy objects/views)]

Sequence diagram

The following diagram shows the retrieve path for a premium-set-driven class-coverage request.

sequenceDiagram
    participant Caller
    participant Set as clsPremiumSet
    participant Coverage as clsClassCoverageCollection
    participant Portal as BOF data portal
    participant DB as Oracle
    Caller->>Set: GetMostRecentPremiumSet(...)
    Set->>Portal: Submit criteria SQL†
    Portal->>DB: Execute premium-set lookup
    DB-->>Portal: Set row
    Caller->>Coverage: GetClassCoverages(...)
    Coverage->>Portal: Submit class-coverage SQL†
    Portal->>DB: Execute coverage lookup
    DB-->>Caller: Hydrated objects

Design constraints

  • Runtime database target selection swaps base tables for @POLDB-suffixed objects or _VIEW variants.
  • clsPremiumSummaryAdjustment.Criteria.UpdateSQL throws the BOF invalid-SQL message instead of issuing an update, so summary adjustments behave as insert-only objects.
  • Pipelines/build-vars.yml contains an AppName value that does not match this library's solution/project naming.

Note: Statements marked with * were inferred from code structure, naming conventions, or contextual evidence where direct confirmation was not available in source artifacts. Statements marked with ** could not be confirmed; treat as unknown until verified.

Sources

  • Business\SAIF.Business.Policy.Premium\clsPremiumSet.vb
  • Business\SAIF.Business.Policy.Premium\clsClassCoverage.vb
  • Business\SAIF.Business.Policy.Premium\clsClassCoverageBase.vb
  • Business\SAIF.Business.Policy.Premium\clsPolicyPeriodRatingPlan.vb
  • Business\SAIF.Business.Policy.Premium\clsPremiumSummaryAdjustment.vb
  • Business\SAIF.Business.Policy.Premium\Pipelines\build-vars.yml