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

# PolicyServices

Provides basic Policy Services. Provides shared policy lookup, validation, coverage, and date-calculation helpers.

## Purpose
- Provides shared policy lookup, validation, coverage, and date-calculation helpers.

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

## Public members
| Member | Signature | Purpose |
| --- | --- | --- |
| `SAIF_POLICY_NUMBERS` | `Public Const SAIF_POLICY_NUMBERS As String = "406421;"` | Exposes shared constant values. |
| `getPolicyAddress` | `<Obsolete("This method no longer supported: Use PolicyData.dll's clsPolicyAddress")> Public Shared Function getPolicyAddress(ByVal inDataPortalInfo As IDataPortalInfo, _ ByVal inPolicyNumber As Decimal, _ ByVal inEffectiveDate As Date, _ Optional ByVal inCorrespondanceCode As String = clsConstants.Blank) As clsAddress` | Returns the Policy Address. |
| `CoverageExists` | `Public Shared Function CoverageExists(ByVal inDataPortalInfo As IDataPortalInfo, ByVal inPolicyNumber As Decimal, ByVal inDate As Date) As Boolean` | Returns True if Coverage Exists on a given date. |
| `IsValidPolicy` | `Public Shared Function IsValidPolicy(ByVal inDataPortalInfo As IDataPortalInfo, ByVal inPolicyNumber As Decimal) As Boolean` | Returns True if this is a Valid SAIF Policy. |
| `IsSAIFPolicy` | `Public Shared Function IsSAIFPolicy(ByVal inPolicyNumber As Decimal) As Boolean` | Checks whether the policy number appears in the built-in SAIF policy number list. |
| `GetDefaultExpirationDate` | `Public Shared Function GetDefaultExpirationDate(ByVal inDataPortalInfo As IDataPortalInfo, ByVal inEffectiveDate As Date, Optional ByVal inGetMaxExpirationDate As Boolean = False) As Date` | Calls SP72232_Calc_Policy_Exp_Date to calculate the default or maximum policy expiration date for an effective date. |

## Behavioral notes
- Public methods wrap inline SQL and Oracle procedures that validate policy numbers, coverage windows, and address data.
- The obsolete getPolicyAddress entry point still maps Oracle output fields into a clsAddress value object.

## Constraints and usage notes
- Most helpers are Shared methods that require an IDataPortalInfo context.
- Low-number policy validation branches to NON_EMPR_ACCT rather than POLICY.

## Sources
- `Business\SAIF.Business\PolicyServices.vb`
