---
title: clsPolicyUnit
summary: API reference for clsPolicyUnit.
status: draft
owner: SAIF
last_reviewed: 2026-07-24
library: SAIF.Business.UnitStat
reference_type: package
---

# clsPolicyUnit

Policy-level reporting unit that represents one NCCI unit-stat reporting period for a policy.

## Purpose

- Represent the root unit-stat aggregate keyed by policy number, policy-period effective date, and unit effective date.
- Own lazy-loaded claim-unit and audit-condition child collections.

## Context

- Namespace: `SAIF.Business.UnitStat`
- Assembly/package: `SAIF.Business.UnitStat` (distributed as NuGet package `SAIF.BOF.Business.UnitStat`)

## Public members

| Member | Signature | Purpose |
| --- | --- | --- |
| `PolicyUnitSeqNum` | `Public ReadOnly Property PolicyUnitSeqNum() As Decimal` | Gets policy unit seq num. |
| `PolicyNumber` | `Public ReadOnly Property PolicyNumber() As Decimal` | Gets policy number. |
| `PolicyPeriodEffectiveDate` | `Public ReadOnly Property PolicyPeriodEffectiveDate() As Date` | Gets policy period effective date. |
| `UnitEffectiveDate` | `Public ReadOnly Property UnitEffectiveDate() As Date` | Gets unit effective date. |
| `UnitExpirationDate` | `Public Property UnitExpirationDate() As Date` | Gets or sets unit expiration date. |
| `PolicyPeriodExpirationDate` | `Public Property PolicyPeriodExpirationDate() As Date` | Gets or sets policy period expiration date. |
| `PolicyCancelFlag` | `Public Property PolicyCancelFlag() As String` | Gets or sets policy cancel flag. |
| `NCCIPolicyNumber` | `Public Property NCCIPolicyNumber() As String` | Gets or sets nccipolicy number. |
| `ActiveUnitFlag` | `Public Property ActiveUnitFlag() As String` | Gets or sets active unit flag. |
| `LossEditFlag` | `Public Property LossEditFlag() As String` | Gets or sets loss edit flag. |
| `ExposureEditFlag` | `Public Property ExposureEditFlag() As String` | Gets or sets exposure edit flag. |
| `UnitCorrectionFlag` | `Public Property UnitCorrectionFlag() As String` | Gets or sets unit correction flag. |
| `ExposureCorrectionFlag` | `Public Property ExposureCorrectionFlag() As String` | Gets or sets exposure correction flag. |
| `LossCorrectionFlag` | `Public Property LossCorrectionFlag() As String` | Gets or sets loss correction flag. |
| `UnitValuationNumber` | `Public Property UnitValuationNumber() As Decimal` | Gets or sets unit valuation number. |
| `LastReportedValuationNumber` | `Public Property LastReportedValuationNumber() As Decimal` | Gets or sets last reported valuation number. |
| `LastReportedValuationDate` | `Public ReadOnly Property LastReportedValuationDate() As Date` | Gets last reported valuation date. |
| `UpdateUser` | `Public Property UpdateUser() As String` | Gets or sets update user. |
| `UpdateDate` | `Public Property UpdateDate() As Date` | Gets or sets update date. |
| `UpdateNumber` | `Public Property UpdateNumber() As Decimal` | Gets or sets update number. |
| `HistoricalFlag` | `Public Property HistoricalFlag() As String` | Gets or sets historical flag. |
| `PremiumSetID` | `Public Property PremiumSetID() As Decimal` | Gets or sets premium set id. |
| `AdhocBatchFlag` | `Public ReadOnly Property AdhocBatchFlag() As String` | Gets adhoc batch flag. |
| `IsPolicyCancelled` | `Public ReadOnly Property IsPolicyCancelled() As Boolean` | Indicates whether policy cancelled. |
| `IsActive` | `Public ReadOnly Property IsActive() As Boolean` | Indicates whether active. |
| `IsInactive` | `Public ReadOnly Property IsInactive() As Boolean` | Indicates whether inactive. |
| `IsReportable` | `Public ReadOnly Property IsReportable(ByVal inProcessDate As Date) As Boolean` | Indicates whether reportable. |
| `IsOriginalReport` | `Public ReadOnly Property IsOriginalReport() As Boolean` | Indicates whether original report. |
| `IsOriginalFirstReport` | `Public ReadOnly Property IsOriginalFirstReport() As Boolean` | Indicates whether original first report. |
| `IsCycleReport` | `Public ReadOnly Property IsCycleReport() As Boolean` | Indicates whether cycle report. |
| `IsCorectionReport` | `Public ReadOnly Property IsCorectionReport() As Boolean` | Indicates whether corection report. |
| `IsReported` | `Public ReadOnly Property IsReported() As Boolean` | Indicates whether reported. |
| `IsUnitCorrection` | `Public ReadOnly Property IsUnitCorrection() As Boolean` | Indicates whether unit correction. |
| `IsExposureCorrection` | `Public ReadOnly Property IsExposureCorrection() As Boolean` | Indicates whether exposure correction. |
| `IsLossCorrection` | `Public ReadOnly Property IsLossCorrection() As Boolean` | Indicates whether loss correction. |
| `IsExposureEditRequired` | `Public ReadOnly Property IsExposureEditRequired() As Boolean` | Indicates whether exposure edit required. |
| `IsLossEditRequired` | `Public ReadOnly Property IsLossEditRequired() As Boolean` | Indicates whether loss edit required. |
| `IsHistorical` | `Public ReadOnly Property IsHistorical() As Boolean` | Indicates whether historical. |
| `IsNotHistorical` | `Public ReadOnly Property IsNotHistorical() As Boolean` | Indicates whether not historical. |
| `IsAdhocBatch` | `Public ReadOnly Property IsAdhocBatch() As Boolean` | Indicates whether adhoc batch. |
| `ClaimUnits` | `Public ReadOnly Property ClaimUnits() As clsClaimUnitCollection` | Gets claim units. |
| `AuditConditions` | `Public ReadOnly Property AuditConditions() As clsAuditConditionCollection` | Gets audit conditions. |
| `HasPolicyUnitErrors` | `Public ReadOnly Property HasPolicyUnitErrors() As Boolean` | Indicates whether policy unit errors. |
| `HasExposureErrors` | `Public ReadOnly Property HasExposureErrors() As Boolean` | Indicates whether exposure errors. |
| `HasLossErrors` | `Public ReadOnly Property HasLossErrors() As Boolean` | Indicates whether loss errors. |
| `IsSubjectToNonCompensableRules` | `Public ReadOnly Property IsSubjectToNonCompensableRules() As Boolean` | Indicates whether subject to non compensable rules. |
| `IsNotSubjectToNonCompensableRules` | `Public ReadOnly Property IsNotSubjectToNonCompensableRules() As Boolean` | Indicates whether not subject to non compensable rules. |
| `IsValid` | `Public Overrides ReadOnly Property IsValid() As Boolean` | Indicates whether valid. |
| `IsDirty` | `Public Overrides ReadOnly Property IsDirty() As Boolean` | Indicates whether dirty. |
| `Save` | `Public Overrides Function Save() As Boolean` | Executes the member operation. |
| `SaveChild` | `Public Overrides Function SaveChild() As Boolean` | Executes the member operation. |
| `SaveObject` | `Public Function SaveObject() As Boolean` | Executes the member operation. |
| `SetUnitValuationNumberNull` | `Public Sub SetUnitValuationNumberNull()` | Sets unit valuation number to the framework null sentinel value. |
| `SetPremiumSetIdNull` | `Public Sub SetPremiumSetIdNull()` | Sets premium set id to the framework null sentinel value. |
| `SetLastReportedValuationNumberNull` | `Public Sub SetLastReportedValuationNumberNull()` | Sets last reported valuation number to the framework null sentinel value. |
| `IsUnitValuationNumberNull` | `Public Function IsUnitValuationNumberNull() As Boolean` | Indicates whether unit valuation number currently holds the framework null sentinel value. |
| `IsPremiumSetIDNull` | `Public Function IsPremiumSetIDNull() As Boolean` | Indicates whether premium set id currently holds the framework null sentinel value. |
| `IsLastReportedValuationNumberNull` | `Public Function IsLastReportedValuationNumberNull() As Boolean` | Indicates whether last reported valuation number currently holds the framework null sentinel value. |
| `Equals` | `Public Overloads Shared Function Equals(ByVal objA As Object, ByVal objB As Object) As Boolean` | Executes the member operation. |
| `Equals` | `Public Overloads Overrides Function Equals(ByVal inObject As Object) As Boolean` | Executes the member operation. |
| `Equals` | `Public Overloads Function Equals(ByVal inObject As clsPolicyUnit) As Boolean` | Executes the member operation. |
| `GetHashCode` | `Public Overrides Function GetHashCode() As Integer` | Retrieves hash code. |
| `ToString` | `Public Overrides Function ToString() As String` | Executes the member operation. |
| `NewPolicyUnit` | `Public Shared Function NewPolicyUnit(ByVal inDataPortal As IDataPortalInfo, ByVal inPolicyNumber As Decimal, ByVal inPolicyPeriodEffectiveDate As Date, ByVal inUnitEffectiveDate As Date) As clsPolicyUnit` | Creates a new policy unit instance. |
| `GetPolicyUnit` | `Public Shared Function GetPolicyUnit(ByVal inDataportal As IDataPortalInfo, ByVal inPolicyUnitSeqNum As Decimal) As clsPolicyUnit` | Retrieves policy unit. |
| `GetPolicyUnit` | `Public Shared Function GetPolicyUnit(ByVal inDataPortal As IDataPortalInfo, ByVal inPolicyNumber As Decimal, ByVal inPolicyPeriodEffectiveDate As Date, ByVal inUnitEffectiveDate As Date) As clsPolicyUnit` | Retrieves policy unit. |
| `GetPolicyUnit` | `Public Shared Function GetPolicyUnit(ByVal inDataPortal As IDataPortalInfo, ByVal inPolicyNumber As Decimal, ByVal inRetrieveDate As Date) As clsPolicyUnit` | Retrieves policy unit. |
| `ActivatePolicyUnit` | `Public Sub ActivatePolicyUnit()` | Executes the member operation. |
| `InactivatePolicyUnit` | `Public Sub InactivatePolicyUnit()` | Executes the member operation. |
| `PolicyUnitSeqNum` | `Public Property PolicyUnitSeqNum() As Decimal` | Gets or sets policy unit seq num. |
| `PolicyNumber` | `Public Property PolicyNumber() As Decimal` | Gets or sets policy number. |
| `PolicyPeriodEffectiveDate` | `Public Property PolicyPeriodEffectiveDate() As Date` | Gets or sets policy period effective date. |
| `UnitEffectiveDate` | `Public Property UnitEffectiveDate() As Date` | Gets or sets unit effective date. |
| `RetrieveDate` | `Public Property RetrieveDate() As Date` | Gets or sets retrieve date. |
| `RetrieveType` | `Public Property RetrieveType() As RetrieveTypes` | Gets or sets retrieve type. |
| `IsRetrieveBySequence` | `Public ReadOnly Property IsRetrieveBySequence() As Boolean` | Indicates whether retrieve by sequence. |
| `IsRetrieveByPolicyUnit` | `Public ReadOnly Property IsRetrieveByPolicyUnit() As Boolean` | Indicates whether retrieve by policy unit. |
| `IsRetrieveByDate` | `Public ReadOnly Property IsRetrieveByDate() As Boolean` | Indicates whether retrieve by date. |
| `New` | `Public Sub New(ByVal inDataPortalInfo As IDataPortalInfo)` | Creates a new  instance. |
| `New` | `Public Sub New(ByVal inDataPortalInfo As IDataPortalInfo, ByVal inPolicyUnitSeqNum As Decimal)` | Creates a new  instance. |
| `New` | `Public Sub New(ByVal inDataPortalInfo As IDataPortalInfo, ByVal inPolicyNumber As Decimal, ByVal inPolicyPeriodEffectiveDate As Date, ByVal inUnitEffectiveDate As Date)` | Creates a new  instance. |
| `New` | `Public Sub New(ByVal inDataPortalInfo As IDataPortalInfo, ByVal inPolicyNumber As Decimal, ByVal inRetrieveDate As Date)` | Creates a new  instance. |

