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

# iPolicyPeriodBase

`iPolicyPeriodBase` is the core interface implemented by a policy period, exposing the full set of period-level identity, date-range, financial, and status attributes used throughout policy processing: cancellation and coverage dates, financial system, sales plan, payroll frequency, issuance system, renewal track, premium amounts, and issue/current/cancellation status flags. It inherits `iPeriodRatingInfo` (rating dates and market type) and `IDateRange` (period start/end), so a policy period is fully described by combining this interface's members with its inherited ones.

## Purpose
- Expose the policy-period identity and audit fields: `PolicyNumber`, `PolicySuffix`, `CreateDate`/`CreateUser`, `UpdateDate`/`UpdateUser`.
- Expose the period's date ranges and boundary dates: `PeriodRange`, `CoverageRange`, `CancelDate`, `EndOfCoverageDate`, `LastDateOfCoverage`, `OriginalExpirationDate`, `ClaimsReimbursementEffectiveDate`/`ClaimsReimbursementExpirationDate`.
- Expose the period's classification enums: `FinancialSystem`, `PayrollReportFrequency`, `SalesPlan` (and its raw `SalesPlanCode`), `PolicyIssuanceSystem`, `PolicyRenewalTrack`.
- Expose premium information via `StandardPremiumAmount` and `ProratedStandardPremiumAmount(inAsOfDate)`.
- Expose derived status flags: `IsFlatCancelled`, `IsRenewalPeriod`, `IsCurrent`, `HasCoverage`, `IsArrearsBillingPlan`, `IsClaimsReimbursementEligible`, `IsFinancePremium`, `IsPerpetualMidPolicyARD`/`IsPerpetualMidPolicyRED`, and `IsIssued` (true once 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).
- Provide overloaded `Equals` methods to compare periods by reference (`iPolicyPeriodBase`) or by policy number + effective date.

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

