---
title: clsPolicyData
summary: API reference for clsPolicyData.
status: draft
owner: SAIF Doc Gen
last_reviewed: 2026-07-31
library: SAIF.Business.View.Policy
reference_type: package
---

# clsPolicyData

`clsPolicyData` is the aggregate root of this library. A single instance carries the identity, status, market type, dates, financial flags, and agency attributes of one policy, and it lazily materialises the richer objects hanging off that policy — agency, addresses, policy periods, team assignments, affiliated policies, and associations — so that a consumer pays for only what it touches. It is read-only: there is no save path, and `IsSavable` is overridden to refuse persistence. It also implements `iPayee`, which lets disbursement consumers treat a policy as a payment recipient without knowing anything about policy structure.

## Purpose

- Retrieves a policy header, or a batch of headers, through the framework data portal ([Retrieve policy header](../../operations/retrieve-policy-header.md)).
- Defers the expensive waiver and detail reads until a consumer asks for them ([Lazy-load policy detail](../../operations/lazy-load-policy-detail.md), [BR-009](../../business-rules.md#br-009-a-policy-view-requires-a-positive-policy-number)).
- Decides how much of the policy a caller may see, from the access level carried on its criteria ([BR-011](../../business-rules.md#br-011-affiliated-policy-visibility-depends-on-user-access-level-and-affiliate-type), [BR-012](../../business-rules.md#br-012-demo-access-levels-are-treated-as-a-distinct-user-population)).
- Resolves the policy's parent and member associations and exposes the affiliate type derived from them ([Resolve policy associations](../../operations/resolve-policy-associations.md)).
- Presents the policy as a payee for disbursement consumers through `iPayee`.

## Context

- Namespace: `SAIF.Business.View.Policy`
- Assembly/package: `SAIF.BOF.Business.View.Policy`
- Declared in: `Business/SAIF.Business.View.Policy/clsPolicyData.vb`

## Public members

| Member | Signature | Purpose |
| --- | --- | --- |
| DEFAULT_USER_ACCESS_LEVEL | `Public Const DEFAULT_USER_ACCESS_LEVEL As UserAccessLevels = UserAccessLevels.SAIFEmployee` | The access level applied when a caller supplies none, which is the most permissive level ([BR-010](../../business-rules.md#br-010-a-non-employer-account-requires-a-non-zero-account-number)). |
| ASSIGNED_RISK_MARKET_TYPE | `Public Const ASSIGNED_RISK_MARKET_TYPE As String = "ARP"` | The stored market type code that `IsAssignedRisk` tests for. |
| VOLUNTARY_MARKET_TYPE | `Public Const VOLUNTARY_MARKET_TYPE As String = "VOL"` | The stored market type code that `IsVoluntary` tests for. |
| VOLUNTARY_MARKET_TYPE_DISPLAY | `Public Const VOLUNTARY_MARKET_TYPE_DISPLAY As String = "Voluntary"` | The text shown for voluntary-market business, so consumers do not translate the code themselves. |
| ASSIGNED_RISK_MARKET_TYPE_DISPLAY | `Public Const ASSIGNED_RISK_MARKET_TYPE_DISPLAY As String = "Assigned Risk"` | The text shown for assigned-risk business, so consumers do not translate the code themselves. |
| CurrentAffiliatedPolicy | `Public ReadOnly Property CurrentAffiliatedPolicy() As clsPolicyData` | The affiliated policy currently selected through `SetCurrentAffiliatedPolicy`, or this policy when nothing has been selected.* |
| DisplayAffiliatedPolices | `Public ReadOnly Property DisplayAffiliatedPolices() As Boolean` | False when the caller must not be shown affiliated policies at all, which is how quick-file users and non-parent policyholders are held to their own policy ([BR-011](../../business-rules.md#br-011-affiliated-policy-visibility-depends-on-user-access-level-and-affiliate-type)). |
| IsDemoUser | `Public ReadOnly Property IsDemoUser() As Boolean` | True when the caller's access level is one of the five demonstration levels, which is what triggers data masking downstream ([BR-013](../../business-rules.md#br-013-user-type-maps-to-a-ranked-access-level)). |
| AgentDirectSplitFlag | `Public ReadOnly Property AgentDirectSplitFlag() As String` | Y or N indicator recording whether agent direct split applies to the policy.* |
| AgentNum | `Public ReadOnly Property AgentNum() As Decimal` | Identifier of the agent attached to the policy.* |
| AOIExclusionFlag | `Public ReadOnly Property AOIExclusionFlag() As String` | Y or N indicator recording whether AOI exclusion applies to the policy.* |
| AppReceivedDate | `Public ReadOnly Property AppReceivedDate() As Date` | The application received date recorded on the policy.* |
| ApplicationDate | `Public ReadOnly Property ApplicationDate() As Date` | The application date recorded on the policy.* |
| ApplicationNum | `Public ReadOnly Property ApplicationNum() As Decimal` | Identifier of the application attached to the policy.* |
| ApplicationSignedFlag | `Public ReadOnly Property ApplicationSignedFlag() As String` | Y or N indicator recording whether application signed applies to the policy.* |
| BillingCycleDay | `Public ReadOnly Property BillingCycleDay() As Decimal` | The billing cycle day recorded on the policy.* |
| BypassAutoPricingFlag | `Public ReadOnly Property BypassAutoPricingFlag() As String` | Y or N indicator recording whether bypass auto pricing applies to the policy.* |
| CancellationTrackCode | `Public ReadOnly Property CancellationTrackCode() As String` | Coded value classifying the cancellation track of the policy.* |
| CoverageBoundFlag | `Public ReadOnly Property CoverageBoundFlag() As Boolean` | Y or N indicator recording whether coverage bound applies to the policy.* |
| CreateDate | `Public ReadOnly Property CreateDate() As Date` | The create date recorded on the policy.* |
| CreateUser | `Public ReadOnly Property CreateUser() As String` | Account of the user who performed the create action on the policy.* |
| CurrentBalance | `Public ReadOnly Property CurrentBalance() As Decimal` | Monetary current balance carried on the policy.* |
| CustomerServiceTeamCode | `Public ReadOnly Property CustomerServiceTeamCode() As String` | Coded value classifying the customer service team of the policy.* |
| DoNotAutoReinstateFlag | `Public ReadOnly Property DoNotAutoReinstateFlag() As String` | Y or N indicator recording whether do not auto reinstate applies to the policy.* |
| DuplicateClaimCheckFlag | `Public ReadOnly Property DuplicateClaimCheckFlag() As String` | Y or N indicator recording whether duplicate claim check applies to the policy.* |
| EntityCode | `Public ReadOnly Property EntityCode() As String` | Coded value classifying the entity of the policy.* |
| FinalizeDate | `Public ReadOnly Property FinalizeDate() As Date` | The finalize date recorded on the policy.* |
| FinalizeUser | `Public ReadOnly Property FinalizeUser() As String` | Account of the user who performed the finalize action on the policy.* |
| GroupEnrollmentFlag | `Public ReadOnly Property GroupEnrollmentFlag() As String` | Y or N indicator recording whether group enrollment applies to the policy.* |
| HistContCoverageDate | `Public ReadOnly Property HistContCoverageDate() As Date` | The historical continuous coverage date recorded on the policy.* |
| HoldCancelDate | `Public ReadOnly Property HoldCancelDate() As Date` | The hold cancel date recorded on the policy.* |
| HoldCancelReasonCode | `Public ReadOnly Property HoldCancelReasonCode() As String` | Coded value classifying the hold cancel reason of the policy.* |
| HoldCancelUser | `Public ReadOnly Property HoldCancelUser() As String` | Account of the user who performed the hold cancel action on the policy.* |
| HoldInvoiceFlag | `Public ReadOnly Property HoldInvoiceFlag() As String` | Y or N indicator recording whether hold invoice applies to the policy.* |
| IncludeManualCancelFlag | `Public ReadOnly Property IncludeManualCancelFlag() As String` | Y or N indicator recording whether include manual cancel applies to the policy.* |
| InterstateRiskIdFlag | `Public ReadOnly Property InterstateRiskIdFlag() As String` | Y or N indicator recording whether interstate risk identifier applies to the policy.* |
| LastPvtCarrierCoverEffDte | `Public ReadOnly Property LastPvtCarrierCoverEffDte() As Date` | The last private carrier cover effective date recorded on the policy.* |
| LastRateSurveyDate | `Public ReadOnly Property LastRateSurveyDate() As Date` | The last rate survey date recorded on the policy.* |
| LegacyPolicyNum | `Public ReadOnly Property LegacyPolicyNum() As Decimal` | Identifier of the legacy policy attached to the policy.* |
| LegalName | `Public ReadOnly Property LegalName() As String` | The registered legal name of the insured entity, which can differ from the trading name. |
| WrapupLegalName | `Public ReadOnly Property WrapupLegalName() As String` | Name of the wrapup legal recorded against the policy.* |
| ManagementExperienceDate | `Public ReadOnly Property ManagementExperienceDate() As Date` | The management experience date recorded on the policy.* |
| MarketTypeCode | `Public ReadOnly Property MarketTypeCode() As String` | Coded value classifying the market type of the policy.* |
| MarketTypeDescription | `Public ReadOnly Property MarketTypeDescription() As String` | Readable text describing the market type of the policy.* |
| MCORestrictFlag | `Public ReadOnly Property MCORestrictFlag() As String` | Y or N indicator recording whether managed care organization restrict applies to the policy.* |
| NCCIBinderNum | `Public ReadOnly Property NCCIBinderNum() As String` | Identifier of the NCCI binder attached to the policy.* |
| NCCIRiskId | `Public ReadOnly Property NCCIRiskId() As Decimal` | Identifier of the NCCI risk attached to the policy.* |
| OfficeCode | `Public ReadOnly Property OfficeCode() As String` | Coded value classifying the office of the policy.* |
| OtherCarrierDataReqFlag | `Public ReadOnly Property OtherCarrierDataReqFlag() As String` | Y or N indicator recording whether other carrier data request applies to the policy.* |
| PayRptPrintCopies | `Public ReadOnly Property PayRptPrintCopies() As Decimal` | The payment report print copies recorded on the policy.* |
| PmsAccountSubcd | `Public ReadOnly Property PmsAccountSubcd() As String` | The PMS account sub-code recorded on the policy.* |
| PolicyName | `Public ReadOnly Property PolicyName() As String` | The name the policy trades under, as shown on the header. |
| PolicyNum | `Public ReadOnly Property PolicyNum() As Decimal` | The policy number that identifies this policy and on which equality is defined. |
| PolicyOrigEffDate | `Public ReadOnly Property PolicyOrigEffDate() As Date` | The policy orig effective date recorded on the policy.* |
| PolicyRelationshipCode | `Public ReadOnly Property PolicyRelationshipCode() As String` | Coded value classifying the policy relationship of the policy.* |
| PolicyRelationshipPolicyNum | `Public ReadOnly Property PolicyRelationshipPolicyNum() As Decimal` | Identifier of the policy relationship policy attached to the policy.* |
| PolicyRelationshipPrtDtlFl | `Public ReadOnly Property PolicyRelationshipPrtDtlFl() As String` | Y or N indicator recording whether policy relationship print detail applies to the policy.* |
| PolicyStatusCode | `Public ReadOnly Property PolicyStatusCode() As String` | The stored status code behind the readable status; interpreted through `PolicyStatusEnums`. |
| Status | `Public ReadOnly Property Status() As String` | The readable policy status derived from the stored status code ([BR-014](../../business-rules.md#br-014-association-date-defaults-differ-per-association-family-and-detail-load-failures-are-non-fatal)). |
| PolicyStatusGroupCode | `Public ReadOnly Property PolicyStatusGroupCode() As String` | Coded value classifying the policy status group of the policy.* |
| PolicyCancelStatus | `Public ReadOnly Property PolicyCancelStatus() As String` | The policy cancel status recorded on the policy.* |
| PremiumEstimate | `Public ReadOnly Property PremiumEstimate() As Decimal` | The premium estimate recorded on the policy.* |
| ProposalDate | `Public ReadOnly Property ProposalDate() As Date` | The proposal date recorded on the policy.* |
| QuoteReqType | `Public ReadOnly Property QuoteReqType() As String` | Classification of the quote request of the policy.* |
| QuoteUnderwriter | `Public ReadOnly Property QuoteUnderwriter() As String` | The quote underwriter recorded on the policy.* |
| RateAccount | `Public ReadOnly Property RateAccount() As Decimal` | The rate account recorded on the policy.* |
| RejectionDate | `Public ReadOnly Property RejectionDate() As Date` | The rejection date recorded on the policy.* |
| RejectionReasonCode | `Public ReadOnly Property RejectionReasonCode() As String` | Coded value classifying the rejection reason of the policy.* |
| SalesRep | `Public ReadOnly Property SalesRep() As String` | The sales representative recorded on the policy.* |
| SeasonalFlag | `Public ReadOnly Property SeasonalFlag() As String` | Y or N indicator recording whether seasonal applies to the policy.* |
| SecurePolicyCode | `Public ReadOnly Property SecurePolicyCode() As String` | Marks the policy as a SAIF-secured policy, which forces the Active Directory resource check before any access is granted ([BR-001](../../business-rules.md#br-001-secure-saif-policies-require-explicit-authorization)). |
| SuretyBond | `Public ReadOnly Property SuretyBond() As Decimal` | The surety bond recorded on the policy.* |
| TailCoverageFlag | `Public ReadOnly Property TailCoverageFlag() As String` | Y or N indicator recording whether tail coverage applies to the policy.* |
| UpdateDate | `Public ReadOnly Property UpdateDate() As Date` | The update date recorded on the policy.* |
| UpdateNum | `Public ReadOnly Property UpdateNum() As Decimal` | Identifier of the update attached to the policy.* |
| UpdateUser | `Public ReadOnly Property UpdateUser() As String` | Account of the user who performed the update action on the policy.* |
| VendorNum | `Public ReadOnly Property VendorNum() As String` | Identifier of the vendor attached to the policy.* |
| VoluntaryDate | `Public ReadOnly Property VoluntaryDate() As Date` | The voluntary date recorded on the policy.* |
| WCDNum | `Public ReadOnly Property WCDNum() As Decimal` | Identifier of the WCD attached to the policy.* |
| GwConversionEffDate | `Public ReadOnly Property GwConversionEffDate As Date` | The guidewire conversion effective date recorded on the policy.* |
| AccountNum | `Public ReadOnly Property AccountNum As String` | Identifier of the account attached to the policy.* |
| PolicyPeriodExpirationDate | `Public ReadOnly Property PolicyPeriodExpirationDate As Date` | The policy period expiration date recorded on the policy.* |
| IsGwCoverage | `Public Function IsGwCoverage(ByVal policyPeriodEffectiveDate As Date) As Boolean` | True when coverage for the supplied period effective date is administered in Guidewire rather than in the legacy system.* |
| WebAddr | `Public ReadOnly Property WebAddr As String` | The web address recorded on the policy.* |
| LastAuditDate | `Public ReadOnly Property LastAuditDate() As Date` | The last audit date recorded on the policy.* |
| FutureCancelDate | `Public ReadOnly Property FutureCancelDate() As Date` | The future cancel date recorded on the policy.* |
| UserAccessLevel | `Public ReadOnly Property UserAccessLevel() As UserAccessLevels` | The visibility level this instance was retrieved under; every masking decision on the policy derives from it ([BR-012](../../business-rules.md#br-012-demo-access-levels-are-treated-as-a-distinct-user-population)). |
| IsParentAffiliateType | `Public Shared ReadOnly Property IsParentAffiliateType(ByVal inAffiliateType As AffiliateTypes) As Boolean` | True when the supplied affiliate type denotes the parent side of a relationship ([BR-015](../../business-rules.md#br-015-unrecognized-relationship-codes-are-classified-as-not-specified)). |
| IsAssignedRisk | `Public ReadOnly Property IsAssignedRisk() As Boolean` | True when the policy is written in the assigned-risk market rather than the voluntary market. |
| IsVoluntary | `Public ReadOnly Property IsVoluntary() As Boolean` | True when the policy is written in the voluntary market. |
| MaxPolicyholderLoginDate | `Public ReadOnly Property MaxPolicyholderLoginDate As Date` | The max policyholder login date recorded on the policy.* |
| MaxPolicyholderLoginDateDescription | `Public ReadOnly Property MaxPolicyholderLoginDateDescription() As String` | Readable text describing the max policyholder login date of the policy.* |
| AgencyName | `Public ReadOnly Property AgencyName() As String` | Name of the agency recorded against the policy.* |
| AgentName | `Public ReadOnly Property AgentName() As String` | Name of the agent recorded against the policy.* |
| AgencyAddress1 | `Public ReadOnly Property AgencyAddress1() As String` | The agency address1 recorded on the policy.* |
| AgencyAddress2 | `Public ReadOnly Property AgencyAddress2() As String` | The agency address2 recorded on the policy.* |
| AgencyCity | `Public ReadOnly Property AgencyCity() As String` | The agency city recorded on the policy.* |
| AgencyState | `Public ReadOnly Property AgencyState() As String` | The agency state recorded on the policy.* |
| AgencyZip | `Public ReadOnly Property AgencyZip() As String` | The agency zip recorded on the policy.* |
| AgencyZip4 | `Public ReadOnly Property AgencyZip4() As String` | The agency zip4 recorded on the policy.* |
| AgencyCityStateZipFormatted | `Public ReadOnly Property AgencyCityStateZipFormatted() As String` | Display-ready rendering of the agency city state zip of the policy.* |
| AgencyEmail | `Public ReadOnly Property AgencyEmail() As String` | The agency email recorded on the policy.* |
| AgencyPhone | `Public ReadOnly Property AgencyPhone() As String` | The agency phone recorded on the policy.* |
| AgencyPhoneFormatted | `Public ReadOnly Property AgencyPhoneFormatted() As String` | Display-ready rendering of the agency phone of the policy.* |
| AgencyFax | `Public ReadOnly Property AgencyFax() As String` | The agency fax recorded on the policy.* |
| ChapterCode | `Public ReadOnly Property ChapterCode() As String` | Coded value classifying the chapter of the policy.* |
| ComboWrapSubFlag | `Public ReadOnly Property ComboWrapSubFlag() As String` | Y or N indicator recording whether combo wrap sub applies to the policy.* |
| CurrentPolicyPeriodForDisplay | `Public ReadOnly Property CurrentPolicyPeriodForDisplay() As String` | The current policy period for display recorded on the policy.* |
| EntityCodeDescr | `Public ReadOnly Property EntityCodeDescr() As String` | Readable text describing the entity code of the policy.* |
| FeidNum | `Public ReadOnly Property FeidNum() As String` | Identifier of the FEID attached to the policy.* |
| FiveEffDate | `Public ReadOnly Property FiveEffDate() As Date` | The five effective date recorded on the policy.* |
| FiveExpDate | `Public ReadOnly Property FiveExpDate() As Date` | The five expiration date recorded on the policy.* |
| FiveReimbFlag | `Public ReadOnly Property FiveReimbFlag() As Decimal` | Y or N indicator recording whether five reimbursement applies to the policy.* |
| GapInCov | `Public ReadOnly Property GapInCov() As String` | Indicates that the policy has at least one gap in coverage history.* |
| GroupName | `Public ReadOnly Property GroupName() As String` | Name of the group recorded against the policy.* |
| GroupType | `Public ReadOnly Property GroupType() As String` | Classification of the group of the policy.* |
| HasWaiver | `Public ReadOnly Property HasWaiver() As Boolean` | True when a waiver exists on the policy; the answer is loaded on first access rather than with the header ([Check waiver existence](../../operations/check-waiver-existence.md)). |
| NDReimbDate | `Public ReadOnly Property NDReimbDate() As String` | The non-disabling reimbursement date recorded on the policy.* |
| NDReimbExpDate | `Public ReadOnly Property NDReimbExpDate() As String` | The non-disabling reimbursement expiration date recorded on the policy.* |
| PayrollClass | `Public ReadOnly Property PayrollClass() As String` | The payroll class recorded on the policy.* |
| PolicyContCovDate | `Public ReadOnly Property PolicyContCovDate() As String` | The policy continuous coverage date recorded on the policy.* |
| PolicyPeriodsForDisplay | `Public ReadOnly Property PolicyPeriodsForDisplay() As ArrayList` | The policy periods for display recorded on the policy.* |
| SalesPlan | `Public ReadOnly Property SalesPlan() As String` | The sales plan recorded on the policy.* |
| StandardPremium | `Public ReadOnly Property StandardPremium() As Decimal` | Monetary standard premium carried on the policy.* |
| SalesPlanName | `Public ReadOnly Property SalesPlanName() As String` | Name of the sales plan recorded against the policy.* |
| SicCode | `Public ReadOnly Property SicCode() As String` | Coded value classifying the SIC of the policy.* |
| NaicsCode | `Public ReadOnly Property NaicsCode As String` | Coded value classifying the NAICS of the policy.* |
| NaicsDescr | `Public ReadOnly Property NaicsDescr As String` | Readable text describing the NAICS of the policy.* |
| Agency | `Public ReadOnly Property Agency() As clsAgency` | The producing agency for this policy, loaded on first access ([Retrieve supporting policy aggregates](../../operations/retrieve-supporting-policy-aggregates.md)). |
| Address | `Public ReadOnly Property Address() As clsPolicyAddress` | The policy's mailing address, loaded on first access ([Retrieve supporting policy aggregates](../../operations/retrieve-supporting-policy-aggregates.md)). |
| PolicyHolderAddress | `Public ReadOnly Property PolicyHolderAddress() As clsPolicyAddress` | The policyholder's own address, as distinct from the policy mailing address. |
| CurrentPolicyPeriod | `Public ReadOnly Property CurrentPolicyPeriod() As clsPolicyPeriod` | The term of coverage in force today ([BR-014](../../business-rules.md#br-014-association-date-defaults-differ-per-association-family-and-detail-load-failures-are-non-fatal)). |
| LatestPolicyPeriodInfoPagePrinted | `Public ReadOnly Property LatestPolicyPeriodInfoPagePrinted() As clsPolicyPeriod` | The most recent term for which an information page was printed, which is the term external consumers are entitled to see.* |
| ClaimAddress | `Public ReadOnly Property ClaimAddress() As clsPolicyAddress` | The address claims correspondence is sent to, falling back to the mailing address when none is recorded ([BR-017](../../business-rules.md#br-017-association-rows-without-a-matching-type-code-are-discarded)). |
| ThirdPartyManagerAddress | `Public ReadOnly Property ThirdPartyManagerAddress() As clsPolicyAddress` | The address of the third-party manager administering the policy, when one is recorded. |
| ClaimAddressOnly | `Public ReadOnly Property ClaimAddressOnly() As clsPolicyAddress` | The claim address without the mailing-address fallback, for callers that must know whether one truly exists ([BR-017](../../business-rules.md#br-017-association-rows-without-a-matching-type-code-are-discarded)). |
| PolicyPeriods | `Public ReadOnly Property PolicyPeriods() As clsPolicyPeriodCollection` | Every term of coverage on the policy, loaded on first access ([Retrieve supporting policy aggregates](../../operations/retrieve-supporting-policy-aggregates.md)). |
| AffiliatedPolicyCollection | `Public ReadOnly Property AffiliatedPolicyCollection() As clsAffiliatedPolicyCollection` | The policies affiliated with this one under the selected affiliate type ([Retrieve affiliated policies](../../operations/retrieve-affiliated-policies.md)). |
| DefaultAffiliateType | `Public ReadOnly Property DefaultAffiliateType() As AffiliateTypes` | The affiliation relationship derived from the policy's associations when the consumer states no preference ([BR-015](../../business-rules.md#br-015-unrecognized-relationship-codes-are-classified-as-not-specified)). |
| AffiliateType | `Public Property AffiliateType() As AffiliateTypes` | The affiliation relationship the consumer wants applied, defaulting to the one derived from the policy's own associations ([BR-015](../../business-rules.md#br-015-unrecognized-relationship-codes-are-classified-as-not-specified)). |
| DefaultAssociationType | `Public ReadOnly Property DefaultAssociationType() As AssociationTypes` | The association type chosen when the consumer states no preference ([BR-015](../../business-rules.md#br-015-unrecognized-relationship-codes-are-classified-as-not-specified)). |
| AssociationType | `Public ReadOnly Property AssociationType() As AssociationTypes` | The association type in force for this policy, derived from its associations ([BR-015](../../business-rules.md#br-015-unrecognized-relationship-codes-are-classified-as-not-specified)). |
| PreferredAssociationType | `Public Property PreferredAssociationType() As AssociationTypes` | The association type the consumer wants used when a policy participates in more than one relationship ([BR-015](../../business-rules.md#br-015-unrecognized-relationship-codes-are-classified-as-not-specified)). |
| Associations | `Public ReadOnly Property Associations() As IEnumerable(Of PolicyAssociation)` | Every relationship this policy participates in, resolved from all four association sources ([Resolve policy associations](../../operations/resolve-policy-associations.md)). |
| ParentPolicyData | `Public ReadOnly Property ParentPolicyData() As clsPolicyData` | The parent policy of this policy, loaded through the association set ([Resolve policy associations](../../operations/resolve-policy-associations.md)). |
| ParentPolicyNum | `Public ReadOnly Property ParentPolicyNum() As Decimal` | The number of the parent policy, or zero when this policy has no parent.* |
| TeamAssignmentCollection | `Public ReadOnly Property TeamAssignmentCollection() As clsTeamAssignmentCollection` | The SAIF staff assigned to this policy, loaded on first access ([Retrieve supporting policy aggregates](../../operations/retrieve-supporting-policy-aggregates.md)). |
| Gaps | `Public ReadOnly Property Gaps() As Generic.List(Of DateRange)` | The date ranges during which the policy had no coverage in force, derived from its periods.* |
| PolicyPayeeAddress | `Public ReadOnly Property PolicyPayeeAddress As clsAddress Implements iPayee.Address` | The address a disbursement to this policy is sent to, exposed through `iPayee`. |
| PayeeID | `Public ReadOnly Property PayeeID As String Implements iPayee.PayeeID` | Identifies the policy as a payment recipient to disbursement consumers. |
| PayeePhoneNumber | `Public ReadOnly Property PayeePhoneNumber As String Implements iPayee.PhoneNumber` | The telephone number a disbursement consumer contacts this payee on. |
| PayeeEmailAddress | `Public Property PayeeEmailAddress As String Implements iPayee.EmailAddress` | The e-mail address a disbursement consumer contacts this payee on. |
| Name | `Public ReadOnly Property Name As String Implements iPayee.Name` | The payee name presented to disbursement consumers, satisfying `iPayee`. |
| PayeeSSNTaxID | `Public ReadOnly Property PayeeSSNTaxID As String Implements iPayee.SSNTaxID` | The tax identifier used when reporting a disbursement to this payee. |
| PayeeType | `Public ReadOnly Property PayeeType As iPayee.PayeeTypes Implements iPayee.PayeeType` | Tells disbursement consumers that this payee is a policy rather than a person or vendor. |
| PayeeTypeCode | `Public ReadOnly Property PayeeTypeCode As String Implements iPayee.PayeeTypeCode` | The stored code behind the payee type. |
| MyCriteria | `Public ReadOnly Property MyCriteria() As Criteria` | The criteria this instance was retrieved with, including the access level that governs its visibility ([BR-012](../../business-rules.md#br-012-demo-access-levels-are-treated-as-a-distinct-user-population)). |
| SecondaryPolicyStatus | `Public ReadOnly Property SecondaryPolicyStatus() As String` | The secondary policy status recorded on the policy.* |
| IsValid | `Public Overrides ReadOnly Property IsValid() As Boolean` | False when the retrieval produced no policy, which is the condition the access decision refuses on ([BR-002](../../business-rules.md#br-002-invalid-or-unnumbered-policies-are-never-accessible)). |
| IsSavable | `Public Overrides ReadOnly Property IsSavable() As Boolean` | Always false: the policy header is a read-only projection with no update path. |
| GetCurrentPolicyPeriod | `Public Function GetCurrentPolicyPeriod() As clsPolicyPeriod` | Finds the term of coverage in force today ([BR-014](../../business-rules.md#br-014-association-date-defaults-differ-per-association-family-and-detail-load-failures-are-non-fatal)). |
| GetLatestPolicyPeriodInfoPagePrinted | `Public Function GetLatestPolicyPeriodInfoPagePrinted() As clsPolicyPeriod` | Finds the most recent term for which an information page was printed.* |
| GetDOIPolicyPeriod | `Public Function GetDOIPolicyPeriod(ByVal inDOI As Date) As clsPolicyPeriod` | Finds the term of coverage in force on a supplied date of injury ([BR-014](../../business-rules.md#br-014-association-date-defaults-differ-per-association-family-and-detail-load-failures-are-non-fatal)). |
| GetDOISalesPlan | `Public Function GetDOISalesPlan(ByVal inDOI As Date) As String` | Returns the sales plan that applied on a supplied date of injury.* |
| GetDOIFinalEvalDate | `Public Function GetDOIFinalEvalDate(ByVal inDOI As Date) As Date` | Returns the final evaluation date of the term in force on a supplied date of injury.* |
| GetLastAuditDate | `Public Function GetLastAuditDate() As Date` | Returns the date of the most recent premium audit on the policy.* |
| GetFutureCancelDate | `Public Function GetFutureCancelDate() As Date` | Returns the date the policy is scheduled to cancel, when a cancellation is pending.* |
| SetCurrentAffiliatedPolicy | `Public Sub SetCurrentAffiliatedPolicy(ByVal inPolicyNum As String)` | Selects which affiliated policy `CurrentAffiliatedPolicy` returns. |
| Equals | `Public Overloads Shared Function Equals(ByVal objA As Object, ByVal objB As Object) As Boolean` | Compares two policy headers for equality without requiring either reference to be non-null. |
| Equals | `Public Overloads Overrides Function Equals(ByVal inObject As Object) As Boolean` | Compares this policy header with an arbitrary object, matching on policy number. |
| Equals | `Public Overloads Function Equals(ByVal inObject As clsPolicyData) As Boolean` | Compares this policy header with another, matching on policy number. |
| GetHashCode | `Public Overrides Function GetHashCode() As Integer` | Hashes on the policy number, keeping the hash consistent with the policy-number equality. |
| ToString | `Public Overrides Function ToString() As String` | Renders the policy for logging and debugging, leading with the policy number.* |
| GetPolicyData | `Public Shared Function GetPolicyData(ByVal inCriteria As Criteria) As clsPolicyData` | Retrieves one policy header using a fully specified criteria object ([Retrieve policy header](../../operations/retrieve-policy-header.md)). |
| GetPolicyData | `Public Shared Function GetPolicyData(ByVal inDataportal As IDataPortalInfo, ByVal inPolicyNum As Decimal) As clsPolicyData` | Retrieves one policy header by number at the default access level ([BR-010](../../business-rules.md#br-010-a-non-employer-account-requires-a-non-zero-account-number)). |
| GetPolicyData | `Public Shared Function GetPolicyData(ByVal inDataportal As IDataPortalInfo, ByVal inPolicyNumbers As IEnumerable(Of Decimal)) As List(Of clsPolicyData)` | Retrieves several policy headers in one round trip and returns them as a list ([Retrieve policy header](../../operations/retrieve-policy-header.md)). |
| GetPolicyData | `Public Shared Function GetPolicyData(ByVal inDataportal As IDataPortalInfo, ByVal inPolicyNum As Decimal, ByVal inUserAccessLevel As UserAccessLevels) As clsPolicyData` | Retrieves one policy header at an explicit access level, which governs how much of it the caller may see ([BR-012](../../business-rules.md#br-012-demo-access-levels-are-treated-as-a-distinct-user-population)). |
| GetPolicyAddress | `Public Shared Function GetPolicyAddress(ByVal inDataPortalInfo As IDataPortalInfo,` | Retrieves the policy mailing address without materialising the whole header ([Retrieve supporting policy aggregates](../../operations/retrieve-supporting-policy-aggregates.md)). |
| GetPolicyClaimAddress | `Public Shared Function GetPolicyClaimAddress(ByVal inDataPortalInfo As IDataPortalInfo,` | Retrieves the claim address, applying the mailing-address fallback when requested ([BR-017](../../business-rules.md#br-017-association-rows-without-a-matching-type-code-are-discarded)). |

## Inherited public members

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

| Member | Signature | Purpose | Origin |
| --- | --- | --- | --- |
| BrokenRulesCollection | `Public ReadOnly Property BrokenRulesCollection() As clsBrokenRulesCollection` | Carries the messages for the rules currently broken, which is what drives `IsValid` to false.† | `SAIF.Framework.Core` — `clsBusinessBase` |

## Behavioral notes

- Detail values loaded by the lazy read are populated on first access to any member of that group; the second access costs nothing ([BR-009](../../business-rules.md#br-009-a-policy-view-requires-a-positive-policy-number)).
- `CurrentAffiliatedPolicy` returns the affiliated policy selected by `SetCurrentAffiliatedPolicy`, falling back to this policy when no selection has been made.*
- Equality is defined on the policy number rather than on object identity, so two separately retrieved headers for the same policy compare equal.

## Constraints and usage notes

- The type is read-only. `IsSavable` always reports false and no update path exists.
- A caller must supply an `IDataPortalInfo` for the Oracle policy store; the library does not create connections of its own.
- Criteria that omit an access level default to `UserAccessLevels.SAIFEmployee`, the most permissive level ([BR-010](../../business-rules.md#br-010-a-non-employer-account-requires-a-non-zero-account-number)).

> **Note:** Statements marked with `†` are derived from dependency library
> documentation via the Legends CLI. Statements marked with `*` were inferred
> from code structure or contextual evidence. Statements marked with `**` could
> not be confirmed; treat as unknown until verified.

## Sources

- `Business/SAIF.Business.View.Policy/clsPolicyData.vb`
