---
title: "Classify period status"
summary: "Classify period status."
status: draft
owner: Technical Writer
last_reviewed: 2026-07-31
library: SAIF.Business.Policy.Core
reference_type: package
operation_id: "OP-008"
trigger: "any status-driven presentation or branching"
---

# Classify period status

Classify period status describes the corresponding policy-core workflow and its BOF or Oracle touchpoints.

| Field | Value |
| --- | --- |
| **Operation ID** | OP-008 |
| **Trigger** | any status-driven presentation or branching |
| **Inputs** | status code string (or `Statuses` value for the reverse direction) |
| **Outputs** | `Statuses` / `StatusGroups` value (or code string) |
| **Primary components** | ``clsPolicyPeriodStatus.ConvertStatus`, `clsPolicyPeriodStatus.ConvertStatusGroup` (`clsPolicyPeriodStatus.vb`)` |
| **Entry point** | `Business\SAIF.Business.Policy.Core` |

## Steps
1. `ConvertStatus` maps codes to enum values ([BR-001](../business-rules.md#br-001-policy-period-status-codes-map-to-a-fixed)): `P`→Application, `0`→Current, `E`→Expired, `F`→FinalizedApplicationToBeProcessed, `FA`→PayrollReconciliationBilled, `FC`→PeriodOfNoCoverage, `FP`→PhysicalAuditBilled, `PPROS`→PMSProspect, `PR`→PreRenewal, `PF`→PreRenewalFinalized, `RA`→RenewalAccepted, `RF`→RenewalFinalized.
2. Unrecognised code → `Statuses.Unknown`; unrecognised enum on the reverse conversion → empty string ([BR-002](../business-rules.md#br-002-an-unrecognised-status-code-yields-statusesunknown-an-unrecognised)).
3. `ConvertStatusGroup` collapses statuses into groups ([BR-003](../business-rules.md#br-003-statuses-roll-up-into-six-status-groups-application)): Application/FinalizedApplicationToBeProcessed/PMSProspect → `Application`; PayrollReconciliationBilled/Expired/PhysicalAuditBilled → `Closed`; PeriodOfNoCoverage → `NoCoverage`; Current → `Open`; PreRenewalFinalized/RenewalAccepted/RenewalFinalized/PreRenewal → `Renewal`; anything else → `Unknown`.
4. Consolidate supporting references.
   - Related business rules: [BR-001](../business-rules.md#br-001-policy-period-status-codes-map-to-a-fixed), [BR-002](../business-rules.md#br-002-an-unrecognised-status-code-yields-statusesunknown-an-unrecognised), [BR-003](../business-rules.md#br-003-statuses-roll-up-into-six-status-groups-application), [BR-027](../business-rules.md#br-027-a-policy-status-code-must-be-non-empty), [BR-028](../business-rules.md#br-028-a-policy-in-application-status-raises-a-warning)
   - Related SQL statements: [SQL-092](../sql/SQL-092-saif-business-policy-core.md), [SQL-093](../sql/SQL-093-saif-business-policy-core.md), [SQL-094](../sql/SQL-094-saif-business-policy-core.md), [SQL-095](../sql/SQL-095-saif-business-policy-core.md)
   - Related tables: [POLICY_PERIOD_STATUS_CODE](../database-tables.md#policy_period_status_code), [POLICY_STATUS_CODE](../database-tables.md#policy_status_code)

## 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`