## Public members
| Member | Signature | Purpose |
| --- | --- | --- |
| `CancelDate` | `ReadOnly Property CancelDate() As Date` | The date the period was cancelled, if applicable. |
| `ClaimsReimbursementEffectiveDate` | `ReadOnly Property ClaimsReimbursementEffectiveDate() As Date` | The date claims-reimbursement eligibility begins for the period. |
| `ClaimsReimbursementExpirationDate` | `ReadOnly Property ClaimsReimbursementExpirationDate() As Date` | The date claims-reimbursement eligibility ends for the period. |
| `CreateDate` | `ReadOnly Property CreateDate() As Date` | The date the period record was created. |
| `CreateUser` | `ReadOnly Property CreateUser() As String` | The user who created the period record. |
| `PeriodRange` | `ReadOnly Property PeriodRange() As DateRange` | The overall date range of the policy period. |
| `CoverageRange` | `ReadOnly Property CoverageRange() As DateRange` | The date range during which coverage is in force for the period. |
| `EndOfCoverageDate` | `ReadOnly Property EndOfCoverageDate() As Date` | The date coverage ends for the period. |
| `FinancialSystem` | `ReadOnly Property FinancialSystem() As Enums.FinancialSystems` | The financial system (AR/WCIS/WINS) associated with the period. |
| `GoverningClassCode` | `ReadOnly Property GoverningClassCode() As String` | The governing classification code for the period. |
| `IsClaimsReimbursementEligible` | `ReadOnly Property IsClaimsReimbursementEligible() As Boolean` | Indicates whether the period is eligible for claims reimbursement. |
| `IsFinancePremium` | `ReadOnly Property IsFinancePremium() As Boolean` | Indicates whether the period's premium is financed. |
| `IsPerpetualMidPolicyARD` | `ReadOnly Property IsPerpetualMidPolicyARD() As Boolean` | Indicates whether the period has a perpetual mid-policy anniversary rating date. |
| `IsPerpetualMidPolicyRED` | `ReadOnly Property IsPerpetualMidPolicyRED() As Boolean` | Indicates whether the period has a perpetual mid-policy rating effective date. |
| `LastDateOfCoverage` | `ReadOnly Property LastDateOfCoverage() As Date` | The last date on which the period provides coverage. |
| `OriginalExpirationDate` | `ReadOnly Property OriginalExpirationDate() As Date` | The period's original (pre-endorsement) expiration date. |
| `PayrollReportFrequency` | `ReadOnly Property PayrollReportFrequency() As Enums.PayrollReportFrequencies` | How often payroll must be reported for the period. |
| `SalesPlan` | `ReadOnly Property SalesPlan() As Enums.SalesPlans` | The sales plan enum value for the period. |
| `SalesPlanCode` | `ReadOnly Property SalesPlanCode() As String` | The raw persisted sales-plan code for the period. |
| `PolicyIssuanceSystem` | `ReadOnly Property PolicyIssuanceSystem() As Enums.PolicyIssuanceSystems` | The system that issued the policy for this period. |
| `PolicyNumber` | `ReadOnly Property PolicyNumber() As Decimal` | The policy number this period belongs to. |
| `PolicyRenewalTrack` | `ReadOnly Property PolicyRenewalTrack() As Enums.RenewalTracks` | Whether the policy renews manually or automatically. |
| `PolicySuffix` | `ReadOnly Property PolicySuffix() As String` | The policy suffix identifying this period among a policy's periods. |
| `StandardPremiumAmount` | `ReadOnly Property StandardPremiumAmount() As Decimal` | The period's standard premium amount, subject to the policy minimum premium computed via the Oracle rating package, per [BR-POL-007](../../../../business-rules.md#br-pol-007-database-failures-are-swallowed-for-minimum-premium-retrieval) and [BR-POL-020](../../../../business-rules.md#br-pol-020-procedure-dispatches-by-market-type). |
| `ProratedStandardPremiumAmount` | `ReadOnly Property ProratedStandardPremiumAmount(ByVal inAsOfDate As Date) As Decimal` | The standard premium amount prorated as of the supplied date. |
| `UpdateDate` | `ReadOnly Property UpdateDate() As Date` | The date the period record was last updated. |
| `UpdateUser` | `ReadOnly Property UpdateUser() As String` | The user who last updated the period record. |
| `IsFlatCancelled` | `ReadOnly Property IsFlatCancelled() As Boolean` | Indicates whether the period was cancelled flat (no earned premium). |
| `IsRenewalPeriod` | `ReadOnly Property IsRenewalPeriod() As Boolean` | Indicates whether this period is a renewal of a prior period. |
| `IsCurrent` | `ReadOnly Property IsCurrent() As Boolean` | Indicates whether this is the currently active period. |
| `HasCoverage` | `ReadOnly Property HasCoverage() As Boolean` | Indicates whether the period currently provides coverage. |
| `IsArrearsBillingPlan` | `ReadOnly Property IsArrearsBillingPlan As Boolean` | Indicates whether the period is billed in arrears. |
| `IsIssued` | `ReadOnly Property IsIssued As Boolean` | Indicates whether the information page has been printed for this period, per [BR-POL-009](../../../../business-rules.md#br-pol-009-only-printed-p401-endorsements-count-as-issued-information-pages). |
| `Equals` (period overload) | `Overloads Function Equals(ByVal inPolicyPolicyPeriod As iPolicyPeriodBase) As Boolean` | Compares this period to another `iPolicyPeriodBase`; the concrete implementation in `clsPolicyPeriodBase` (`SAIF.Business.Policy.Core`) delegates to the key overload using the other period's `PolicyNumber` and `EffectiveDate` — the interface itself does not mandate this.* |
| `Equals` (key overload) | `Overloads Function Equals(ByVal inPolicyNumber As Decimal, ByVal inEffectiveDate As Date) As Boolean` | Compares this period against a policy number and effective date; the concrete implementation in `clsPolicyPeriodBase` returns `True` only when both `PolicyNumber` and `EffectiveDate` match this period's values — the interface itself does not mandate this.* |

## Inherited public members
| Member | Signature | Purpose |
| --- | --- | --- |
| `AnniversaryRatingDate` | `Property AnniversaryRatingDate() As Date` | Inherited from `iPeriodRatingInfo`; the anniversary rating date used for premium calculation. |
| `RatingEffectiveDate` | `Property RatingEffectiveDate() As Date` | Inherited from `iPeriodRatingInfo`; the date the current rating becomes effective. |
| `IsARDExtended` | `Property IsARDExtended() As Boolean` | Inherited from `iPeriodRatingInfo`; indicates the anniversary rating date has been extended. |
| `IsREDExtended` | `Property IsREDExtended() As Boolean` | Inherited from `iPeriodRatingInfo`; indicates the rating effective date has been extended. |
| `EffectiveDate` | `Property EffectiveDate() As Date` | Inherited from `iPeriodRatingInfo`; the effective date of the period. |
| `ExpirationDate` | `Property ExpirationDate() As Date` | Inherited from `iPeriodRatingInfo`; the expiration date of the period. |
| `RateTierCode` | `Property RateTierCode() As String` | Inherited from `iPeriodRatingInfo`; the rate tier code applicable to the period. |
| `MarketType` | `Property MarketType() As Enums.MarketTypes` | Inherited from `iPeriodRatingInfo`; the market type applicable to the period, per [BR-POL-003](../../../../business-rules.md#br-pol-003-persisted-policy-codes-map-to-fixed-domain-enums). |
| `GetHashCode` | `Function GetHashCode() As Integer` | Inherited from `iPeriodRatingInfo`; returns a hash code for the implementing instance, per [BR-POL-015](../../../../business-rules.md#br-pol-015-period-rating-equality-requires-all-eight-rating-attributes-to-match). |


## Behavioral notes
- Source declaration: `Business\SAIF.Business.Policy\iPolicyPeriodBase.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\iPolicyPeriodBase.vb`
