SAIF.Business.UnitStat architecture¶
SAIF.Business.UnitStat centers on a policy-unit root aggregate, a claim-unit association layer, audit-condition tracking objects, shared loss/exposure base contracts, and a code-mapping module that translates SAIF values to NCCI reporting codes.
Responsibilities¶
- Represent policy-level unit-stat data as the root aggregate.
- Represent claim-level reporting rows and flags.
- Persist current and historical audit conditions.
- Provide reusable loss/exposure contracts and code maps.
Component boundaries¶
- Policy unit layer:
clsPolicyUnitandclsPolicyUnitCollection. - Claim unit layer:
clsClaimUnitandclsClaimUnitCollection. - Audit layer:
clsAuditCondition,clsAuditConditionCollection,clsAuditConditionHistory, andclsAuditConditionHistoryCollection. - Base-contract layer:
clsLossBase/iLossDataandclsExposureBase/iExposureDataprovide shared behavior for downstream concrete types*. - Code-mapping layer:
mdlCodeMapsexposes static and database-backed code maps.
Interaction model¶
- BOF criteria classes drive policy, claim, and audit persistence.
- Claim denial and fraud checks use direct scalar SQL.
- Audit-condition history follows a retrieve-then-insert-or-update upsert pattern.
- Database-backed code maps load on first access and are reused.
Architecture diagram¶
The following diagram shows the main components and persistence boundaries.
flowchart TD
Consumer[Consuming reporting library] --> PolicyUnit[clsPolicyUnit<br>root aggregate]
PolicyUnit --> ClaimUnits[clsClaimUnitCollection]
PolicyUnit --> AuditConditions[clsAuditConditionCollection]
AuditConditions --> AuditHistory[clsAuditConditionHistory<br>and collection]
PolicyUnit --> Oracle[(Oracle<br>US_POLICY_UNIT)]
ClaimUnits --> Oracle2[(Oracle<br>US_CLAIM_UNIT)]
AuditConditions --> Oracle3[(Oracle<br>US_AUDIT_CONDITION<br>US_AUDIT_CONDITION_HISTORY)]
PolicyUnit --> CodeMaps[mdlCodeMaps<br>SAIF/NCCI mapping]
CodeMaps --> Oracle4[(Oracle code tables<br>US_OFFSET_TYPE_CODE<br>US_COST_TYPE_CODE<br>CALCULATION_TYPE_CODE)]
LossBase[clsLossBase / clsExposureBase<br>shared contracts] -.-> Downstream[Concrete reporting types*]
Sequence diagram¶
The following diagram shows policy-unit creation and activation through the BOF lifecycle.
sequenceDiagram
participant Caller
participant PolicyUnit as clsPolicyUnit
participant BOF
participant Oracle
Caller->>PolicyUnit: NewPolicyUnit(...)
PolicyUnit->>BOF: GetNextSeqNum(US_POLICY_UNIT_SEQ)
Caller->>PolicyUnit: ActivatePolicyUnit()
Caller->>PolicyUnit: Save()
BOF->>Oracle: Execute SQL-004 or SQL-029
Oracle-->>BOF: Rows affected
BOF-->>PolicyUnit: Persisted aggregate
The following diagram shows the audit-condition history upsert path.
sequenceDiagram
participant Caller
participant History as clsAuditConditionHistory
participant Oracle
Caller->>History: GetAuditConditionHistory(...)
History->>Oracle: SQL-010 retrieve by composite key
alt Row exists
History->>Oracle: SQL-026 update LAST_UPDATE_DATE
else Row missing
History->>Oracle: SQL-002 insert history row
end
History-->>Caller: Current history record
Design constraints¶
clsLossBaseandclsExposureBaserely on downstream concrete implementations not present in this library*.UnitStatServices.GetNCCIPolicyNumberandGetLastValuationDateare external to the supplied library findings*.SAIF.BOF.Business.View.Provideris declared as a package dependency, but no direct import was confirmed**.HasPolicyUnitErrorsappears to conflict with its adjacent code comment and requires domain review**.
Related documentation¶
- Index
- Overview
- Dependencies
- Operations and processes
- Business rules
- Database tables
- SQL catalog
- API reference
- Configuration
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.UnitStat\clsPolicyUnit.vbBusiness\SAIF.Business.UnitStat\clsPolicyUnitCollection.vbBusiness\SAIF.Business.UnitStat\clsClaimUnit.vbBusiness\SAIF.Business.UnitStat\clsClaimUnitCollection.vbBusiness\SAIF.Business.UnitStat\clsAuditCondition.vbBusiness\SAIF.Business.UnitStat\clsAuditConditionCollection.vbBusiness\SAIF.Business.UnitStat\clsAuditConditionHistory.vbBusiness\SAIF.Business.UnitStat\clsAuditConditionHistoryCollection.vbBusiness\SAIF.Business.UnitStat\clsLossBase.vbBusiness\SAIF.Business.UnitStat\clsExposureBase.vbBusiness\SAIF.Business.UnitStat\mdlCodeMaps.vbBusiness\SAIF.Business.UnitStat\Extensions.vbBusiness\SAIF.Business.UnitStat\packages.config