---
title: "Select the relevant period from a set"
summary: "Select the relevant period from a set."
status: draft
owner: Technical Writer
last_reviewed: 2026-07-31
library: SAIF.Business.Policy.Core
reference_type: package
operation_id: "OP-009"
trigger: "consumers needing \"the\" period for a policy in a given context"
---

# Select the relevant period from a set

Select the relevant period from a set describes the corresponding policy-core workflow and its BOF or Oracle touchpoints.

| Field | Value |
| --- | --- |
| **Operation ID** | OP-009 |
| **Trigger** | consumers needing "the" period for a policy in a given context |
| **Inputs** | — |
| **Outputs** | — |
| **Primary components** | ``iPolicyPeriodExtensions` (`iPolicyPeriodExtensions.vb`)` |
| **Entry point** | `Business\SAIF.Business.Policy.Core` |

## Steps
1. `MostRecent` → the period with the maximum `EffectiveDate`.
2. `CurrentPeriod` → the first period where `IsCurrent` is `True`; if none, the latest period by `EffectiveDate` ([BR-004](../business-rules.md#br-004-the-current-period-is-the-first-period-flagged)).
3. `RenewalPeriod` → the first period where `IsRenewalPeriod` is `True`.
4. `BasePeriods(ard)` → periods whose `BeginDate` falls within `[ARD − 57 months, ARD + 3 years)` using `IncludeComparisons.FirstOnly` - the experience-rating base period window ([BR-005](../business-rules.md#br-005-experience-rating-base-periods-are-those-whose-begin-date)).
5. Consolidate supporting references.
   - Related business rules: [BR-004](../business-rules.md#br-004-the-current-period-is-the-first-period-flagged), [BR-005](../business-rules.md#br-005-experience-rating-base-periods-are-those-whose-begin-date), [BR-010](../business-rules.md#br-010-a-policys-period-history-is-the-union-of), [BR-011](../business-rules.md#br-011-association-based-period-retrieval-uses-a-different-predicate-per), [BR-012](../business-rules.md#br-012-an-association-type-outside-the-supported-set-is)
   - Related SQL statements: [SQL-088](../sql/SQL-088-saif-business-policy-core.md)
   - Related tables: [POLICY_PERIOD](../database-tables.md#policy_period)

## Process flow

The following diagram visualizes this operation's control flow.

```mermaid
flowchart TD
    Start([Trigger]) --> S1[Apply policy-core logic]
    S1 --> D{Validation or branch?}
    D -->|Continue| S2[Execute BOF SQL or Oracle call]
    D -->|Stop| EndErr([Return error or empty result])
    S2 --> EndOk([Return populated result])
```

## Failure and edge-case behavior
- Error, warning, and empty-result behavior follows the rules and SQL cited in the steps above.
- Stored-procedure-backed paths depend on Oracle-side logic outside this repository.**

## Related documentation
- [Operations and processes](../operations-processes.md)
- [Business rules](../business-rules.md)
- [SQL catalog](../sql/index.md)
- [Database tables](../database-tables.md)

> **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.Core\clsPolicy.vb`
- `Business\SAIF.Business.Policy.Core\clsPolicyPeriodBase.vb`
- `Business\SAIF.Business.Policy.Core\clsPolicyPeriod.vb`
- `Business\SAIF.Business.Policy.Core\clsLegacyPolicyPeriod.vb`
- `Business\SAIF.Business.Policy.Core\clsCancelReasonOverride.vb`
- `Business\SAIF.Business.Policy.Core\WCISInquiry.vb`