## Inherited public members

Members in this section are inherited from `clsBusinessBase` in `SAIF.BOF.Framework`. They are available on this type through inheritance.

| Member | Signature | Purpose | Origin |
| --- | --- | --- | --- |
| `MyGuid` | `ReadOnly Property MyGuid() As String` | Gets the framework GUID assigned to the object. | `SAIF.BOF.Framework — clsBusinessBase` |
| `IsNew` | `ReadOnly Property IsNew() As Boolean` | Indicates whether the object has not yet been persisted. | `SAIF.BOF.Framework — clsBusinessBase` |
| `IsDeleted` | `ReadOnly Property IsDeleted() As Boolean` | Indicates whether the object is marked for deletion. | `SAIF.BOF.Framework — clsBusinessBase` |
| `IsSavable` | `ReadOnly Property IsSavable() As Boolean` | Indicates whether the object is both dirty and valid. | `SAIF.BOF.Framework — clsBusinessBase` |
| `BeginEdit` | `Sub BeginEdit()` | Begins an editable-object snapshot. | `SAIF.BOF.Framework — clsBusinessBase` |
| `CancelEdit` | `Sub CancelEdit()` | Restores the prior editable-object snapshot and reapplies rules. | `SAIF.BOF.Framework — clsBusinessBase` |
| `ApplyEdit` | `Sub ApplyEdit()` | Commits the current editable-object snapshot. | `SAIF.BOF.Framework — clsBusinessBase` |
| `Delete` | `Sub Delete()` | Marks the object for deletion. | `SAIF.BOF.Framework — clsBusinessBase` |
| `Clone` | `Function Clone() As Object` | Creates a clone of the object. | `SAIF.BOF.Framework — clsBusinessBase` |
| `Rules` | `ReadOnly Property Rules() As clsRulesManager` | Gets the rules manager attached to the object. | `SAIF.BOF.Framework — clsBusinessBase` |
| `ErrorCount` | `ReadOnly Property ErrorCount() As Integer` | Gets the current validation error count. | `SAIF.BOF.Framework — clsBusinessBase` |
| `ErrorMessages` | `ReadOnly Property ErrorMessages() As String()` | Gets the current validation error messages. | `SAIF.BOF.Framework — clsBusinessBase` |
| `WarningCount` | `ReadOnly Property WarningCount() As Integer` | Gets the current validation warning count. | `SAIF.BOF.Framework — clsBusinessBase` |
| `WarningMessages` | `ReadOnly Property WarningMessages() As String()` | Gets the current validation warning messages. | `SAIF.BOF.Framework — clsBusinessBase` |
| `InformationalCount` | `ReadOnly Property InformationalCount() As Integer` | Gets the current informational rule count. | `SAIF.BOF.Framework — clsBusinessBase` |
| `InformationalMessages` | `ReadOnly Property InformationalMessages() As String()` | Gets the current informational rule messages. | `SAIF.BOF.Framework — clsBusinessBase` |
| `XMLElementName` | `Property XMLElementName() As String` | Gets or sets the XML element name used by framework serialization. | `SAIF.BOF.Framework — clsBusinessBase` |
| `GetReportXML` | `Function GetReportXML() As String` | Returns framework report XML for the object. | `SAIF.BOF.Framework — clsBusinessBase` |
| `ToXml` | `Function ToXml() As String` | Serializes the object to XML. | `SAIF.BOF.Framework — clsBusinessBase` |

## Behavioral notes

- [BR-US-006](../../business-rules.md#br-us-006-a-policy-unit-retrieved-by-natural-key-must-be-active-activeunitflag-y) and [BR-US-007](../../business-rules.md#br-us-007-a-policy-unit-retrieved-by-injury-date-must-be-active) require active-only retrieval.
- [BR-US-012](../../business-rules.md#br-us-012-activating-a-policy-unit-that-has-been-previously-reported-must-also-set-correction-flags) governs activation behavior.

## Constraints and usage notes

- The type delegates selected policy-number and valuation-date lookups to referenced services.

## Sources

- `Business\SAIF.Business.UnitStat\clsPolicyUnit.vb`
- `Business\SAIF.Business.UnitStat\SAIF.BOF.Business.UnitStat.vbproj`
- `Legacy\BusinessObjectFramework\clsBusinessBase.vb`
