SAIF.Business.UnitStat business rules
This page captures business rules enforced by this library.
BR-US-001: Policy unit sequence number must be greater than zero
Field
Value
Statement
Policy unit sequence number must be greater than zero
Trigger
Validation check on save
Enforcement
clsPolicyUnit.ValidPolicyUnitSeqNum (AddBusinessRules)
Outcome
Error: "Invalid PolicyUnitSeqNum."
Confidence
Verified
Tables
US_POLICY_UNIT
SQL
SQL-004 , SQL-029
Source
Business\SAIF.Business.UnitStat\clsPolicyUnit.vb
BR-US-002: Claim unit policy unit sequence number must be greater than zero
Field
Value
Statement
Claim unit policy unit sequence number must be greater than zero
Trigger
Validation check on save
Enforcement
clsClaimUnit.ValidPolicyUnitSeqNum
Outcome
Error: "Invalid PolicyUnitSeqNum."
Confidence
Verified
Tables
US_CLAIM_UNIT
SQL
SQL-003 , SQL-028
Source
Business\SAIF.Business.UnitStat\clsClaimUnit.vb
BR-US-003: Claim unit claim ID must be greater than zero
Field
Value
Statement
Claim unit claim ID must be greater than zero
Trigger
Validation check on save
Enforcement
clsClaimUnit.ValidClaimID
Outcome
Error: "Invalid Claim ID."
Confidence
Verified
Tables
US_CLAIM_UNIT
SQL
SQL-003 , SQL-028
Source
Business\SAIF.Business.UnitStat\clsClaimUnit.vb
BR-US-004: Audit condition description must have non-zero length
Field
Value
Statement
Audit condition description must have non-zero length
Trigger
Validation check on save
Enforcement
clsAuditCondition.ValidAuditDescription
Outcome
Error: "Invalid Audit Description."
Confidence
Verified
Tables
US_AUDIT_CONDITION
SQL
SQL-001
Source
Business\SAIF.Business.UnitStat\clsAuditCondition.vb
BR-US-005: Audit condition history description must have non-zero length
Field
Value
Statement
Audit condition history description must have non-zero length
Trigger
Validation check on save
Enforcement
clsAuditConditionHistory.ValidAuditDescription
Outcome
Error: "Invalid Audit Description."
Confidence
Verified
Tables
US_AUDIT_CONDITION_HISTORY
SQL
SQL-002 , SQL-026
Source
Business\SAIF.Business.UnitStat\clsAuditConditionHistory.vb
BR-US-006: A policy unit retrieved by natural key must be active (ACTIVE_UNIT_FLAG = 'Y')
Field
Value
Statement
A policy unit retrieved by natural key must be active (ACTIVE_UNIT_FLAG = 'Y')
Trigger
Retrieve by natural key
Enforcement
clsPolicyUnit.Criteria.SQLWherePolicyUnit
Outcome
Inactive policy units are not returned
Confidence
Verified
Tables
US_POLICY_UNIT
SQL
SQL-021
Source
Business\SAIF.Business.UnitStat\clsPolicyUnit.vb
BR-US-007: A policy unit retrieved by injury date must be active
Field
Value
Statement
A policy unit retrieved by injury date must be active
Trigger
Retrieve by injury date
Enforcement
clsPolicyUnit.Criteria.SQLWhereRetrieveDate
Outcome
Inactive units excluded from date-range lookup
Confidence
Verified
Tables
US_POLICY_UNIT
SQL
SQL-020
Source
Business\SAIF.Business.UnitStat\clsPolicyUnit.vb
BR-US-008: A policy unit is reportable only if the process date is on or before the last valuation date
Field
Value
Statement
A policy unit is reportable only if the process date is on or before the last valuation date
Trigger
Reportability check
Enforcement
clsPolicyUnit.IsReportable(processDate)
Outcome
Returns False when process date exceeds last valuation period end
Confidence
Verified
Source
Business\SAIF.Business.UnitStat\clsPolicyUnit.vb
BR-US-009: An original report exists when UnitValuationNumber > 0 and UnitValuationNumber ≠ LastReportedValuationNumber
Field
Value
Statement
An original report exists when UnitValuationNumber > 0 and UnitValuationNumber ≠ LastReportedValuationNumber
Trigger
Report type determination
Enforcement
clsPolicyUnit.IsOriginalReport
Outcome
Identifies whether a report cycle produces new data
Confidence
Verified
Tables
US_POLICY_UNIT
SQL
SQL-020 , SQL-021 , SQL-022
Source
Business\SAIF.Business.UnitStat\clsPolicyUnit.vb
BR-US-010: A first original report is one that is an original report AND has UnitValuationNumber = 1
Field
Value
Statement
A first original report is one that is an original report AND has UnitValuationNumber = 1
Trigger
First-report check
Enforcement
clsPolicyUnit.IsOriginalFirstReport
Outcome
Distinguishes first report from subsequent reports
Confidence
Verified
Tables
US_POLICY_UNIT
SQL
SQL-020 , SQL-021 , SQL-022
Source
Business\SAIF.Business.UnitStat\clsPolicyUnit.vb
BR-US-011: A cycle report is one with UnitValuationNumber > 1
Field
Value
Statement
A cycle report is one with UnitValuationNumber > 1
Trigger
Cycle report check
Enforcement
clsPolicyUnit.IsCycleReport
Outcome
Does not include correction reports
Confidence
Verified
Tables
US_POLICY_UNIT
SQL
SQL-020 , SQL-021 , SQL-022
Source
Business\SAIF.Business.UnitStat\clsPolicyUnit.vb
BR-US-012: Activating a policy unit that has been previously reported must also set correction flags
Field
Value
Statement
Activating a policy unit that has been previously reported must also set correction flags
Trigger
Activation
Enforcement
clsPolicyUnit.ActivatePolicyUnit()
Outcome
If IsReported, sets ExposureCorrectionFlag = 'Y' and LossCorrectionFlag = 'Y'
Confidence
Verified
Tables
US_POLICY_UNIT
SQL
SQL-029
Source
Business\SAIF.Business.UnitStat\clsPolicyUnit.vb
BR-US-013: Non-compensable rules apply only to policy units effective on or after 2013-01-01
Field
Value
Statement
Non-compensable rules apply only to policy units effective on or after 2013-01-01
Trigger
NCCI rule change (2013)
Enforcement
clsPolicyUnit.IsSubjectToNonCompensableRules; constant NON_COMPENSABLE_START_DATE = #1/1/2013#
Outcome
Units with earlier effective dates are exempt
Confidence
Verified
Tables
US_POLICY_UNIT
SQL
SQL-015
Source
Business\SAIF.Business.UnitStat\clsPolicyUnit.vb
BR-US-014: Active unit flag defaults to 'Y' when not set
Field
Value
Statement
Active unit flag defaults to 'Y' when not set
Trigger
New object creation
Enforcement
clsPolicyUnit.ActiveUnitFlag getter (If(m_ActiveUnitFlag = StringInitialValue, "Y", ...))
Outcome
Prevents unintentional inactive state on new units
Confidence
Verified
Tables
US_POLICY_UNIT
SQL
SQL-004
Source
Business\SAIF.Business.UnitStat\clsPolicyUnit.vb
BR-US-015: LossEditFlag and ExposureEditFlag default to 'Y' when not set
Field
Value
Statement
LossEditFlag and ExposureEditFlag default to 'Y' when not set
Trigger
New object creation
Enforcement
clsPolicyUnit.LossEditFlag / ExposureEditFlag getters
Outcome
Ensures edits are required by default
Confidence
Verified
Tables
US_POLICY_UNIT
SQL
SQL-004
Source
Business\SAIF.Business.UnitStat\clsPolicyUnit.vb
BR-US-016: Correction flags (UnitCorrectionFlag, ExposureCorrectionFlag, LossCorrectionFlag) default to 'N'
Field
Value
Statement
Correction flags (UnitCorrectionFlag, ExposureCorrectionFlag, LossCorrectionFlag) default to 'N'
Trigger
New object creation
Enforcement
Respective getters with If(value = StringInitialValue, "N", ...)
Outcome
Prevents spurious corrections
Confidence
Verified
Tables
US_POLICY_UNIT
SQL
SQL-004 , SQL-029
Source
Business\SAIF.Business.UnitStat\clsPolicyUnit.vb
BR-US-017: HistoricalFlag defaults to 'N' when not set
Field
Value
Statement
HistoricalFlag defaults to 'N' when not set
Trigger
New object creation
Enforcement
clsPolicyUnit.HistoricalFlag getter
Outcome
Prevents units from being treated as historical by default
Confidence
Verified
Tables
US_POLICY_UNIT
SQL
SQL-004
Source
Business\SAIF.Business.UnitStat\clsPolicyUnit.vb
BR-US-018: ActiveUnitFlag for claim units defaults to 'Y'
Field
Value
Statement
ActiveUnitFlag for claim units defaults to 'Y'
Trigger
New object creation
Enforcement
clsClaimUnit member variable initializer Private m_ActiveUnitFlag As String = "Y"
Outcome
Claims default to active
Confidence
Verified
Tables
US_CLAIM_UNIT
SQL
SQL-003
Source
Business\SAIF.Business.UnitStat\clsClaimUnit.vb
BR-US-019: A claim unit active lookup filters to ACTIVE_UNIT_FLAG = 'Y'
Field
Value
Statement
A claim unit active lookup filters to ACTIVE_UNIT_FLAG = 'Y'
Trigger
Retrieve by claim ID
Enforcement
clsClaimUnit.Criteria.SQLWhereClaimID
Outcome
Only active claim-unit associations are returned when retrieving by claim
Confidence
Verified
Tables
US_CLAIM_UNIT
SQL
SQL-012
Source
Business\SAIF.Business.UnitStat\clsClaimUnit.vb
BR-US-020: Database contention on update or delete is detected by checking RowsAffected <> 1
Field
Value
Statement
Database contention on update or delete is detected by checking RowsAffected <> 1
Trigger
After insert/update/delete
Enforcement
After* methods in clsPolicyUnit, clsClaimUnit, clsAuditConditionHistory
Outcome
Adds error message clsConstants.Messages.DBContentionError
Confidence
Verified
Tables
US_POLICY_UNIT , US_CLAIM_UNIT , US_AUDIT_CONDITION_HISTORY
SQL
SQL-026 , SQL-028 , SQL-029 , SQL-034 , SQL-035
Source
Business\SAIF.Business.UnitStat\clsPolicyUnit.vb
BR-US-021: A loss is reportable if it has claim costs (Incurred Medical > 0 or Incurred Indemnity > 0) OR is a catastrophe claim
Field
Value
Statement
A loss is reportable if it has claim costs (Incurred Medical > 0 or Incurred Indemnity > 0) OR is a catastrophe claim
Trigger
Reportability determination
Enforcement
clsLossBase.IsReportable
Outcome
Losses with zero cost but catastrophe number are still reportable
Confidence
Verified
Source
Business\SAIF.Business.UnitStat\clsLossBase.vb
BR-US-022: Outstanding reserves equal incurred amounts minus paid amounts
Field
Value
Statement
Outstanding reserves equal incurred amounts minus paid amounts
Trigger
Reserves calculation
Enforcement
clsLossBase.OutstandingReserves
Outcome
(IncurredMedical + IncurredIndemnity) − (PaidMedical + PaidIndemnity)
Confidence
Verified
Source
Business\SAIF.Business.UnitStat\clsLossBase.vb
BR-US-023: A catastrophe claim has a CatastropheNumber ≠ "00"
Field
Value
Statement
A catastrophe claim has a CatastropheNumber ≠ "00"
Trigger
Catastrophe identification
Enforcement
clsLossBase.IsCatastrophe
Outcome
Distinguishes catastrophe losses for grouping/reporting
Confidence
Verified
Source
Business\SAIF.Business.UnitStat\clsLossBase.vb
BR-US-024: A policy unit has errors when its audit condition collection contains conditions with non-null exposure summary seq num AND non-null claim ID
Field
Value
Statement
A policy unit has errors when its audit condition collection contains conditions with non-null exposure summary seq num AND non-null claim ID
Trigger
Error state
Enforcement
clsAuditConditionCollection.HasPolicyUnitErrors
Outcome
Used to block reporting of units with unresolved errors
Confidence
Verified
Tables
US_AUDIT_CONDITION
SQL
SQL-006 , SQL-007 , SQL-008
Source
Business\SAIF.Business.UnitStat\clsAuditConditionCollection.vb
BR-US-025: Units within 155 months of the current quarter start date are archived; units more than 30 years old are deleted
Field
Value
Statement
Units within 155 months of the current quarter start date are archived; units more than 30 years old are deleted
Trigger
Retention policy
Enforcement
Extensions.UnitArchiveDate() / Extensions.UnitDeleteDate()
Outcome
Derived dates used externally to schedule archiving and deletion
Confidence
Verified
Source
Business\SAIF.Business.UnitStat\Extensions.vb
BR-US-026: LossEditFlag default is "Y" (set in member variable initializer)
Field
Value
Statement
LossEditFlag default is "Y" (set in member variable initializer)
Trigger
Policy unit creation (26-Aug-2011 maintenance)
Enforcement
clsPolicyUnit member variable m_LossEditFlag = StringInitialValue + getter default
Outcome
Ensures loss edits are required by default on all new units
Confidence
Verified
Tables
US_POLICY_UNIT
SQL
SQL-004
Source
Business\SAIF.Business.UnitStat\clsPolicyUnit.vb
BR-US-027: Denial-final checks and fully-fraudulent checks only apply to policy units effective on or after 2013-01-01
Field
Value
Statement
Denial-final checks and fully-fraudulent checks only apply to policy units effective on or after 2013-01-01
Trigger
Per-claim reporting
Enforcement
clsClaimUnit.IsDeniedFinal / IsFullyFraudulent remarks
Outcome
Based on NCCI non-compensable rule change
Confidence
Verified
Tables
CL_INJURY_CLAIM , US_CLAIM_UNIT , US_POLICY_UNIT
SQL
SQL-014 , SQL-015
Source
Business\SAIF.Business.UnitStat\clsClaimUnit.vb
BR-US-028: ValueCode for claim units defaults to 'N'
Field
Value
Statement
ValueCode for claim units defaults to 'N'
Trigger
New object creation
Enforcement
clsClaimUnit member variable initializer Private m_ValueCode As String = "N"
Outcome
New claim units are valued 'N' unless the caller explicitly sets a different value code
Confidence
Verified
Tables
US_CLAIM_UNIT
SQL
SQL-003
Source
Business\SAIF.Business.UnitStat\clsClaimUnit.vb
BR-US-029: ReportedFatalFlag and ReportedClosedFlag for claim units default to 'N'
Field
Value
Statement
ReportedFatalFlag and ReportedClosedFlag for claim units default to 'N'
Trigger
New object creation
Enforcement
clsClaimUnit member variable initializers Private m_ReportedFatalFlag As String = "N" and Private m_ReportedClosedFlag As String = "N"
Outcome
A new claim unit is assumed not previously reported as fatal and not previously reported as closed until a report cycle sets otherwise
Confidence
Verified
Tables
US_CLAIM_UNIT
SQL
SQL-003
Source
Business\SAIF.Business.UnitStat\clsClaimUnit.vb
BR-US-030: PreferredWorkerFlag for claim units defaults to 'N'
Field
Value
Statement
PreferredWorkerFlag for claim units defaults to 'N'
Trigger
New object creation
Enforcement
clsClaimUnit member variable initializer Private m_PreferredWorkerFlag As String = "N"
Outcome
New claim units are not flagged as preferred-worker claims unless explicitly set
Confidence
Verified
Tables
US_CLAIM_UNIT
SQL
SQL-003
Source
Business\SAIF.Business.UnitStat\clsClaimUnit.vb
Inherited business rules
Rules in this section originate from BOF framework base classes inherited by the library's business objects and collections.
From clsBusinessBase (SAIF.BOF.Framework)
INH-US-001: A business object is savable only when it is dirty and valid
Field
Value
Statement
A business object is savable only when it is dirty and valid
Trigger
Save-enable or save-readiness evaluation
Enforcement
clsBusinessBase.IsSavable
Outcome
IsSavable returns True only when IsDirty AndAlso IsValid
Origin
SAIF.BOF.Framework — clsBusinessBase
Source
Legacy\BusinessObjectFramework\clsBusinessBase.vb
INH-US-002: Cancelling an edit restores the previous object state and reapplies business rules
Field
Value
Statement
Cancelling an edit restores the previous object state and reapplies business rules
Trigger
CancelEdit()
Enforcement
clsBusinessBase.CancelEdit
Outcome
The framework undoes pending changes, re-adds business rules, and raises modification-state updates
Origin
SAIF.BOF.Framework — clsBusinessBase
Source
Legacy\BusinessObjectFramework\clsBusinessBase.vb
From clsBusinessCollectionBase (SAIF.BOF.Framework)
INH-US-003: Managed collection save persists deleted children before active children
Field
Value
Statement
Managed collection save persists deleted children before active children
Trigger
Save() or SaveChild() on a managed collection
Enforcement
clsBusinessCollectionBase.Save / SaveChild
Outcome
The framework saves deleted child items first, then active child items, clears the deleted list, and completes the collection save
Origin
SAIF.BOF.Framework — clsBusinessCollectionBase
Source
Legacy\BusinessObjectFramework\clsBusinessCollectionBase.vb
Note: Statements marked with * are inferred from code behavior rather than explicit documentation or comments.
Sources
Business\SAIF.Business.UnitStat\clsPolicyUnit.vb
Business\SAIF.Business.UnitStat\clsClaimUnit.vb
Business\SAIF.Business.UnitStat\clsAuditCondition.vb
Business\SAIF.Business.UnitStat\clsAuditConditionCollection.vb
Business\SAIF.Business.UnitStat\clsAuditConditionHistory.vb
Business\SAIF.Business.UnitStat\clsLossBase.vb
Business\SAIF.Business.UnitStat\Extensions.vb
Business\SAIF.Business.UnitStat\Constants.vb