---
title: "Determine standard premium for a period"
summary: "Determine standard premium for a period."
status: draft
owner: Technical Writer
last_reviewed: 2026-07-31
library: SAIF.Business.Policy.Core
reference_type: package
operation_id: "OP-005"
trigger: "premium display or rating calculation"
---

# Determine standard premium for a period

Determine standard premium for a period describes the corresponding policy-core workflow and its BOF or Oracle touchpoints.

| Field | Value |
| --- | --- |
| **Operation ID** | OP-005 |
| **Trigger** | premium display or rating calculation |
| **Inputs** | data portal, period context |
| **Outputs** | standard premium amount |
| **Primary components** | ``clsPolicyPeriodBase.GetStandardPremium(...)` (`clsPolicyPeriodBase.vb`)` |
| **Entry point** | `Business\SAIF.Business.Policy.Core` |

## Steps
1. Inspect the period's `FinancialSystem`.
2. `WCIS` → `GetWCISStandardPremium`, which calls Oracle procedure `pk72846_view_policy.sp73111_get_wcis_std_premium`.
3. `AR` or `WINS` → `GetARStandardPremium`, which executes `ARStandardPremiumSQL`.
4. Any other financial system → return `0` ([BR-013](../business-rules.md#br-013-standard-premium-is-sourced-from-wcis-for-wcis)).
5. Consolidate supporting references.
   - Related business rules: [BR-010](../business-rules.md#br-010-a-policys-period-history-is-the-union-of), [BR-013](../business-rules.md#br-013-standard-premium-is-sourced-from-wcis-for-wcis), [BR-014](../business-rules.md#br-014-a-modern-policy-period-is-considered-issued-when), [BR-015](../business-rules.md#br-015-a-legacy-policy-period-is-never-reported-as), [BR-016](../business-rules.md#br-016-coverage-bound-status-is-sourced-from-wcis-for-modern), [BR-022](../business-rules.md#br-022-a-policy-period-must-have-a-non-zero-policy), [BR-023](../business-rules.md#br-023-a-policy-period-must-have-an-effective-date), [BR-031](../business-rules.md#br-031-a-policy-period-is-flat-cancelled-when-its-effective), [BR-032](../business-rules.md#br-032-preliminary-audit-is-required-when-the-wcis-edit)
   - Related SQL statements: [SQL-061](../sql/SQL-061-saif-business-policy-core.md), [SQL-062](../sql/SQL-062-saif-business-policy-core.md), [SQL-078](../sql/SQL-078-saif-business-policy-core.md), [SQL-079](../sql/SQL-079-saif-business-policy-core.md), [SQL-080](../sql/SQL-080-saif-business-policy-core.md), [SQL-081](../sql/SQL-081-saif-business-policy-core.md), [SQL-082](../sql/SQL-082-saif-business-policy-core.md), [SQL-083](../sql/SQL-083-saif-business-policy-core.md), [SQL-084](../sql/SQL-084-saif-business-policy-core.md), [SQL-085](../sql/SQL-085-saif-business-policy-core.md), [SQL-086](../sql/SQL-086-saif-business-policy-core.md), [SQL-087](../sql/SQL-087-saif-business-policy-core.md), [SQL-106](../sql/SQL-106-saif-business-policy-core.md), [SQL-107](../sql/SQL-107-saif-business-policy-core.md), [SQL-108](../sql/SQL-108-saif-business-policy-core.md), [SQL-109](../sql/SQL-109-saif-business-policy-core.md), [SQL-110](../sql/SQL-110-saif-business-policy-core.md), [SQL-111](../sql/SQL-111-saif-business-policy-core.md), [SQL-112](../sql/SQL-112-saif-business-policy-core.md), [SQL-113](../sql/SQL-113-saif-business-policy-core.md), [SQL-114](../sql/SQL-114-saif-business-policy-core.md), [SQL-115](../sql/SQL-115-saif-business-policy-core.md), [SQL-116](../sql/SQL-116-saif-business-policy-core.md), [SQL-117](../sql/SQL-117-saif-business-policy-core.md), [SQL-118](../sql/SQL-118-saif-business-policy-core.md), [SQL-119](../sql/SQL-119-saif-business-policy-core.md), [SQL-120](../sql/SQL-120-saif-business-policy-core.md), [SQL-121](../sql/SQL-121-saif-business-policy-core.md)
   - Related tables: [NON_WCIS_STAT_TRANS](../database-tables.md#non_wcis_stat_trans), [SUB_CONSTANTS](../database-tables.md#sub_constants), [POLICY_PERIOD](../database-tables.md#policy_period), [POLICY](../database-tables.md#policy), [WCIS_CONSTANTS](../database-tables.md#wcis_constants)

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