---
title: SAIF.Business.UnitStat.Claim architecture
summary: Architectural responsibilities, boundaries, and interaction patterns.
status: draft
owner: SAIF
last_reviewed: 2026-07-28
library: SAIF.Business.UnitStat.Claim
reference_type: package
---

# SAIF.Business.UnitStat.Claim architecture

SAIF.Business.UnitStat.Claim is the claim-domain unit-statistics and NCCI reporting component, combining coverage-combination persistence, current-loss derivation, loss-summary maintenance, and claim-financial calculations across a broad Oracle-backed reporting surface.

## Responsibilities
- Manage coverage-combination, current-loss, loss-summary, loss-category, and offset records used in unit-stat reporting.
- Calculate or retrieve NCCI reporting attributes by calling `pk73304_loss_summary` functions and helper procedures.
- Aggregate claim financial data for reporting and valuation scenarios.
- Bridge claim, policy, task, and third-party packages into a single reporting-oriented business component.

## Component boundaries
- **Coverage combination:** `clsCoverageCombination` and its collection own the part-A/part-B claim pairing records.
- **Current loss derivation:** `clsCurrentLoss`, `clsCurrentLossCollection`, and `clsNCCILossRecord` translate claim facts into NCCI-oriented reporting fields.
- **Loss summary maintenance:** Loss summary, category, offset, denial, fraud-recovery, refund, and third-party-prediction classes isolate reporting sub-aggregates and helper lookups.
- **Financial calculations:** `ClaimFinancialData` and `ClaimFinancials` provide claim-level financial aggregation outside the row-oriented BOF entities.

## Interaction model
Reporting workflows retrieve or persist unit-stat aggregates through BOF criteria classes, complex inline SQL and helper procedures call into `pk73304_loss_summary` to derive NCCI values, and the component also consumes other claim and policy packages to enrich the reporting view.

## Architecture diagram
The following diagram shows the high-level component interactions.

```mermaid
flowchart TD
    A[Unit-stat or reporting workflow] --> B[Current loss and NCCI objects]
    A --> C[Coverage combination objects]
    A --> D[Loss summary and offset objects]
    A --> E[Claim financial calculators]
    B --> F[BOF data portal and criteria]
    C --> F
    D --> F
    F --> G[pk73304_loss_summary package]
    F --> H[Unit-stat Oracle tables]
    B --> I[Claim and policy BOF packages]
```

## Sequence diagram
The following diagram shows the primary request and persistence sequence.

```mermaid
sequenceDiagram
    participant Client
    participant Losses as clsCurrentLossCollection
    participant Portal as IDataPortalInfo
    participant Package as pk73304_loss_summary
    participant Oracle
    Client->>Losses: Request unit-stat claim data
    Losses->>Portal: Execute current-loss retrieval
    Portal->>Package: Invoke embedded functions and helper procedures
    Package->>Oracle: Read unit-stat, claim, and policy tables
    Oracle-->>Package: Return source rows and derived values
    Package-->>Losses: Derived NCCI codes, dates, and flags
    Losses-->>Client: Report-ready unit-stat business objects
```

## Inherited framework context (from Legends CLI)
- `clsBusinessBase`, `clsBusinessCollectionBase`, and `clsBusinessCollection(Of T)` provide the generic BOF lifecycle used by coverage-combination, loss-summary, and collection types around the unit-stat domain.* Source: cached Legends CLI results for `saif-framework-core` (`library` docs; api/business-rules/operations-processes/dependencies queries for the named base classes).
- `IBusinessCriteria`, `IDataPortalInfo`, and `IDataRequest` explain the library's Oracle-centric retrieval model: criteria define CRUD contracts, the data portal selects the active data-access layer, and request objects flow through that layer.* Source: cached Legends CLI results for `saif-framework-core` (`library` docs; api/operations-processes/dependencies queries for `IBusinessCriteria`, `IDataPortalInfo`, and `IDataRequest`).
- `clsSAIFDataReader` is inherited as a framework reader type in the BOF persistence path rather than as unit-stat-specific logic.* Source: cached Legends CLI results for `saif-framework-core` (`library` docs; api/dependencies queries for `clsSAIFDataReader`).

## Design constraints
- Derivation logic is heavily coupled to `pk73304_loss_summary`, which acts as a reporting business-rules engine for the component.
- The component spans multiple reporting tables and helper objects, so upstream schema or package changes can alter both retrieval and persistence flows.
- Cross-domain dependency breadth is intentional because unit-stat reporting aggregates claim, policy, task, and third-party context into one reporting boundary.

## Related documentation
- [Index](index.md)
- [Overview](overview.md)
- [Dependencies](dependencies.md)
- [Operations and processes](operations-processes.md)
- [Business rules](business-rules.md)
- [Database tables](database-tables.md)
- [SQL catalog](sql/index.md)
- [Procedures](procedures/index.md)
- [API reference](api/index.md)

> **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.Claim\Coverage Combination\clsCoverageCombination.vb`
- `Business\SAIF.Business.UnitStat.Claim\Coverage Combination\clsCoverageCombinationCollection.vb`
- `Business\SAIF.Business.UnitStat.Claim\Current Loss\clsCurrentLoss.vb`
- `Business\SAIF.Business.UnitStat.Claim\Current Loss\clsNCCILossRecord.vb`
- `Business\SAIF.Business.UnitStat.Claim\Loss Summary\clsLossSummary.vb`
- `Business\SAIF.Business.UnitStat.Claim\Loss Summary\clsLossCategory.vb`
- `Business\SAIF.Business.UnitStat.Claim\Loss Summary\clsLossCategoryOffset.vb`
- `Business\SAIF.Business.UnitStat.Claim\Loss Summary\clsThirdPartyPrediction.vb`
- `Business\SAIF.Business.UnitStat.Claim\Loss Summary\clsLossValuation.vb`
- `Business\SAIF.Business.UnitStat.Claim\ClaimFinancialData.vb`
- `Business\SAIF.Business.UnitStat.Claim\ClaimFinancials.vb`
- `Business\SAIF.Business.UnitStat.Claim\packages.config`
- `Business\SAIF.Business.UnitStat.Claim\SAIF.BOF.Business.UnitStat.Claim.nuspec`
