Skip to content

Supply the group discount factor to rating

Retrieves a group discount row and exposes it through the iAdjustedRateFactor contract used by rating callers.

Field Value
Operation ID OP-007
Trigger The rating engine requests the group adjustment factor for a policy
Inputs iAdjustedRateProvider
Outputs Either the persisted group discount or NonApplicableAdjustedRateFactor.
Primary components clsGroupAssociationDiscount.GetGroupAssociationDiscount, Factor
Entry point Business\SAIF.Business.Policy.Group\clsGroupAssociationDiscount.vb

Steps

  1. GetGroupAssociationDiscount(dpi, groupAssociationCode, effectiveDate) retrieves the discount row for the group as of the effective date from GROUP_ASSOCIATION_DETAIL.
  2. On Factor get, evaluate IsValid (framework rule state, including BR-013).
  3. Branch — if valid, return GroupDiscount; otherwise return NonApplicableAdjustedRateFactor. (BR-014)
  4. On Factor set, assign GroupDiscount.
  5. IsTentative exposes TentativeFlag.ToBoolean (persisted as PENDING_FLAG) so callers can distinguish a proposed discount from an approved one. (BR-015)
  6. Database statements executed or relied on by this operation: SQL-004, SQL-012, SQL-023, SQL-024, SQL-032, SQL-040; affected tables: DUAL, GROUP_ASSOCIATION_DETAIL.

Process flow

The following diagram visualizes this operation's control flow.

flowchart TD
    Start([Trigger]) --> Step1[Build criteria / load state]
    Step1 --> Step2[Apply local business logic]
    Step2 --> Decision{Valid and complete?}
    Decision -->|Yes| Step3[Return data or persist rows]
    Decision -->|No| EndErr([Return BOF validation or SQL-state issues])
    Step3 --> EndOk([Operation completes])

Failure and edge-case behavior

  • The collection retrieve SQL-024 is unfiltered and can scan all rows when callers use the collection path.

Sources

  • Business\SAIF.Business.Policy.Group\clsGroupAssociationDiscount.vb