---
title: SAIF.Business.UnitStat.Claim operations and processes
summary: Operation catalog and cross-operation hub for the Unit Stat claim-reporting business objects.
status: draft
owner: SAIF
last_reviewed: 2026-07-30
library: SAIF.Business.UnitStat.Claim
reference_type: package
---

# SAIF.Business.UnitStat.Claim operations and processes

This page is the operation catalog and cross-operation hub for `SAIF.Business.UnitStat.Claim`. The library exposes seven operations covering Part A/B coverage-combination linkage, NCCI-derived current-loss retrieval, loss-summary header CRUD with derived financial totals, cost-category and offset breakdown maintenance, the central loss-valuation orchestration that layers correction offsets over live claim data, a set of thin Oracle-package date/flag helpers, and the claim-financial API adapter that most of the above depend on. Each operation's detailed, step-by-step logic lives in its own page under `operations/`.

## Operation catalog

| Operation | Intent | Trigger | Inputs | Outputs | Rules | Tables | SQL |
| --- | --- | --- | --- | --- | --- | --- | --- |
| [Coverage combination management](operations/coverage-combination-management.md) | Create, retrieve, and delete Part A/B claim coverage-combination rows and expose part-A/part-B membership lookups | `clsCoverageCombination.NewCoverageCombination` / `GetCoverageCombination` / `clsCoverageCombinationCollection.GetCoverageCombinationCollection`, followed by `Save()` or `Delete()` | `PartAClaimID`, `PartBClaimID`, `ClaimID` | Persisted or retrieved `US_COVERAGE_COMBINATION` row(s); boolean part-A/part-B membership results | [BR-004](business-rules.md#br-004-coverage-combination-identifiers-come-from-an-oracle-sequence) | [US_COVERAGE_COMBINATION](database-tables.md#us_coverage_combination), [DUAL](database-tables.md#dual) | [SQL-001](sql/sql-001-select.md), [SQL-002](sql/sql-002-insert.md), [SQL-003](sql/sql-003-insert.md), [SQL-017](sql/sql-017-select.md), [SQL-018](sql/sql-018-update.md), [SQL-022](sql/sql-022-delete.md), [SQL-023](sql/sql-023-delete.md) |
| [Current loss and NCCI record retrieval](operations/current-loss-retrieval.md) | Retrieve NCCI-mapped current-loss data valued for Unit Stat reporting, including a live current-claim enrichment call | `clsCurrentLoss.NewCurrentLoss` / `GetCurrentLoss` / `clsCurrentLossCollection.GetCurrentLosses` / `GetTemporaryCurrentLosses`, and the explicit `LoadCurrentClaimInfo(dpi)` call | `ClaimID`, `PolicyUnitSeqNum`, `ReportValuationNumber` | Populated `clsCurrentLoss` / `clsCurrentLossCollection` rows with derived NCCI claim-type, loss-act, loss-type, settlement, and fraud codes | [BR-001](business-rules.md#br-001-ncci-claim-type-derives-from-claim-and-coverage-context), [BR-002](business-rules.md#br-002-non-compensable-claims-use-special-settlement-and-fraud-logic), [BR-003](business-rules.md#br-003-ncci-loss-type-derives-from-injury-occupational-disease-codes) | [us_policy_unit](database-tables.md#us_policy_unit), [us_claim_unit](database-tables.md#us_claim_unit), [cl_injury_claim](database-tables.md#cl_injury_claim), [cl_injury_source_code](database-tables.md#cl_injury_source_code), [cl_injury_nature_code](database-tables.md#cl_injury_nature_code), [cl_body_part_code](database-tables.md#cl_body_part_code), [us_unit_report](database-tables.md#us_unit_report), [us_report_batch](database-tables.md#us_report_batch), [us_reported_loss](database-tables.md#us_reported_loss), [us_catastrophic_claim](database-tables.md#us_catastrophic_claim), [us_catastrophe](database-tables.md#us_catastrophe) | [SQL-007](sql/sql-007-select.md) |
| [Loss summary maintenance](operations/loss-summary-maintenance.md) | Create, retrieve, update, and delete Unit Stat loss-summary header rows, deriving and persisting incurred/paid medical and indemnity totals | `clsLossSummary.NewLossSummary` / `GetLossSummary` (by sequence or natural key) / `clsLossSummaryCollection.GetLossSummaries`, followed by property edits and `Save()` | `ClaimID`, `PolicyUnitSeqNum`, `ReportValuationNumber`, `ReportTypeCode`, `AdjustmentSeqNum` | Persisted `US_LOSS_SUMMARY` row with derived totals; loaded `LossCategories` child collection | [BR-006](business-rules.md#br-006-indemnity-totals-are-floored-by-settlement-third-party-prediction-offsets-and-cannot-go-negative), [BR-007](business-rules.md#br-007-loss-summary-persistence-binds-derived-totals-not-raw-in-memory-amounts) | [US_LOSS_SUMMARY](database-tables.md#us_loss_summary), [DUAL](database-tables.md#dual) | [SQL-006](sql/sql-006-insert.md), [SQL-011](sql/sql-011-select.md), [SQL-021](sql/sql-021-update.md), [SQL-026](sql/sql-026-delete.md) |
| [Loss category and offset maintenance](operations/loss-category-offset-maintenance.md) | Create, retrieve, update, and delete cost-category and offset breakdown rows under a loss summary, including offset-type metadata lookups | `clsLossValuation.GetLossCategory` / `GetLossCategoryOffset` or `clsLossSummary.LossCategories` lazy load, followed by `Save()` | `LossSummarySeqNum`, `ClaimCostCategoryCode`, `LossCategorySeqNum`, `OffsetTypeCode`, `OffsetAmount` | Persisted `US_LOSS_CATEGORY` / `US_LOSS_CATEGORY_OFFSET` rows; resolved offset-type metadata | None registered* | [US_LOSS_CATEGORY](database-tables.md#us_loss_category), [US_LOSS_CATEGORY_OFFSET](database-tables.md#us_loss_category_offset) | [SQL-004](sql/sql-004-insert.md), [SQL-005](sql/sql-005-insert.md), [SQL-019](sql/sql-019-update.md), [SQL-020](sql/sql-020-update.md), [SQL-024](sql/sql-024-delete.md), [SQL-025](sql/sql-025-delete.md) |
| [Loss valuation orchestration](operations/loss-valuation-orchestration.md) | Value a loss summary from live claim-system data by computing category cost basis and layering fraud, refund, third-party-prediction, ND-reimbursement, or voided-claim offsets | Higher-level report/valuation manager calls `clsLossValuation.ValueLossSummary(dataPortalInfo, lossSummary, claimUnit)` | `clsLossSummary`, `clsClaimUnit`, current claim data | Mutated loss summary and its `LossCategories`/offsets; boolean success | [BR-008](business-rules.md#br-008-voided-claims-bypass-fraud-refund-and-third-party-offset-stacking) | — | [SQL-012](sql/sql-012-pk73304_loss_summary-get_final_denial_dates.md), [SQL-014](sql/sql-014-pk73304_loss_summary-get_thirdparty_prediction.md), [SQL-015](sql/sql-015-pk73304_loss_summary-get_thirdparty_prediction.md), [SQL-016](sql/sql-016-select.md) |
| [Denial, fraud, and refund date helpers](operations/denial-fraud-refund-date-helpers.md) | Retrieve discrete denial, fraud-recovery, and refund derivation values from `PK73304_LOSS_SUMMARY` for non-compensable and reporting logic | Caller invokes `clsDeniedFinal.GetDeniedFinalFlag` / `clsFinalDenial.GetFinalDenialDate` / `clsFraudRecovery.GetFraudRecoveryDate` / `clsRefund.GetRefundDates` directly | `ClaimID` (plus a valuation date for final denial) | Denied-final flag; final-denial date; fraud-recovery date; refund date ranges | [BR-005](business-rules.md#br-005-loss-summary-derivations-stay-centralized-in-the-oracle-package) | — | [SQL-008](sql/sql-008-pk73304_loss_summary-get_denied_final_flag.md), [SQL-009](sql/sql-009-pk73304_loss_summary-get_final_denial_date.md), [SQL-010](sql/sql-010-pk73304_loss_summary-get_fraud_recovery_date.md), [SQL-013](sql/sql-013-pk73304_loss_summary-get_refund_dates.md) |
| [Claim financial aggregation](operations/claim-financial-aggregation.md) | Adapt claim-financial API responses (payments, reserves, recoveries) into a shape consumed by unit-stat reporting logic | Any loss-summary or valuation class calls `ClaimFinancialData.GetClaimFinancialsData` | `IDataPortalInfo`, `ClaimID` | `FinancialsData` (payments, reserves, recoveries) | None registered* | — | — |

## Process flow diagram

The following diagram shows how the seven operations relate: coverage combinations link Part A/B claims, current-loss retrieval surfaces NCCI-mapped reporting data, and the loss-summary/category/offset operations converge on the central valuation orchestration, which pulls claim-financial data and layers correction offsets before the summary is saved.

```mermaid
flowchart TD
	Start([Report cycle or caller requests unit-stat data]) --> Combo[Coverage combination management]
	Start --> Current[Current loss and NCCI record retrieval]
	Start --> Summary[Loss summary maintenance]
	Summary --> Categories[Loss category and offset maintenance]
	Start --> Valuation[Loss valuation orchestration]
	Valuation --> Basis[Load category cost basis<br>from claim reserves]
	Valuation --> Helpers[Denial, fraud, and<br>refund date helpers]
	Valuation --> Financial[Claim financial aggregation]
	Basis --> Financial
	Helpers --> Financial
	Valuation --> Offsets{Claim status = Void?}
	Offsets -->|Yes| Voided[Apply single voided-claim<br>reversal offset]
	Offsets -->|No| Stack[Layer fraud, refund,<br>third-party, ND-reimbursement offsets]
	Voided --> Categories
	Stack --> Categories
	Categories --> SaveSummary[Save loss summary<br>and child categories/offsets]
	Combo --> Summary
	Current --> Summary
	SaveSummary --> Done([Valued loss summary persisted])
```

## Database interactions

The following table summarizes which operations read from or write to the database. Per-step SQL and table citations live in each operation's detail page under `operations/`.

| Operation | SQL | Tables | Type |
| --- | --- | --- | --- |
| [Coverage combination management](operations/coverage-combination-management.md) | [SQL-001](sql/sql-001-select.md), [SQL-002](sql/sql-002-insert.md), [SQL-003](sql/sql-003-insert.md), [SQL-017](sql/sql-017-select.md), [SQL-018](sql/sql-018-update.md), [SQL-022](sql/sql-022-delete.md), [SQL-023](sql/sql-023-delete.md) | [US_COVERAGE_COMBINATION](database-tables.md#us_coverage_combination), [DUAL](database-tables.md#dual) | Read / Write |
| [Current loss and NCCI record retrieval](operations/current-loss-retrieval.md) | [SQL-007](sql/sql-007-select.md) | [us_policy_unit](database-tables.md#us_policy_unit), [us_claim_unit](database-tables.md#us_claim_unit), [cl_injury_claim](database-tables.md#cl_injury_claim), [us_unit_report](database-tables.md#us_unit_report), [us_report_batch](database-tables.md#us_report_batch), [us_reported_loss](database-tables.md#us_reported_loss) | Read |
| [Loss summary maintenance](operations/loss-summary-maintenance.md) | [SQL-006](sql/sql-006-insert.md), [SQL-011](sql/sql-011-select.md), [SQL-021](sql/sql-021-update.md), [SQL-026](sql/sql-026-delete.md) | [US_LOSS_SUMMARY](database-tables.md#us_loss_summary), [DUAL](database-tables.md#dual) | Read / Write |
| [Loss category and offset maintenance](operations/loss-category-offset-maintenance.md) | [SQL-004](sql/sql-004-insert.md), [SQL-005](sql/sql-005-insert.md), [SQL-019](sql/sql-019-update.md), [SQL-020](sql/sql-020-update.md), [SQL-024](sql/sql-024-delete.md), [SQL-025](sql/sql-025-delete.md) | [US_LOSS_CATEGORY](database-tables.md#us_loss_category), [US_LOSS_CATEGORY_OFFSET](database-tables.md#us_loss_category_offset) | Read / Write |
| [Loss valuation orchestration](operations/loss-valuation-orchestration.md) | [SQL-012](sql/sql-012-pk73304_loss_summary-get_final_denial_dates.md), [SQL-014](sql/sql-014-pk73304_loss_summary-get_thirdparty_prediction.md), [SQL-015](sql/sql-015-pk73304_loss_summary-get_thirdparty_prediction.md), [SQL-016](sql/sql-016-select.md) | — | Read |
| [Denial, fraud, and refund date helpers](operations/denial-fraud-refund-date-helpers.md) | [SQL-008](sql/sql-008-pk73304_loss_summary-get_denied_final_flag.md), [SQL-009](sql/sql-009-pk73304_loss_summary-get_final_denial_date.md), [SQL-010](sql/sql-010-pk73304_loss_summary-get_fraud_recovery_date.md), [SQL-013](sql/sql-013-pk73304_loss_summary-get_refund_dates.md) | — | Read |

## Inherited operations and processes

Operations in this section originate from base classes or services provided by dependency framework libraries. They are inherited or delegated, not implemented in this library.

### From `clsBusinessBase` / `clsBusinessCollectionBase` (`SAIF.BOF.Framework`)

| Operation | Intent | Provided by | Origin | Embedded in |
| --- | --- | --- | --- | --- |
| Business object edit and save lifecycle | Provide BOF create, retrieve, update, delete orchestration, dirty-tracking, and child-save cascade for business objects.* | `clsBusinessBase`, `clsBusinessCollectionBase` | `SAIF.BOF.Framework` | [Coverage combination management](operations/coverage-combination-management.md), [Current loss and NCCI record retrieval](operations/current-loss-retrieval.md), [Loss summary maintenance](operations/loss-summary-maintenance.md), [Loss category and offset maintenance](operations/loss-category-offset-maintenance.md) |

> **Origin**: This flow is defined in `SAIF.BOF.Framework` / `clsBusinessBase` and inherited by this library's business objects. `SAIF.BOF.Framework` is documented in the previous format, so no per-operation page exists.

### From `clsLossBase` (`SAIF.Business.UnitStat`)

| Operation | Intent | Provided by | Origin | Embedded in |
| --- | --- | --- | --- | --- |
| Calculate derived reporting values | Compute reserve, reportability, and copy helpers shared by DCI and Unit Stat NCCI loss records.* | `clsLossBase` | `SAIF.Business.UnitStat` | [Current loss and NCCI record retrieval](operations/current-loss-retrieval.md) |

> **Origin**: This logic is defined in `SAIF.Business.UnitStat` / `clsLossBase` and inherited by `clsNCCILossRecord`. That library is documented in the previous format, so no per-operation page exists; see [Calculate derived reporting values](../saif-business-unitstat/operations/derived-reporting-calculations.md) in the `SAIF.Business.UnitStat` documentation set.

## Failure and edge-case behavior
- A rows-affected value other than `1` on insert, update, or delete is treated as a contention or insert failure across every CRUD operation in this library, and is added as an error message rather than raised as an exception.
- `ClaimFinancialData.GetClaimFinancialsData` silently swallows any API exception and returns an empty `FinancialsData`, so downstream offset calculations see zero payments/reserves/recoveries rather than a propagated error.*
- Several offset-builder classes (`clsFraudRecovery`) contain an always-true early-return guard on `clmData.PolicyNumber`, which makes their full/partial fraudulent-offset logic effectively unreachable as written.*
- `AddBusinessRules()` is empty across all business objects in this library; no framework-level property validation rules are registered anywhere in this library.*

## Related documentation
- [Index](index.md)
- [Overview](overview.md)
- [Architecture](architecture.md)
- [Dependencies](dependencies.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\clsCurrentLossCollection.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\clsLossSummaryCollection.vb`
- `Business\SAIF.Business.UnitStat.Claim\Loss Summary\clsLossCategory.vb`
- `Business\SAIF.Business.UnitStat.Claim\Loss Summary\clsLossCategoryCollection.vb`
- `Business\SAIF.Business.UnitStat.Claim\Loss Summary\clsLossCategoryOffset.vb`
- `Business\SAIF.Business.UnitStat.Claim\Loss Summary\clsLossCategoryOffsetCollection.vb`
- `Business\SAIF.Business.UnitStat.Claim\Loss Summary\clsOffsetTypeCode.vb`
- `Business\SAIF.Business.UnitStat.Claim\Loss Summary\clsOffsetTypeCodeCollection.vb`
- `Business\SAIF.Business.UnitStat.Claim\Loss Summary\clsLossValuation.vb`
- `Business\SAIF.Business.UnitStat.Claim\Loss Summary\clsDeniedFinal.vb`
- `Business\SAIF.Business.UnitStat.Claim\Loss Summary\clsFinalDenial.vb`
- `Business\SAIF.Business.UnitStat.Claim\Loss Summary\clsFraudRecovery.vb`
- `Business\SAIF.Business.UnitStat.Claim\Loss Summary\clsRefund.vb`
- `Business\SAIF.Business.UnitStat.Claim\Loss Summary\clsThirdPartyPrediction.vb`
- `Business\SAIF.Business.UnitStat.Claim\Loss Summary\clsNDReimbursement.vb`
- `Business\SAIF.Business.UnitStat.Claim\Loss Summary\clsVoidedClaimOffsets.vb`
- `Business\SAIF.Business.UnitStat.Claim\ClaimFinancialData.vb`
- `Business\SAIF.Business.UnitStat.Claim\ClaimFinancials.vb`

## Stored procedure operations

Operations implemented in Oracle stored procedures referenced by this library.

| Operation | Description | Source | Link |
| --- | --- | --- | --- |
| Loss-summary package derivations | Package-backed retrieval, save, or derivation logic used by loss valuation and the denial/fraud/refund helpers. | `PK73304_LOSS_SUMMARY` | [Details](procedures/pk73304-loss-summary.md) |
