---
title: "SAIF.Business.Policy.Core operations and processes"
summary: "Business and technical operations supported by this library."
status: draft
owner: Technical Writer
last_reviewed: 2026-07-31
library: SAIF.Business.Policy.Core
reference_type: package
---

# SAIF.Business.Policy.Core operations and processes

This page is the operation catalog and cross-operation hub for this library. Each operation's detailed, step-by-step logic lives in its own page under `operations/`.

## Operation catalog
| Operation | Intent | Trigger | Inputs | Outputs | Rules | Tables | SQL |
| --- | --- | --- | --- | --- | --- | --- | --- |
| [Retrieve a policy (optionally masked)](operations/retrieve-a-policy-optionally-masked.md) | Retrieve a policy (optionally masked) | caller requests a single policy by policy number | data portal, policy number, mask-data flag (default `False`) | populated `clsPolicy` | [BR-020](business-rules.md#br-020-when-masking-is-requested-policyholder-names-contact-identitycontact-method) | [CANCELLATION](database-tables.md#cancellation), [POLICY_PERIOD_MASTER](database-tables.md#policy_period_master), [BUSINESS](database-tables.md#business), [POLICY](database-tables.md#policy) | [SQL-070](sql/SQL-070-saif-business-policy-core.md), [SQL-071](sql/SQL-071-saif-business-policy-core.md), [SQL-072](sql/SQL-072-saif-business-policy-core.md), [SQL-073](sql/SQL-073-saif-business-policy-core.md) |
| [Retrieve affiliated policies / policies for an account](operations/retrieve-affiliated-policies-policies-for-an-account.md) | Retrieve affiliated policies / policies for an account | caller needs the set of policies related to a subject policy or account | data portal, policy number, `AffiliationTypes` value, mask-data flag | `clsPolicyCollection` | [BR-020](business-rules.md#br-020-when-masking-is-requested-policyholder-names-contact-identitycontact-method) | [POLICY](database-tables.md#policy) | [SQL-074](sql/SQL-074-saif-business-policy-core.md) |
| [Build a unified policy period timeline](operations/build-a-unified-policy-period-timeline.md) | Build a unified policy period timeline | any consumer needing the full period history of a policy across both administration systems | data portal, policy number (or `IEnumerable(Of Decimal)` of policy numbers, or an association type) | `clsPolicyPeriodBaseCollection` of `iPolicyPeriod` items | [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), [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-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) | [DUAL](database-tables.md#dual), [POLICY_PERIOD_MASTER](database-tables.md#policy_period_master), [POLICY_PERIOD_NON_WCIS](database-tables.md#policy_period_non_wcis), [POLICY_PERIOD](database-tables.md#policy_period) | [SQL-012](sql/SQL-012-saif-business-policy-core.md), [SQL-033](sql/SQL-033-saif-business-policy-core.md), [SQL-061](sql/SQL-061-saif-business-policy-core.md), [SQL-062](sql/SQL-062-saif-business-policy-core.md), [SQL-063](sql/SQL-063-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-088](sql/SQL-088-saif-business-policy-core.md), [SQL-091](sql/SQL-091-saif-business-policy-core.md), [SQL-134](sql/SQL-134-saif-business-policy-core.md), [SQL-155](sql/SQL-155-saif-business-policy-core.md) |
| [Configure dynamic period retrieval SQL](operations/configure-dynamic-period-retrieval-sql.md) | Configure dynamic period retrieval SQL | internal - invoked while executing OP-003 | `RetrievalModes` value, policy number, optional `StandardAssociationTypes` value | a fully-formed SQL statement plus bound parameters | [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), [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-016](business-rules.md#br-016-coverage-bound-status-is-sourced-from-wcis-for-modern), [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) | [POLICY_PERIOD](database-tables.md#policy_period) | [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-088](sql/SQL-088-saif-business-policy-core.md) |
| [Determine standard premium for a period](operations/determine-standard-premium-for-a-period.md) | Determine standard premium for a period | premium display or rating calculation | data portal, period context | standard premium amount | [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) | [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) | [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) |
| [Determine whether a period is issued](operations/determine-whether-a-period-is-issued.md) | Determine whether a period is issued | issuance/print status checks | — | `Boolean` | [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-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) | [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) | [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-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) |
| [Determine whether coverage is bound](operations/determine-whether-coverage-is-bound.md) | Determine whether coverage is bound | — | — | — | [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-016](business-rules.md#br-016-coverage-bound-status-is-sourced-from-wcis-for-modern), [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) | — | [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) |
| [Classify period status](operations/classify-period-status.md) | Classify period status | any status-driven presentation or branching | status code string (or `Statuses` value for the reverse direction) | `Statuses` / `StatusGroups` value (or code string) | [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) | [POLICY_PERIOD_STATUS_CODE](database-tables.md#policy_period_status_code), [POLICY_STATUS_CODE](database-tables.md#policy_status_code) | [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) |
| [Select the relevant period from a set](operations/select-the-relevant-period-from-a-set.md) | Select the relevant period from a set | consumers needing "the" period for a policy in a given context | — | — | [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) | [POLICY_PERIOD](database-tables.md#policy_period) | [SQL-088](sql/SQL-088-saif-business-policy-core.md) |
| [Determine ownership requirements for an entity type](operations/determine-ownership-requirements-for-an-entity-type.md) | Determine ownership requirements for an entity type | underwriting/ownership data entry validation | — | — | [BR-006](business-rules.md#br-006-ownership-information-is-required-for-all-entity-types), [BR-007](business-rules.md#br-007-sole-proprietors-require-exactly-one-owner-partnerships-limited), [BR-008](business-rules.md#br-008-for-the-guidewire-path-joint-ventures-require-one), [BR-026](business-rules.md#br-026-an-entity-type-must-have-a-valid-code) | [ENTITY_CODE](database-tables.md#entity_code) | [SQL-058](sql/SQL-058-saif-business-policy-core.md), [SQL-059](sql/SQL-059-saif-business-policy-core.md) |
| [Filter policy locations for a view](operations/filter-policy-locations-for-a-view.md) | Filter policy locations for a view | any consumer needing a location subset | — | — | [BR-017](business-rules.md#br-017-a-location-is-active-as-of-a-date), [BR-018](business-rules.md#br-018-summary-locations-are-active-locations-of-type-business), [BR-019](business-rules.md#br-019-only-location-types-flagged-policylocationflag-y-are), [BR-020](business-rules.md#br-020-when-masking-is-requested-policyholder-names-contact-identitycontact-method) | [DUAL](database-tables.md#dual), [LOCATION](database-tables.md#location), [CONTACT](database-tables.md#contact), [LOCATION_CODE](database-tables.md#location_code), [LOCATION_VIEW](database-tables.md#location_view) | [SQL-008](sql/SQL-008-saif-business-policy-core.md), [SQL-009](sql/SQL-009-saif-business-policy-core.md), [SQL-030](sql/SQL-030-saif-business-policy-core.md), [SQL-064](sql/SQL-064-saif-business-policy-core.md), [SQL-065](sql/SQL-065-saif-business-policy-core.md), [SQL-066](sql/SQL-066-saif-business-policy-core.md), [SQL-067](sql/SQL-067-saif-business-policy-core.md), [SQL-068](sql/SQL-068-saif-business-policy-core.md), [SQL-069](sql/SQL-069-saif-business-policy-core.md), [SQL-075](sql/SQL-075-saif-business-policy-core.md), [SQL-076](sql/SQL-076-saif-business-policy-core.md), [SQL-077](sql/SQL-077-saif-business-policy-core.md), [SQL-129](sql/SQL-129-saif-business-policy-core.md), [SQL-130](sql/SQL-130-saif-business-policy-core.md), [SQL-131](sql/SQL-131-saif-business-policy-core.md), [SQL-152](sql/SQL-152-saif-business-policy-core.md) |
| [Record a cancellation reason override](operations/record-a-cancellation-reason-override.md) | Record a cancellation reason override | user overrides a cancellation reason | — | inserted `CANCEL_REASON_OVERRIDE` row | [BR-009](business-rules.md#br-009-a-cancellation-reason-override-must-carry-a-valid), [BR-033](business-rules.md#br-033-new-sequence-values-for-writable-entities-are-obtained) | [DUAL](database-tables.md#dual), [CANCEL_REASON_CODE](database-tables.md#cancel_reason_code), [CANCELLATION](database-tables.md#cancellation), [CANCEL_REASON_OVERRIDE](database-tables.md#cancel_reason_override), [CARRIER_CHANGE_REASON_CODE](database-tables.md#carrier_change_reason_code), [CARRIER_CODE](database-tables.md#carrier_code) | [SQL-001](sql/SQL-001-saif-business-policy-core.md), [SQL-002](sql/SQL-002-saif-business-policy-core.md), [SQL-003](sql/SQL-003-saif-business-policy-core.md), [SQL-004](sql/SQL-004-saif-business-policy-core.md), [SQL-022](sql/SQL-022-saif-business-policy-core.md), [SQL-023](sql/SQL-023-saif-business-policy-core.md), [SQL-024](sql/SQL-024-saif-business-policy-core.md), [SQL-025](sql/SQL-025-saif-business-policy-core.md), [SQL-026](sql/SQL-026-saif-business-policy-core.md), [SQL-045](sql/SQL-045-saif-business-policy-core.md), [SQL-046](sql/SQL-046-saif-business-policy-core.md), [SQL-047](sql/SQL-047-saif-business-policy-core.md), [SQL-048](sql/SQL-048-saif-business-policy-core.md), [SQL-049](sql/SQL-049-saif-business-policy-core.md), [SQL-050](sql/SQL-050-saif-business-policy-core.md), [SQL-051](sql/SQL-051-saif-business-policy-core.md), [SQL-052](sql/SQL-052-saif-business-policy-core.md), [SQL-053](sql/SQL-053-saif-business-policy-core.md), [SQL-122](sql/SQL-122-saif-business-policy-core.md), [SQL-123](sql/SQL-123-saif-business-policy-core.md), [SQL-124](sql/SQL-124-saif-business-policy-core.md), [SQL-125](sql/SQL-125-saif-business-policy-core.md), [SQL-145](sql/SQL-145-saif-business-policy-core.md), [SQL-146](sql/SQL-146-saif-business-policy-core.md), [SQL-147](sql/SQL-147-saif-business-policy-core.md), [SQL-148](sql/SQL-148-saif-business-policy-core.md) |
| [Log a production error to WCIS](operations/log-a-production-error-to-wcis.md) | Log a production error to WCIS | — | — | — | — | — | [SQL-044](sql/SQL-044-saif-business-policy-core.md) |
| [Retrieve employers-liability limits](operations/retrieve-employers-liability-limits.md) | Retrieve employers-liability limits | — | — | — | [BR-021](business-rules.md#br-021-employers-liability-limits-may-be-retrieved-by-statistical-code), [BR-024](business-rules.md#br-024-employers-liability-limits-must-carry-a-valid-statistical-code), [BR-025](business-rules.md#br-025-per-period-employers-liability-limits-must-carry-a-valid-statistical), [BR-033](business-rules.md#br-033-new-sequence-values-for-writable-entities-are-obtained) | [DUAL](database-tables.md#dual), [POLICY_PERIOD_EMP_LIAB](database-tables.md#policy_period_emp_liab), [EMPLOYERS_LIABILITY_LIMITS](database-tables.md#employers_liability_limits), [EMPLOYERS_LIABILITY_FACTORS](database-tables.md#employers_liability_factors) | [SQL-010](sql/SQL-010-saif-business-policy-core.md), [SQL-011](sql/SQL-011-saif-business-policy-core.md), [SQL-031](sql/SQL-031-saif-business-policy-core.md), [SQL-032](sql/SQL-032-saif-business-policy-core.md), [SQL-056](sql/SQL-056-saif-business-policy-core.md), [SQL-057](sql/SQL-057-saif-business-policy-core.md), [SQL-089](sql/SQL-089-saif-business-policy-core.md), [SQL-090](sql/SQL-090-saif-business-policy-core.md), [SQL-132](sql/SQL-132-saif-business-policy-core.md), [SQL-133](sql/SQL-133-saif-business-policy-core.md), [SQL-153](sql/SQL-153-saif-business-policy-core.md), [SQL-154](sql/SQL-154-saif-business-policy-core.md) |

## Process flow diagram
The following diagram visualizes the primary operational flow across policy and period workflows.

```mermaid
flowchart TD
    Start([Caller request]) --> Policy[Retrieve policy or collection]
    Policy --> Periods[Resolve policy periods or lookups]
    Periods --> Branch{Persistence required?}
    Branch -->|Yes| Save[Run BOF write lifecycle]
    Branch -->|No| Return[Return query results]
    Save --> Return
```

## Inherited operations and processes

Operations in this section originate from BOF framework base classes.

### From `clsBusinessBase` (`SAIF.Framework.Core`)

| Operation | Intent | Provided by | Origin | Embedded in |
| --- | --- | --- | --- | --- |
| Manage edit session | Begin, cancel, or apply BOF edit state† | `clsBusinessBase` | `SAIF.Framework.Core` | Business-object types in this library |
| Evaluate business rules | Run named BOF rules and surface broken-rule state† | `clsBusinessBase` | `SAIF.Framework.Core` | Validation and save-oriented operations |

## Database interactions

| Operation | SQL | Tables | Type |
| --- | --- | --- | --- |
| [Retrieve a policy (optionally masked)](operations/retrieve-a-policy-optionally-masked.md) | [SQL-070](sql/SQL-070-saif-business-policy-core.md), [SQL-071](sql/SQL-071-saif-business-policy-core.md), [SQL-072](sql/SQL-072-saif-business-policy-core.md), [SQL-073](sql/SQL-073-saif-business-policy-core.md) | [CANCELLATION](database-tables.md#cancellation), [POLICY_PERIOD_MASTER](database-tables.md#policy_period_master), [BUSINESS](database-tables.md#business), [POLICY](database-tables.md#policy) | Read / helper |
| [Retrieve affiliated policies / policies for an account](operations/retrieve-affiliated-policies-policies-for-an-account.md) | [SQL-074](sql/SQL-074-saif-business-policy-core.md) | [POLICY](database-tables.md#policy) | Read / helper |
| [Build a unified policy period timeline](operations/build-a-unified-policy-period-timeline.md) | [SQL-012](sql/SQL-012-saif-business-policy-core.md), [SQL-033](sql/SQL-033-saif-business-policy-core.md), [SQL-061](sql/SQL-061-saif-business-policy-core.md), [SQL-062](sql/SQL-062-saif-business-policy-core.md), [SQL-063](sql/SQL-063-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-088](sql/SQL-088-saif-business-policy-core.md), [SQL-091](sql/SQL-091-saif-business-policy-core.md), [SQL-134](sql/SQL-134-saif-business-policy-core.md), [SQL-155](sql/SQL-155-saif-business-policy-core.md) | [DUAL](database-tables.md#dual), [POLICY_PERIOD_MASTER](database-tables.md#policy_period_master), [POLICY_PERIOD_NON_WCIS](database-tables.md#policy_period_non_wcis), [POLICY_PERIOD](database-tables.md#policy_period) | Write |
| [Configure dynamic period retrieval SQL](operations/configure-dynamic-period-retrieval-sql.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-088](sql/SQL-088-saif-business-policy-core.md) | [POLICY_PERIOD](database-tables.md#policy_period) | Read / helper |
| [Determine standard premium for a period](operations/determine-standard-premium-for-a-period.md) | [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) | [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) | Read / helper |
| [Determine whether a period is issued](operations/determine-whether-a-period-is-issued.md) | [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-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) | [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) | Read / helper |
| [Determine whether coverage is bound](operations/determine-whether-coverage-is-bound.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) | — | Read / helper |
| [Classify period status](operations/classify-period-status.md) | [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) | [POLICY_PERIOD_STATUS_CODE](database-tables.md#policy_period_status_code), [POLICY_STATUS_CODE](database-tables.md#policy_status_code) | Read / helper |
| [Select the relevant period from a set](operations/select-the-relevant-period-from-a-set.md) | [SQL-088](sql/SQL-088-saif-business-policy-core.md) | [POLICY_PERIOD](database-tables.md#policy_period) | Read / helper |
| [Determine ownership requirements for an entity type](operations/determine-ownership-requirements-for-an-entity-type.md) | [SQL-058](sql/SQL-058-saif-business-policy-core.md), [SQL-059](sql/SQL-059-saif-business-policy-core.md) | [ENTITY_CODE](database-tables.md#entity_code) | Read / helper |
| [Filter policy locations for a view](operations/filter-policy-locations-for-a-view.md) | [SQL-008](sql/SQL-008-saif-business-policy-core.md), [SQL-009](sql/SQL-009-saif-business-policy-core.md), [SQL-030](sql/SQL-030-saif-business-policy-core.md), [SQL-064](sql/SQL-064-saif-business-policy-core.md), [SQL-065](sql/SQL-065-saif-business-policy-core.md), [SQL-066](sql/SQL-066-saif-business-policy-core.md), [SQL-067](sql/SQL-067-saif-business-policy-core.md), [SQL-068](sql/SQL-068-saif-business-policy-core.md), [SQL-069](sql/SQL-069-saif-business-policy-core.md), [SQL-075](sql/SQL-075-saif-business-policy-core.md), [SQL-076](sql/SQL-076-saif-business-policy-core.md), [SQL-077](sql/SQL-077-saif-business-policy-core.md), [SQL-129](sql/SQL-129-saif-business-policy-core.md), [SQL-130](sql/SQL-130-saif-business-policy-core.md), [SQL-131](sql/SQL-131-saif-business-policy-core.md), [SQL-152](sql/SQL-152-saif-business-policy-core.md) | [DUAL](database-tables.md#dual), [LOCATION](database-tables.md#location), [CONTACT](database-tables.md#contact), [LOCATION_CODE](database-tables.md#location_code), [LOCATION_VIEW](database-tables.md#location_view) | Write |
| [Record a cancellation reason override](operations/record-a-cancellation-reason-override.md) | [SQL-001](sql/SQL-001-saif-business-policy-core.md), [SQL-002](sql/SQL-002-saif-business-policy-core.md), [SQL-003](sql/SQL-003-saif-business-policy-core.md), [SQL-004](sql/SQL-004-saif-business-policy-core.md), [SQL-022](sql/SQL-022-saif-business-policy-core.md), [SQL-023](sql/SQL-023-saif-business-policy-core.md), [SQL-024](sql/SQL-024-saif-business-policy-core.md), [SQL-025](sql/SQL-025-saif-business-policy-core.md), [SQL-026](sql/SQL-026-saif-business-policy-core.md), [SQL-045](sql/SQL-045-saif-business-policy-core.md), [SQL-046](sql/SQL-046-saif-business-policy-core.md), [SQL-047](sql/SQL-047-saif-business-policy-core.md), [SQL-048](sql/SQL-048-saif-business-policy-core.md), [SQL-049](sql/SQL-049-saif-business-policy-core.md), [SQL-050](sql/SQL-050-saif-business-policy-core.md), [SQL-051](sql/SQL-051-saif-business-policy-core.md), [SQL-052](sql/SQL-052-saif-business-policy-core.md), [SQL-053](sql/SQL-053-saif-business-policy-core.md), [SQL-122](sql/SQL-122-saif-business-policy-core.md), [SQL-123](sql/SQL-123-saif-business-policy-core.md), [SQL-124](sql/SQL-124-saif-business-policy-core.md), [SQL-125](sql/SQL-125-saif-business-policy-core.md), [SQL-145](sql/SQL-145-saif-business-policy-core.md), [SQL-146](sql/SQL-146-saif-business-policy-core.md), [SQL-147](sql/SQL-147-saif-business-policy-core.md), [SQL-148](sql/SQL-148-saif-business-policy-core.md) | [DUAL](database-tables.md#dual), [CANCEL_REASON_CODE](database-tables.md#cancel_reason_code), [CANCELLATION](database-tables.md#cancellation), [CANCEL_REASON_OVERRIDE](database-tables.md#cancel_reason_override), [CARRIER_CHANGE_REASON_CODE](database-tables.md#carrier_change_reason_code), [CARRIER_CODE](database-tables.md#carrier_code) | Write |
| [Log a production error to WCIS](operations/log-a-production-error-to-wcis.md) | [SQL-044](sql/SQL-044-saif-business-policy-core.md) | — | Write |
| [Retrieve employers-liability limits](operations/retrieve-employers-liability-limits.md) | [SQL-010](sql/SQL-010-saif-business-policy-core.md), [SQL-011](sql/SQL-011-saif-business-policy-core.md), [SQL-031](sql/SQL-031-saif-business-policy-core.md), [SQL-032](sql/SQL-032-saif-business-policy-core.md), [SQL-056](sql/SQL-056-saif-business-policy-core.md), [SQL-057](sql/SQL-057-saif-business-policy-core.md), [SQL-089](sql/SQL-089-saif-business-policy-core.md), [SQL-090](sql/SQL-090-saif-business-policy-core.md), [SQL-132](sql/SQL-132-saif-business-policy-core.md), [SQL-133](sql/SQL-133-saif-business-policy-core.md), [SQL-153](sql/SQL-153-saif-business-policy-core.md), [SQL-154](sql/SQL-154-saif-business-policy-core.md) | [DUAL](database-tables.md#dual), [POLICY_PERIOD_EMP_LIAB](database-tables.md#policy_period_emp_liab), [EMPLOYERS_LIABILITY_LIMITS](database-tables.md#employers_liability_limits), [EMPLOYERS_LIABILITY_FACTORS](database-tables.md#employers_liability_factors) | Write |

## Failure and edge-case behavior
- Unsupported association types raise an exception through [BR-012](business-rules.md#br-012-an-association-type-outside-the-supported-set-is).
- Legacy-period issuance always reports false through [BR-015](business-rules.md#br-015-a-legacy-policy-period-is-never-reported-as).
- Masking behavior is caller-controlled through [BR-020](business-rules.md#br-020-when-masking-is-requested-policyholder-names-contact-identitycontact-method).

## Related documentation
- [Index](index.md)
- [Overview](overview.md)
- [Architecture](architecture.md)
- [Dependencies](dependencies.md)
- [Business rules](business-rules.md)
- [Database tables](database-tables.md)
- [SQL catalog](sql/index.md)
- [Procedures](procedures/index.md)
- [Configuration](configuration.md)
- [API reference](api/index.md)

> **Note:** Statements marked with `†` are derived from dependency library
> documentation via the Legends CLI.

## Sources
- `Business\SAIF.Business.Policy.Core\clsPolicy.vb`
- `Business\SAIF.Business.Policy.Core\clsPolicyCollection.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\clsEntityType.vb`
- `Business\SAIF.Business.Policy.Core\clsPolicyLocationCollection.vb`
- `Business\SAIF.Business.Policy.Core\clsCancelReasonOverride.vb`
- `Business\SAIF.Business.Policy.Core\WCISInquiry.vb`

## Stored procedure operations

| Operation | Description | Source | Link |
| --- | --- | --- | --- |
| Compute WCIS standard premium for a premium-history set | Sums premium-summary difference amounts up to the experience-modification priority for one premium-history set |`pk72195_renewal.sp72187_get_standard_prem` | [Details](procedures/pk72195-renewal-sp72187-get-standard-prem.md#operations) |
| Calculate weighted claim frequency | Remote passthrough to POLDB for renewal weighted-frequency calculation |`pk72195_renewal.sp72190_calc_weighted_freq` | [Details](procedures/pk72195-renewal-sp72190-calc-weighted-freq.md#operations) |
| Classify a policy as regional-office | Applies four ordered tests (premium threshold, temp agency, FELA/Maritime jurisdiction, entity 50) to decide regional-office handling |`pk72226_team_assignment.regional_office_yn` | [Details](procedures/pk72226-team-assignment-regional-office-yn.md#operations) |
| Retrieve standardised WCIS standard premium | Resolves the latest premium-history set for the period and returns its standard premium |`pk72846_view_policy.sp73111_get_wcis_std_premium` | [Details](procedures/pk72846-view-policy-sp73111-get-wcis-std-premium.md#operations) |
| Log a production error | Writes a module/error row in an autonomous transaction so the log survives caller rollback |`pk72899_production_error.sp72900_post_production_error` | [Details](procedures/pk72899-production-error-sp72900-post-production-error.md#operations) |
| Determine payroll-report-schedule billing | Walks billing master → billing defaults → payment-plan type to read the payroll-report-schedule flag |`pk73057_billing_master.bm_report_schedule_flag_yn` | [Details](procedures/pk73057-billing-master-bm-report-schedule-flag-yn.md#operations) |
| Determine arrears billing | Same join path; classifies the plan as arrears unless it generates instalments or prepayments |`pk73057_billing_master.is_on_arrears_plan` | [Details](procedures/pk73057-billing-master-is-on-arrears-plan.md#operations) |
| Determine manual premium | Remote passthrough to POLDB for manual premium |`pk73059_prem_hist_summary.determine_manual_premium` | [Details](procedures/pk73059-prem-hist-summary-determine-manual-premium.md#operations) |
| Derive the six-digit governing class (WCIS) | Picks the manual class with the greatest summed payroll in the latest premium-history set, excluding clerical/sales/drivers, with two fallback passes |`pk73059_prem_hist_summary.get_6_digit_gov_class` | [Details](procedures/pk73059-prem-hist-summary-get-6-digit-gov-class.md#operations) |
| Count billing-master rows for quote print | Remote count wrapper used to decide whether billing data exists for a quote |`pk73190_quoteprint.Get_Billing_Master_Count` | [Details](procedures/pk73190-quoteprint-get-billing-master-count.md#operations) |
| Count premium-history rows for quote print | Remote count wrapper used to decide whether premium history exists for a quote |`pk73190_quoteprint.Get_Premium_History_Count` | [Details](procedures/pk73190-quoteprint-get-premium-history-count.md#operations) |
| Count rating plans for quote print | Remote count wrapper used to decide whether rating plans exist for a quote |`pk73190_quoteprint.Get_Rating_Plan_Count` | [Details](procedures/pk73190-quoteprint-get-rating-plan-count.md#operations) |
| Report information-page print status | Character wrapper over the boolean`sp72253_info_page_printed` |`SP72347_INFO_PAGE_PRINTED_YN` | [Details](procedures/sp72347-info-page-printed-yn.md#operations) |
| Retrieve the WCIS governing class | Calls the rating package and returns only the governing class, discarding the minimum premium |`SP72658_GET_GOV_CLASS` | [Details](procedures/sp72658-get-gov-class.md#operations) |
| Run the preliminary-audit finalization edit | Remote edit that sets an`IN OUT` flag indicating whether a preliminary audit is required |`Sp72803_Edit_Prelim_Audit` | [Details](procedures/sp72803-edit-prelim-audit.md#operations) |
| Derive the continuous-coverage date | Finds the most recent break in the policy-period chain and in the explicit coverage-gap table, then picks the appropriate resumption date |`sp72814_get_cont_cov_date` | [Details](procedures/sp72814-get-cont-cov-date.md#operations) |
| Derive the legacy governing class | Same payroll-contest algorithm as the WCIS version but over legacy class-coverage tables and truncated to four digits |`SP73029_GET_NONWCIS_GOV_CLASS` | [Details](procedures/sp73029-get-nonwcis-gov-class.md#operations) |
| Report coverage-bound status | Character wrapper over the boolean`sp72325_chk_if_policy_bound` |`sp73089_get_policy_bound_flag` | [Details](procedures/sp73089-get-policy-bound-flag.md#operations) |
