---
title: PolicyInformation
summary: API reference for PolicyInformation.
status: draft
owner: Technical Writer
last_reviewed: 2026-07-31
library: SAIF.Business.Policy
reference_type: package
---

# PolicyInformation

`PolicyInformation` is a static (shared-members-only) class that provides direct, on-demand data-portal lookups for individual pieces of policy information — dates, market type, premium history, minimum premium, information-page-print status, and ownership system — without requiring the caller to load a full `iPolicyPeriodBase` object graph. Several members call into the Oracle `pk73069_rating_procs` and `pk73102_policy` packages, connecting this class directly to the cross-referenced procedure documentation for those packages.

## Purpose
- Look up the maximum (latest) policy period effective date for a policy, per [BR-POL-001](../../../../business-rules.md#br-pol-001-latest-policy-period-date-comes-from-the-maximum-effective-date).
- Look up a specific policy period's expiration date and anniversary rate date given a policy number and period effective date.
- Translate the policy's persisted market-type code into a `MarketTypes` enum value via `Enums.ConvertMarketType`, per [BR-POL-003](../../../../business-rules.md#br-pol-003-persisted-policy-codes-map-to-fixed-domain-enums).
- Determine the maximum premium-history set ID for a policy period, restricted to premium-history type codes `'1'` and `'3'`.
- Compute the policy's minimum premium and expense constant by calling the Oracle procedure `pk73069_rating_procs.get_minimum_expense_constant`, swallowing call failures and returning zero when no result is produced, per [BR-POL-007](../../../../business-rules.md#br-pol-007-database-failures-are-swallowed-for-minimum-premium-retrieval), [BR-POL-008](../../../../business-rules.md#br-pol-008-missing-procedure-results-return-zero), and [BR-POL-020](../../../../business-rules.md#br-pol-020-procedure-dispatches-by-market-type).
- Determine whether a policy period's information page has been printed by checking for a printed `P401` endorsement, per [BR-POL-009](../../../../business-rules.md#br-pol-009-only-printed-p401-endorsements-count-as-issued-information-pages).
- Determine which system currently owns a policy by calling the Oracle function `pk73102_policy.does_wcis_own_submission`, per [BR-POL-010](../../../../business-rules.md#br-pol-010-ownership-comes-from-the-oracle-submission-ownership-function).

## Context
- Namespace: `SAIF.Business.Policy`
- Assembly/package: `SAIF.Business.Policy`

## Public members
| Member | Signature | Purpose |
| --- | --- | --- |
| `MaxPolicyEffectiveDate` | `Public Shared ReadOnly Property MaxPolicyEffectiveDate(ByVal inDPI As IDataPortalInfo, ByVal inPolicyNumber As Decimal) As Date` | Returns the latest (maximum) policy period effective date for the policy, per [BR-POL-001](../../../../business-rules.md#br-pol-001-latest-policy-period-date-comes-from-the-maximum-effective-date). |
| `PolicyPeriodExpirationDate` | `Public Shared ReadOnly Property PolicyPeriodExpirationDate(ByVal inDPI As IDataPortalInfo, ByVal inPolicyNumber As Decimal, ByVal inPolicyPeriodEffectiveDate As Date) As Date` | Returns the expiration date for the policy period identified by policy number and effective date, checking both `policy_period` and `policy_period_non_wcis`. |
| `AnniversaryRateDate` | `Public Shared ReadOnly Property AnniversaryRateDate(ByVal inDPI As IDataPortalInfo, ByVal inPolicyNumber As Decimal, ByVal inPolicyPeriodEffectiveDate As Date) As Date` | Returns the anniversary rate date for the policy period identified by policy number and effective date. |
| `MarketType` | `Public Shared ReadOnly Property MarketType(ByVal inDPI As IDataPortalInfo, ByVal inPolicyNumber As Decimal) As Enums.MarketTypes` | Returns the policy's market type, translated from the persisted `market_type_code` via `Enums.ConvertMarketType`, per [BR-POL-003](../../../../business-rules.md#br-pol-003-persisted-policy-codes-map-to-fixed-domain-enums). |
| `MaxPremiumHistorySetId` | `Public Shared ReadOnly Property MaxPremiumHistorySetId(ByVal inDPI As IDataPortalInfo, ByVal inPolicyNumber As Decimal, ByVal inPolicyPeriodEffectiveDate As Date) As Decimal` | Returns the maximum `prem_hist_set_id` from `prem_hist_summary` for the policy period, restricted to premium-history type codes `'1'` and `'3'`; returns `0` if none found. |
| `PolicyMinimumPremium` | `Public Shared ReadOnly Property PolicyMinimumPremium(ByVal inDPI As IDataPortalInfo, ByVal inPremHistSetID As Decimal) As Decimal` | Returns the minimum premium amount for the given premium-history set, computed by calling Oracle procedure `pk73069_rating_procs.get_minimum_expense_constant`; returns `0` if the call fails or yields no result, per [BR-POL-007](../../../../business-rules.md#br-pol-007-database-failures-are-swallowed-for-minimum-premium-retrieval), [BR-POL-008](../../../../business-rules.md#br-pol-008-missing-procedure-results-return-zero), and [BR-POL-020](../../../../business-rules.md#br-pol-020-procedure-dispatches-by-market-type). |
| `IsInformationPagePrinted` | `Public Shared ReadOnly Property IsInformationPagePrinted(ByVal inDPI As IDataPortalInfo, ByVal inPolicyNumber As Decimal, ByVal inPolicyPeriodEffectiveDate As Date) As Boolean` | Returns `True` if a printed `P401` endorsement exists for the policy period in the `endorsement` table, indicating the information page has been printed, per [BR-POL-009](../../../../business-rules.md#br-pol-009-only-printed-p401-endorsements-count-as-issued-information-pages). |
| `GetPolicyOwnershipSystem` | `Public Shared ReadOnly Property GetPolicyOwnershipSystem(ByVal inDPI As IDataPortalInfo, ByVal inPolicyNumber As Decimal) As Enums.PolicyOwnershipSystems` | Calls the Oracle function `pk73102_policy.does_wcis_own_submission` and returns `WCIS` if it reports true, otherwise `SAIFQuote`, per [BR-POL-010](../../../../business-rules.md#br-pol-010-ownership-comes-from-the-oracle-submission-ownership-function). |


## Behavioral notes
- Source declaration: `Business\SAIF.Business.Policy\PolicyInformation.vb`.
- Related operations, rules, and SQL are cross-referenced from the library-level documentation.

## Constraints and usage notes
- Consumers should rely on the declared public surface rather than internal implementation details.

> **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.Policy\PolicyInformation.vb`
