---
title: SAIF.Business.View.Policy database tables
summary: Database tables used by this library with relationships and usage context.
status: draft
owner: SAIF Doc Gen
last_reviewed: "2026-08-17"
library: SAIF.Business.View.Policy
reference_type: package
---


# SAIF.Business.View.Policy database tables

This page catalogs the database tables that `SAIF.Business.View.Policy` reads directly from inline SQL. Every table is read only; the library implements no insert, update, or delete path ([BR-021](business-rules.md#br-021-this-library-never-writes-policy-data)).

Most policy data reaches this library through Oracle stored procedures rather than through direct table access. Tables touched only inside a procedure body are not listed here because they are opaque to the .NET source; they are described on the [Procedures](procedures/index.md) pages instead.

A separate SQL Server data store, configured through the `BDS_*` settings described on the [Configuration](configuration.md) page, backs the group-membership procedure `cp_policy_in_group` used by [BR-006](business-rules.md#br-006-group-users-see-only-policies-in-their-group-or-chapter). That store is reached through its own connection path and none of its tables are referenced by name in this library's source, so no table entry can be cataloged for it.**

The SQL Server BDS database (`eisD0P11`) also backs the legacy external-client e-mail lookup procedure [cp_external_client_lookup](procedures/cp_external_client_lookup.md), which reads the `Net_Registrant` table via a three-part name (`EIS_PROD.dbo.Net_Registrant`) confirmed by retrieved procedure source.

## Table catalog

| Table | Database | Schema/Link | CRUD | Purpose | Primary business object |
| --- | --- | --- | --- | --- | --- |
| [ASSOCIATION_TYPE_CODE](#association-type-code) | Oracle | `[unqualified]`** | R | Association type reference data and source-procedure dispatch | `clsAssociationTypeCode` |
| [NON_EMPR_ACCT](#non-empr-acct) | Oracle | `[unqualified]`** | R | Non-employer account master | `clsNonEmployerAccount` |
| [TRADING_AS](#trading-as) | Oracle | `[unqualified]`** | R | Registered trading-as names for a policy | `clsTradingAs` |
| [BUSINESS_AFFILIATE](#business-affiliate) | Oracle | `[unqualified]`** | R | Policy-to-affiliate links, including officer of notice | `clsPolicyAddress` |
| [AFFILIATE](#affiliate) | Oracle | `[unqualified]`** | R | Affiliate person master supplying name parts | `clsPolicyAddress` |
| [PA_AUDIT](#pa-audit) | Oracle | `[unqualified]`** | R | Premium-audit history | `clsPolicyData` |
| [CANCELLATION](#cancellation) | Oracle | `[unqualified]`** | R | Cancellation history | `clsPolicyData` |
| [POLICY_RELATIONSHIP](#policy-relationship) | Oracle | `[unqualified]`** | R | Manually maintained policy affiliations | `PolicyAssociationList` |
| [POLICY](#policy) | Oracle | `[unqualified]`** | R | Policy master, read for system-derived relationships | `PolicyAssociationList` |
| [COMBO_POLICY_PERIOD](#combo-policy-period) | Oracle | `[unqualified]`** | R | Premium-discount combination membership | `PolicyAssociationList` |
| [POLICY_PERIOD](#policy-period) | Oracle | `[unqualified]`** | R | Policy period master and date scoping | `PolicyAssociationList` |
| [ER_COMBINATION_POLICY](#er-combination-policy) | Oracle | `[unqualified]`** | R | Experience-rating combination membership | `PolicyAssociationList` |
| [POLICY_PERIOD_ALL](#policy-period-all) | Oracle | `[unqualified]`** | R | All policy periods, including non-WCIS | `clsAssociationTypeCode` |
| [ENDORSEMENT](#endorsement) | Oracle | `[unqualified]`** | R | Endorsement history identifying issued periods | `clsAssociationTypeCode` |
| [POLICY_PERIOD_NON_WCIS](#policy-period-non-wcis) | Oracle | `[unqualified]`** | R | Non-WCIS policy periods and their status | `clsAssociationTypeCode` |
| [Net_Registrant](#net_registrant) | SQL Server | `EIS_PROD.dbo` (three-part name, BDS database `eisD0P11`) | R | External client/registrant master, queried for e-mail lookup by ID and last name | `clsTeamAssignment` |

## Net_Registrant

| Field | Value |
| --- | --- |
| **Database** | SQL Server (BDS database `eisD0P11`) |
| **Schema/Link** | `EIS_PROD.dbo` (three-part name) |
| **Purpose** | External client/registrant master. Queried to resolve a non-SAIF team member's e-mail address by mail ID and last name. |
| **Access pattern** | Stored procedure (`cp_external_client_lookup`) |
| **CRUD operations** | Read |
| **Key columns used** | ID_NUM, USER_LAST_NAM, ACTIVE_FL, TEST_USER_FL, UPDATE_DATE, EMAIL_ADDR |
| **Sequence** | N/A |
| **Related tables** | None referenced in the retrieved procedure source. |
| **Business objects** | `clsTeamAssignment` |

### Operations referencing this table

- [Look up external client e-mail (legacy, SQL Server)](operations-processes.md#stored-procedure-operations)

### Business rules referencing this table

- [PROC-RULE-022, PROC-RULE-023, PROC-RULE-024](business-rules.md#stored-procedure-business-rules)



## ASSOCIATION_TYPE_CODE

| Field | Value |
| --- | --- |
| **Database** | Oracle |
| **Schema/Link** | `[unqualified]`** |
| **Purpose** | Reference table of policy association type codes. Each row supplies the display description, category, sort order, security group, and the name of the stored procedure that supplies associations of that type. |
| **Access pattern** | Direct SQL |
| **CRUD operations** | Read |
| **Key columns used** | CODE, CODE_DESCR, ASSOCIATION_TYPE_CATEGORY_CODE, SOURCE_PROCEDURE_NAME, SECURITY_GROUP_NAME, SORT_ORDER, POLICY_HEADER_DEFAULT_FLAG |
| **Sequence** | N/A |
| **Related tables** | None — the table is loaded in full and joined in memory. |
| **Business objects** | `clsAssociationTypeCode`, `clsAssociationTypeCodeCollection` |

### Operations referencing this table

- [Resolve policy-header associations](operations/resolve-policy-header-associations.md)

### Business rules referencing this table

- [BR-015: Unrecognized relationship codes are classified as not specified](business-rules.md#br-015-unrecognized-relationship-codes-are-classified-as-not-specified)
- [BR-017: Association rows without a matching type code are discarded](business-rules.md#br-017-association-rows-without-a-matching-type-code-are-discarded)

### SQL referencing this table

- [SQL-003: Association type code table load](sql/SQL-003-association-type-code-table.md)
- [SQL-029: Data-driven association source procedure call](sql/SQL-029-non-typed-associations.md)

---

## NON_EMPR_ACCT

| Field | Value |
| --- | --- |
| **Database** | Oracle |
| **Schema/Link** | `[unqualified]`** |
| **Purpose** | Account master for non-employer accounts, which are billed and addressed like policies but carry no policy number. |
| **Access pattern** | Direct SQL |
| **CRUD operations** | Read |
| **Key columns used** | ACCT_NUM, ACCT_NAM, ADDR_LINE1, ADDR_LINE2, CITY_NAM, STATE_CD, ZIP_CD, PHONE_NUM |
| **Sequence** | N/A |
| **Related tables** | None — the table is queried standalone by account number. |
| **Business objects** | `clsNonEmployerAccount` |

### Operations referencing this table

- [Retrieve supporting policy aggregates](operations/retrieve-supporting-policy-aggregates.md)

### Business rules referencing this table

- [BR-010: A non-employer account requires a non-zero account number](business-rules.md#br-010-a-non-employer-account-requires-a-non-zero-account-number)

### SQL referencing this table

- [SQL-004: Non-employer account retrieval](sql/SQL-004-non-employer-account.md)

---

## TRADING_AS

| Field | Value |
| --- | --- |
| **Database** | Oracle |
| **Schema/Link** | `[unqualified]`** |
| **Purpose** | Registered trading-as (doing-business-as) names for a policy, with their effective and cancellation dates. |
| **Access pattern** | Direct SQL |
| **CRUD operations** | Read |
| **Key columns used** | BUS_SEQ_NUM, POLICY_NUM, TRADING_SEQ_NUM, FEID_NUM, TRADING_AS_NAME, TRADING_AS_CANCEL_DATE, TRADING_AS_TYPE_CODE |
| **Sequence** | N/A |
| **Related tables** | `POLICY` (through `POLICY_NUM`; the relationship is expressed as a criteria filter rather than an explicit join)* |
| **Business objects** | `clsTradingAs`, `clsTradingAsCollection` |

### Operations referencing this table

- [Retrieve supporting policy aggregates](operations/retrieve-supporting-policy-aggregates.md)

### SQL referencing this table

- [SQL-010: Trading-as record retrieval by sequence number](sql/SQL-010-trading-as-by-seq-num.md)
- [SQL-011: Trading-as collection retrieval by policy](sql/SQL-011-trading-as-by-policy.md)

---

## BUSINESS_AFFILIATE

| Field | Value |
| --- | --- |
| **Database** | Oracle |
| **Schema/Link** | `[unqualified]`** |
| **Purpose** | Links a policy to the individuals affiliated with the insured business, including the flag that identifies the officer of notice. |
| **Access pattern** | Direct SQL |
| **CRUD operations** | Read |
| **Key columns used** | POLICY_NUM, OFFICER_OF_NOTICE_FLAG, AFFILIATE_CANCEL_DATE, AFFILIATE_SSN |
| **Sequence** | N/A |
| **Related tables** | `AFFILIATE` |
| **Business objects** | `clsPolicyAddress` |

### Operations referencing this table

- [Retrieve supporting policy aggregates](operations/retrieve-supporting-policy-aggregates.md)

### SQL referencing this table

- [SQL-012: Officer-of-notice name lookup](sql/SQL-012-officer-of-notice.md)

---

## AFFILIATE

| Field | Value |
| --- | --- |
| **Database** | Oracle |
| **Schema/Link** | `[unqualified]`** |
| **Purpose** | Person master for business affiliates. Supplies the name parts assembled into the officer-of-notice display name. |
| **Access pattern** | Direct SQL |
| **CRUD operations** | Read |
| **Key columns used** | AFFILIATE_SSN, AFFILIATE_FIRST_NAME, AFFILIATE_INITIAL, AFFILIATE_LAST_NAME |
| **Sequence** | N/A |
| **Related tables** | `BUSINESS_AFFILIATE` |
| **Business objects** | `clsPolicyAddress` |

### Operations referencing this table

- [Retrieve supporting policy aggregates](operations/retrieve-supporting-policy-aggregates.md)

### SQL referencing this table

- [SQL-012: Officer-of-notice name lookup](sql/SQL-012-officer-of-notice.md)

---

## PA_AUDIT

| Field | Value |
| --- | --- |
| **Database** | Oracle |
| **Schema/Link** | `[unqualified]`** |
| **Purpose** | Premium-audit history for a policy. Used to report the most recent completed final audit and, in the security layer, to decide whether a fee auditor's engagement is current. |
| **Access pattern** | Direct SQL |
| **CRUD operations** | Read |
| **Key columns used** | POLICY_NUM, PA_TYPE_CODE, PA_STATUS_CODE, COMPLETED_DATE, END_DATE, PA_SLCTN_CATEGORY_GROUP_CODE, PA_AUDIT_SEQ_NUM |
| **Sequence** | N/A |
| **Related tables** | None — the table is queried standalone by policy number. |
| **Business objects** | `clsPolicyData` |

### Operations referencing this table

- [Lazy-load policy detail](operations/lazy-load-policy-detail.md)
- [Authorize a policy for the current user](operations/authorize-policy-for-user.md)

### Business rules referencing this table

- [BR-008: Fee auditors see only policies with a recent, non-cancelled audit](business-rules.md#br-008-fee-auditors-see-only-policies-with-a-recent-non-cancelled-audit)

### SQL referencing this table

- [SQL-018: Last completed audit date lookup](sql/SQL-018-last-audit-date.md)

---

## CANCELLATION

| Field | Value |
| --- | --- |
| **Database** | Oracle |
| **Schema/Link** | `[unqualified]`** |
| **Purpose** | Cancellation history for a policy. The most recent non-reinstated, non-rescinded row supplies the pending future cancellation date. |
| **Access pattern** | Direct SQL |
| **CRUD operations** | Read |
| **Key columns used** | POLICY_NUM, CANCELLATION_SEQ_NUM, CANCEL_DATE, REINSTATE_DATE, RESCIND_DATE |
| **Sequence** | N/A |
| **Related tables** | None — the table is queried standalone by policy number with a correlated maximum-sequence subquery. |
| **Business objects** | `clsPolicyData` |

### Operations referencing this table

- [Lazy-load policy detail](operations/lazy-load-policy-detail.md)

### SQL referencing this table

- [SQL-015: Future cancellation date lookup](sql/SQL-015-future-cancel-date.md)

---

## POLICY_RELATIONSHIP

| Field | Value |
| --- | --- |
| **Database** | Oracle |
| **Schema/Link** | `[unqualified]`** |
| **Purpose** | Manually maintained parent and member affiliations between policies, including the affiliation type code. |
| **Access pattern** | Direct SQL |
| **CRUD operations** | Read |
| **Key columns used** | PARENT_POLICY_NUM, MBR_POLICY_NUM, AFFIL_TYP_CD |
| **Sequence** | N/A |
| **Related tables** | `POLICY` |
| **Business objects** | `PolicyAssociationList` |

### Operations referencing this table

- [Resolve policy associations](operations/resolve-policy-associations.md)

### Business rules referencing this table

- [BR-015: Unrecognized relationship codes are classified as not specified](business-rules.md#br-015-unrecognized-relationship-codes-are-classified-as-not-specified)
- [BR-016: Manually maintained affiliations are distinguished by an M-prefixed code](business-rules.md#br-016-manually-maintained-affiliations-are-distinguished-by-an-m-prefixed-code)

### SQL referencing this table

- [SQL-026: Policy association union query](sql/SQL-026-policy-association-union.md)

---

## POLICY

| Field | Value |
| --- | --- |
| **Database** | Oracle |
| **Schema/Link** | `[unqualified]`** |
| **Purpose** | Policy master. This library reads it directly only for the system-derived policy relationship branch of the association query; every other policy read passes through a stored procedure. |
| **Access pattern** | Direct SQL and stored procedure |
| **CRUD operations** | Read |
| **Key columns used** | POLICY_NUM, POLICY_RELATIONSHIP_POLICY_NUM, POLICY_RELATIONSHIP_CODE, RATE_ACCOUNT |
| **Sequence** | N/A |
| **Related tables** | `POLICY_RELATIONSHIP`, `POLICY` (self-referencing), `COMBO_POLICY_PERIOD`, `ER_COMBINATION_POLICY` |
| **Business objects** | `PolicyAssociationList` |

### Operations referencing this table

- [Resolve policy associations](operations/resolve-policy-associations.md)

### Business rules referencing this table

- [BR-015: Unrecognized relationship codes are classified as not specified](business-rules.md#br-015-unrecognized-relationship-codes-are-classified-as-not-specified)

### SQL referencing this table

- [SQL-026: Policy association union query](sql/SQL-026-policy-association-union.md)

---

## COMBO_POLICY_PERIOD

| Field | Value |
| --- | --- |
| **Database** | Oracle |
| **Schema/Link** | `[unqualified]`** |
| **Purpose** | Membership of a policy period in a premium-discount combination, including the active-member and minimum-premium-member flags. |
| **Access pattern** | Direct SQL |
| **CRUD operations** | Read |
| **Key columns used** | POLICY_NUM, POLICY_PERIOD_EFF_DATE, COMBO_PERIOD_SEQ_NUM, ACTIVE_MEMBER_FLAG, MIN_PREMIUM_MEMBER_FLAG |
| **Sequence** | N/A |
| **Related tables** | `POLICY`, `POLICY_PERIOD`, `COMBO_POLICY_PERIOD` (self, through `COMBO_PERIOD_SEQ_NUM`) |
| **Business objects** | `PolicyAssociationList` |

### Operations referencing this table

- [Resolve policy associations](operations/resolve-policy-associations.md)

### Business rules referencing this table

- [BR-014: Association date defaults differ per association family and detail-load failures are non-fatal](business-rules.md#br-014-association-date-defaults-differ-per-association-family-and-detail-load-failures-are-non-fatal)

### SQL referencing this table

- [SQL-026: Policy association union query](sql/SQL-026-policy-association-union.md)

---

## POLICY_PERIOD

| Field | Value |
| --- | --- |
| **Database** | Oracle |
| **Schema/Link** | `[unqualified]`** |
| **Purpose** | Policy period master. Supplies the date window used to scope discount-combination membership and the latest effective date used as a default as-of date. |
| **Access pattern** | Direct SQL |
| **CRUD operations** | Read |
| **Key columns used** | POLICY_NUM, POLICY_PERIOD_EFF_DATE, POLICY_PERIOD_EXP_DATE |
| **Sequence** | N/A |
| **Related tables** | `COMBO_POLICY_PERIOD`, `POLICY` |
| **Business objects** | `PolicyAssociationList` |

### Operations referencing this table

- [Resolve policy associations](operations/resolve-policy-associations.md)

### Business rules referencing this table

- [BR-014: Association date defaults differ per association family and detail-load failures are non-fatal](business-rules.md#br-014-association-date-defaults-differ-per-association-family-and-detail-load-failures-are-non-fatal)

### SQL referencing this table

- [SQL-026: Policy association union query](sql/SQL-026-policy-association-union.md)
- [SQL-027: Latest policy-period effective date lookup](sql/SQL-027-max-policy-period-eff-date.md)

---

## ER_COMBINATION_POLICY

| Field | Value |
| --- | --- |
| **Database** | Oracle |
| **Schema/Link** | `[unqualified]`** |
| **Purpose** | Membership of a policy in an experience-rating combination, with the effective and expiration dates that bound the membership. |
| **Access pattern** | Direct SQL |
| **CRUD operations** | Read |
| **Key columns used** | POLICY_NUM, ER_COMBINATION_SEQ_NUM, EFF_DATE, EXP_DATE |
| **Sequence** | N/A |
| **Related tables** | `POLICY`, `ER_COMBINATION_POLICY` (self, through `ER_COMBINATION_SEQ_NUM`) |
| **Business objects** | `PolicyAssociationList` |

### Operations referencing this table

- [Resolve policy associations](operations/resolve-policy-associations.md)

### Business rules referencing this table

- [BR-014: Association date defaults differ per association family and detail-load failures are non-fatal](business-rules.md#br-014-association-date-defaults-differ-per-association-family-and-detail-load-failures-are-non-fatal)

### SQL referencing this table

- [SQL-026: Policy association union query](sql/SQL-026-policy-association-union.md)

---

## POLICY_PERIOD_ALL

| Field | Value |
| --- | --- |
| **Database** | Oracle |
| **Schema/Link** | `[unqualified]`** |
| **Purpose** | Superset of policy periods, including non-WCIS periods. Supplies the effective and expiration dates shown against each policy-header association. |
| **Access pattern** | Direct SQL |
| **CRUD operations** | Read |
| **Key columns used** | POLICY_NUM, POLICY_PERIOD_EFF_DATE, POLICY_PERIOD_EXP_DATE, CANCEL_DATE |
| **Sequence** | N/A |
| **Related tables** | `ENDORSEMENT`, `POLICY_PERIOD_NON_WCIS` |
| **Business objects** | `clsAssociationTypeCode` |

### Operations referencing this table

- [Resolve policy-header associations](operations/resolve-policy-header-associations.md)

### Business rules referencing this table

- [BR-014: Association date defaults differ per association family and detail-load failures are non-fatal](business-rules.md#br-014-association-date-defaults-differ-per-association-family-and-detail-load-failures-are-non-fatal)

### SQL referencing this table

- [SQL-028: Association period date range retrieval](sql/SQL-028-association-period-dates.md)

---

## ENDORSEMENT

| Field | Value |
| --- | --- |
| **Database** | Oracle |
| **Schema/Link** | `[unqualified]`** |
| **Purpose** | Endorsement history. A printed `P401` endorsement identifies a policy period as issued. |
| **Access pattern** | Direct SQL |
| **CRUD operations** | Read |
| **Key columns used** | POLICY_NUM, POLICY_PERIOD_EFF_DATE, ENDORSE_CODE, PRINTED_DATE |
| **Sequence** | N/A |
| **Related tables** | `POLICY_PERIOD_ALL` |
| **Business objects** | `clsAssociationTypeCode` |

### Operations referencing this table

- [Resolve policy-header associations](operations/resolve-policy-header-associations.md)

### SQL referencing this table

- [SQL-028: Association period date range retrieval](sql/SQL-028-association-period-dates.md)

---

## POLICY_PERIOD_NON_WCIS

| Field | Value |
| --- | --- |
| **Database** | Oracle |
| **Schema/Link** | `[unqualified]`** |
| **Purpose** | Policy periods originating outside WCIS. A status code of `E` identifies such a period as issued. |
| **Access pattern** | Direct SQL |
| **CRUD operations** | Read |
| **Key columns used** | POLICY_NUM, POLICY_PERIOD_EFF_DATE, POLICY_PERIOD_STATUS_CODE |
| **Sequence** | N/A |
| **Related tables** | `POLICY_PERIOD_ALL` |
| **Business objects** | `clsAssociationTypeCode` |

### Operations referencing this table

- [Resolve policy-header associations](operations/resolve-policy-header-associations.md)

### SQL referencing this table

- [SQL-028: Association period date range retrieval](sql/SQL-028-association-period-dates.md)

---

## Table relationship diagram

The following diagram shows the relationships that this library's inline SQL relies on.

```mermaid
erDiagram
    POLICY ||--o{ POLICY_RELATIONSHIP : "parent or member policy"
    POLICY ||--o{ POLICY : "policy relationship policy"
    POLICY ||--o{ COMBO_POLICY_PERIOD : "discount combination member"
    POLICY ||--o{ ER_COMBINATION_POLICY : "experience combination member"
    POLICY_PERIOD ||--|| COMBO_POLICY_PERIOD : "same policy and effective date"
    POLICY ||--o{ POLICY_PERIOD : "policy periods"
    POLICY ||--o{ TRADING_AS : "registered names"
    POLICY_PERIOD_ALL ||--o{ ENDORSEMENT : "issued period evidence"
    POLICY_PERIOD_ALL ||--o{ POLICY_PERIOD_NON_WCIS : "issued period evidence"
    BUSINESS_AFFILIATE }o--|| AFFILIATE : "affiliate ssn"
    POLICY {
        NUMBER POLICY_NUM PK
        NUMBER POLICY_RELATIONSHIP_POLICY_NUM FK
        VARCHAR2 POLICY_RELATIONSHIP_CODE
        NUMBER RATE_ACCOUNT
    }
    POLICY_RELATIONSHIP {
        NUMBER PARENT_POLICY_NUM FK
        NUMBER MBR_POLICY_NUM FK
        VARCHAR2 AFFIL_TYP_CD
    }
    POLICY_PERIOD {
        NUMBER POLICY_NUM PK
        DATE POLICY_PERIOD_EFF_DATE PK
        DATE POLICY_PERIOD_EXP_DATE
    }
    COMBO_POLICY_PERIOD {
        NUMBER POLICY_NUM PK
        DATE POLICY_PERIOD_EFF_DATE PK
        NUMBER COMBO_PERIOD_SEQ_NUM
        VARCHAR2 ACTIVE_MEMBER_FLAG
        VARCHAR2 MIN_PREMIUM_MEMBER_FLAG
    }
    ER_COMBINATION_POLICY {
        NUMBER POLICY_NUM PK
        NUMBER ER_COMBINATION_SEQ_NUM
        DATE EFF_DATE
        DATE EXP_DATE
    }
    POLICY_PERIOD_ALL {
        NUMBER POLICY_NUM PK
        DATE POLICY_PERIOD_EFF_DATE PK
        DATE POLICY_PERIOD_EXP_DATE
        DATE CANCEL_DATE
    }
    ENDORSEMENT {
        NUMBER POLICY_NUM FK
        DATE POLICY_PERIOD_EFF_DATE FK
        VARCHAR2 ENDORSE_CODE
        DATE PRINTED_DATE
    }
    POLICY_PERIOD_NON_WCIS {
        NUMBER POLICY_NUM FK
        DATE POLICY_PERIOD_EFF_DATE FK
        VARCHAR2 POLICY_PERIOD_STATUS_CODE
    }
    TRADING_AS {
        NUMBER TRADING_SEQ_NUM PK
        NUMBER POLICY_NUM FK
        VARCHAR2 TRADING_AS_NAME
        DATE TRADING_AS_CANCEL_DATE
    }
    BUSINESS_AFFILIATE {
        NUMBER POLICY_NUM FK
        VARCHAR2 AFFILIATE_SSN FK
        VARCHAR2 OFFICER_OF_NOTICE_FLAG
        DATE AFFILIATE_CANCEL_DATE
    }
    AFFILIATE {
        VARCHAR2 AFFILIATE_SSN PK
        VARCHAR2 AFFILIATE_FIRST_NAME
        VARCHAR2 AFFILIATE_INITIAL
        VARCHAR2 AFFILIATE_LAST_NAME
    }
```

`ASSOCIATION_TYPE_CODE`, `NON_EMPR_ACCT`, `PA_AUDIT`, and `CANCELLATION` are omitted from the diagram because this library queries each of them standalone, without a join.

> **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.

## Related documentation

- [Index](index.md)
- [Overview](overview.md)
- [Architecture](architecture.md)
- [Dependencies](dependencies.md)
- [Operations and processes](operations-processes.md)
- [Business rules](business-rules.md)
- [Security and authorization](security-authorization.md)
- [SQL catalog](sql/index.md)
- [Procedures](procedures/index.md)
- [API reference](api/index.md)
- [Configuration](configuration.md)

## Sources

- `Business/SAIF.Business.View.Policy/Associations/clsAssociationTypeCode.vb`
- `Business/SAIF.Business.View.Policy/Associations/clsAssociationTypeCodeCollection.vb`
- `Business/SAIF.Business.View.Policy/clsNonEmployerAccount.vb`
- `Business/SAIF.Business.View.Policy/clsTradingAs.vb`
- `Business/SAIF.Business.View.Policy/clsTradingAsCollection.vb`
- `Business/SAIF.Business.View.Policy/clsPolicyAddress.vb`
- `Business/SAIF.Business.View.Policy/clsPolicyData.vb`
- `Business/SAIF.Business.View.Policy/clsPolicySecurity.vb`
- `Business/SAIF.Business.View.Policy/PolicyAssociations.vb`
- `Business/SAIF.Business.View.Policy/app.config`
- `Business/SAIF.Business.View.Policy/Web.config`
