---
title: SAIF.Business.Policy.Group database tables
summary: Database tables used by SAIF.Business.Policy.Group.
status: draft
owner: Technical Writer
last_reviewed: 2026-07-31
library: SAIF.Business.Policy.Group
reference_type: package
---

# SAIF.Business.Policy.Group database tables

This page catalogs the Oracle tables touched by `SAIF.Business.Policy.Group`.

## Table catalog

| Table | Database | Schema/Link | CRUD | Purpose | Primary business object |
| --- | --- | --- | --- | --- | --- |
| [GROUP_ASSOCIATION](#group_association) | Oracle | `[unqualified]**` | C, R, U, D | Stores the master group association record and its identifying, classification, plan, address, and endorsement fields. | ``clsGroupAssociation`, `clsGroupAssociationCollection`` |
| [GROUP_CHAPTER](#group_chapter) | Oracle | `[unqualified]**` | R | Stores effective-dated chapters for a group; compiled code only reads this table. | ``clsChapter`, `clsChapterCollection`` |
| [GROUP_ASSOCIATION_CONTACT](#group_association_contact) | Oracle | `[unqualified]**` | R | Stores the group-level or chapter-level contact details returned by `clsContact`. | ``clsContact`` |
| [GROUP_ASSOCIATION_DETAIL](#group_association_detail) | Oracle | `[unqualified]**` | C, R, U, D | Stores the effective-dated group discount rows consumed by rating. | ``clsGroupAssociationDiscount`, `clsGroupAssociationDiscountCollection`` |
| [GROUP_UNDERWRITING_CRITERIA](#group_underwriting_criteria) | Oracle | `[unqualified]**` | C, R, U, D | Stores underwriting threshold and factor inputs for group eligibility evaluation. | ``clsGroupUnderwritingCriteria`` |
| [GROUP_ELIGIBILITY_CTL](#group_eligibility_ctl) | Oracle | `[unqualified]**` | C, R, U, D | Stores the effective-dated include/exclude control row that classifies significant classes. | ``clsClassSignificance`` |
| [GROUP_ELIGIBILITY_CLASS](#group_eligibility_class) | Oracle | `[unqualified]**` | C, R, U, D | Stores the significant manual classes tied to a group and effective date. | ``clsSignificantClass`, `clsSignificantClassCollection`` |
| [POLICY_PERIOD_GROUP_ASSOC](#policy_period_group_assoc) | Oracle | `[unqualified]**` | C, R, U, D | Stores the effective-dated link between a policy period and group membership details. | ``clsPolicyPeriodGroupAssociation`` |
| [DUAL](#dual) | Oracle | `[unqualified]**` | R | Oracle pseudo-table used by placeholder create-path sequence reads. | `all eight classes exposing a `CreateSQL`` |

## GROUP_ASSOCIATION

| Field | Value |
| --- | --- |
| **Database** | Oracle |
| **Schema/Link** | `[unqualified]**` |
| **Purpose** | Stores the master group association record and its identifying, classification, plan, address, and endorsement fields. |
| **Access pattern** | direct SQL through BOF criteria |
| **CRUD operations** | Create, Read, Update, Delete |
| **Key columns used** | CODE, EFFECTIVE_DATE, EXPIRATION_DATE, GROUP_TYPE_CODE, GROUP_PLAN_CODE, CREATE_DATE, CREATE_USER, UPDATE_DATE, UPDATE_USER |
| **Sequence** | `CODE_NEXTVAL` (placeholder — see anomaly A-1) |
| **Related tables** | GROUP_ASSOCIATION_CONTACT, GROUP_ASSOCIATION_DETAIL, GROUP_CHAPTER, GROUP_ELIGIBILITY_CLASS, GROUP_ELIGIBILITY_CTL, GROUP_UNDERWRITING_CRITERIA, POLICY_PERIOD_GROUP_ASSOC |
| **Business objects** | ``clsGroupAssociation`, `clsGroupAssociationCollection`` |

### Operations referencing this table
- [Retrieve a group association](operations/retrieve-group-association.md)
- [Retrieve all group associations](operations/retrieve-all-group-associations.md)
- [Persist group associations (insert / update / delete)](operations/persist-group-associations.md)

### Business rules referencing this table
- [BR-001: Group association code is required](business-rules.md#br-001-group-association-code-is-required)
- [BR-002: Group expiration is date-effective](business-rules.md#br-002-group-expiration-is-date-effective)
- [BR-003: Group type derives from stored code](business-rules.md#br-003-group-type-derives-from-stored-code)
- [BR-004: SalesPlan excludes listed plan codes](business-rules.md#br-004-salesplan-excludes-listed-plan-codes)
- [BR-009: Insert must affect exactly one row](business-rules.md#br-009-insert-must-affect-exactly-one-row)
- [BR-010: Update must affect exactly one row](business-rules.md#br-010-update-must-affect-exactly-one-row)
- [BR-011: Delete must affect exactly one row](business-rules.md#br-011-delete-must-affect-exactly-one-row)
- [BR-012: Collection persistence reports generic failure messages](business-rules.md#br-012-collection-persistence-reports-generic-failure-messages)
- [BR-021: Writes stamp update date and user](business-rules.md#br-021-writes-stamp-update-date-and-user)

### SQL referencing this table
- [SQL-010: Insert group association row](sql/SQL-010-saif-business-policy-group.md)
- [SQL-011: Insert group association row from collection path](sql/SQL-011-saif-business-policy-group.md)
- [SQL-021: Retrieve group association by code](sql/SQL-021-saif-business-policy-group.md)
- [SQL-022: Retrieve all group associations](sql/SQL-022-saif-business-policy-group.md)
- [SQL-030: Update group association row (truncated)](sql/SQL-030-saif-business-policy-group.md)
- [SQL-031: Update group association row from collection path (truncated)](sql/SQL-031-saif-business-policy-group.md)
- [SQL-038: Delete group association row (truncated)](sql/SQL-038-saif-business-policy-group.md)
- [SQL-039: Delete group association row from collection path (truncated)](sql/SQL-039-saif-business-policy-group.md)

---

## GROUP_CHAPTER

| Field | Value |
| --- | --- |
| **Database** | Oracle |
| **Schema/Link** | `[unqualified]**` |
| **Purpose** | Stores effective-dated chapters for a group; compiled code only reads this table. |
| **Access pattern** | direct SQL through BOF criteria |
| **CRUD operations** | Read |
| **Key columns used** | GROUP_ASSOCIATION_CODE, CODE, EFFECTIVE_DATE, EXPIRATION_DATE |
| **Sequence** | N/A |
| **Related tables** | GROUP_ASSOCIATION, GROUP_ASSOCIATION_CONTACT, POLICY_PERIOD_GROUP_ASSOC |
| **Business objects** | ``clsChapter`, `clsChapterCollection`` |

### Operations referencing this table
- [Load a group's chapters](operations/load-group-chapters.md)
- [Create and persist a chapter](operations/create-and-retrieve-chapter.md)

### Business rules referencing this table
- [BR-005: Group exposes a placeholder chapter when none exist](business-rules.md#br-005-group-exposes-a-placeholder-chapter-when-none-exist)
- [BR-006: Chapter activity is bounded by effective dates](business-rules.md#br-006-chapter-activity-is-bounded-by-effective-dates)
- [BR-007: New chapter seeds key values and starts clean](business-rules.md#br-007-new-chapter-seeds-key-values-and-starts-clean)
- [BR-008: Chapter retrieval is as-of-date effective](business-rules.md#br-008-chapter-retrieval-is-as-of-date-effective)
- [BR-023: Chapters and contacts load lazily](business-rules.md#br-023-chapters-and-contacts-load-lazily)

### SQL referencing this table
- [SQL-017: Retrieve chapter as of a date](sql/SQL-017-saif-business-policy-group.md)
- [SQL-018: Retrieve chapters for a group](sql/SQL-018-saif-business-policy-group.md)

---

## GROUP_ASSOCIATION_CONTACT

| Field | Value |
| --- | --- |
| **Database** | Oracle |
| **Schema/Link** | `[unqualified]**` |
| **Purpose** | Stores the group-level or chapter-level contact details returned by `clsContact`. |
| **Access pattern** | direct SQL through BOF criteria |
| **CRUD operations** | Read |
| **Key columns used** | GROUP_ASSOCIATION_CODE, GROUP_CHAPTER_CODE, CONTACT_NAME, TITLE_DESCRIPTION, PHONE, FAX, EMAIL_ADDRESS |
| **Sequence** | N/A |
| **Related tables** | GROUP_ASSOCIATION, GROUP_CHAPTER |
| **Business objects** | ``clsContact`` |

### Operations referencing this table
- [Retrieve a group contact](operations/retrieve-group-contact.md)

### Business rules referencing this table
- [BR-023: Chapters and contacts load lazily](business-rules.md#br-023-chapters-and-contacts-load-lazily)

### SQL referencing this table
- [SQL-020: Retrieve group or chapter contact](sql/SQL-020-saif-business-policy-group.md)

---

## GROUP_ASSOCIATION_DETAIL

| Field | Value |
| --- | --- |
| **Database** | Oracle |
| **Schema/Link** | `[unqualified]**` |
| **Purpose** | Stores the effective-dated group discount rows consumed by rating. |
| **Access pattern** | direct SQL through BOF criteria |
| **CRUD operations** | Create, Read, Update, Delete |
| **Key columns used** | GROUP_ASSOCIATION_CODE, EFFECTIVE_DATE, EXPIRATION_DATE, PCNT_DISCOUNT, PENDING_FLAG, CREATE_DATE, CREATE_USER, UPDATE_DATE, UPDATE_USER |
| **Sequence** | `GROUP_ASSOCIATION_CODE_NEXTVAL` (placeholder — A-1) |
| **Related tables** | GROUP_ASSOCIATION |
| **Business objects** | ``clsGroupAssociationDiscount`, `clsGroupAssociationDiscountCollection`` |

### Operations referencing this table
- [Supply the group discount factor to rating](operations/supply-group-discount-factor.md)

### Business rules referencing this table
- [BR-013: Group discount code is required](business-rules.md#br-013-group-discount-code-is-required)
- [BR-014: Discount factor returns non-applicable when invalid](business-rules.md#br-014-discount-factor-returns-non-applicable-when-invalid)
- [BR-015: Pending flag marks a tentative discount](business-rules.md#br-015-pending-flag-marks-a-tentative-discount)
- [BR-021: Writes stamp update date and user](business-rules.md#br-021-writes-stamp-update-date-and-user)

### SQL referencing this table
- [SQL-012: Insert group association discount row](sql/SQL-012-saif-business-policy-group.md)
- [SQL-023: Retrieve group discount as of a date](sql/SQL-023-saif-business-policy-group.md)
- [SQL-024: Retrieve all group discounts](sql/SQL-024-saif-business-policy-group.md)
- [SQL-032: Update group association discount row](sql/SQL-032-saif-business-policy-group.md)
- [SQL-040: Delete group association discount row](sql/SQL-040-saif-business-policy-group.md)

---

## GROUP_UNDERWRITING_CRITERIA

| Field | Value |
| --- | --- |
| **Database** | Oracle |
| **Schema/Link** | `[unqualified]**` |
| **Purpose** | Stores underwriting threshold and factor inputs for group eligibility evaluation. |
| **Access pattern** | direct SQL through BOF criteria |
| **CRUD operations** | Create, Read, Update, Delete |
| **Key columns used** | GROUP_ASSOCIATION_CODE, EFF_DATE, EXP_DATE, PREMIUM_THRESHOLD_AMOUNT, EXPERIENCE_RATING_FACTOR, EXPERIENCE_RATING_EARNED_FLAG, LOSS_RATIO_FACTOR, NEW_BUSINESS_FREQ_FACTOR, RENEWAL_FREQ_FACTOR, SWING_LIMITED_FLAG, UPDATE_DATE, UPDATE_USER |
| **Sequence** | `GROUP_ASSOCIATION_CODE_NEXTVAL` (placeholder — A-1) |
| **Related tables** | GROUP_ASSOCIATION |
| **Business objects** | ``clsGroupUnderwritingCriteria`` |

### Operations referencing this table
- [Evaluate group underwriting eligibility inputs](operations/evaluate-group-underwriting-eligibility.md)

### Business rules referencing this table
- [BR-016: Underwriting flags derive from stored Y/N values](business-rules.md#br-016-underwriting-flags-derive-from-stored-yn-values)
- [BR-017: Underwriting criteria requires a group code](business-rules.md#br-017-underwriting-criteria-requires-a-group-code)
- [BR-018: Significant class is period-effective](business-rules.md#br-018-significant-class-is-period-effective)
- [BR-019: Include/exclude flag drives significance](business-rules.md#br-019-includeexclude-flag-drives-significance)
- [BR-020: Significant-class filters follow significance](business-rules.md#br-020-significant-class-filters-follow-significance)
- [BR-021: Writes stamp update date and user](business-rules.md#br-021-writes-stamp-update-date-and-user)

### SQL referencing this table
- [SQL-013: Insert group underwriting criteria row](sql/SQL-013-saif-business-policy-group.md)
- [SQL-025: Retrieve underwriting criteria as of a date](sql/SQL-025-saif-business-policy-group.md)
- [SQL-033: Update group underwriting criteria row (truncated)](sql/SQL-033-saif-business-policy-group.md)
- [SQL-041: Delete group underwriting criteria row (truncated)](sql/SQL-041-saif-business-policy-group.md)

---

## GROUP_ELIGIBILITY_CTL

| Field | Value |
| --- | --- |
| **Database** | Oracle |
| **Schema/Link** | `[unqualified]**` |
| **Purpose** | Stores the effective-dated include/exclude control row that classifies significant classes. |
| **Access pattern** | direct SQL through BOF criteria |
| **CRUD operations** | Create, Read, Update, Delete |
| **Key columns used** | GROUP_ASSOCIATION_CODE, EFFECTIVE_DATE, EXPIRATION_DATE, INCLUDE_EXCLUDE_FLAG, CREATE_DATE, CREATE_USER, UPDATE_DATE, UPDATE_USER |
| **Sequence** | `GROUP_ASSOCIATION_CODE_NEXTVAL` (placeholder — A-1) |
| **Related tables** | GROUP_ASSOCIATION, GROUP_ELIGIBILITY_CLASS |
| **Business objects** | ``clsClassSignificance`` |

### Operations referencing this table
- [Maintain a group's significant classes](operations/maintain-significant-classes.md)

### Business rules referencing this table
- [BR-009: Insert must affect exactly one row](business-rules.md#br-009-insert-must-affect-exactly-one-row)
- [BR-010: Update must affect exactly one row](business-rules.md#br-010-update-must-affect-exactly-one-row)
- [BR-011: Delete must affect exactly one row](business-rules.md#br-011-delete-must-affect-exactly-one-row)
- [BR-012: Collection persistence reports generic failure messages](business-rules.md#br-012-collection-persistence-reports-generic-failure-messages)
- [BR-018: Significant class is period-effective](business-rules.md#br-018-significant-class-is-period-effective)
- [BR-019: Include/exclude flag drives significance](business-rules.md#br-019-includeexclude-flag-drives-significance)
- [BR-020: Significant-class filters follow significance](business-rules.md#br-020-significant-class-filters-follow-significance)
- [BR-021: Writes stamp update date and user](business-rules.md#br-021-writes-stamp-update-date-and-user)

### SQL referencing this table
- [SQL-009: Insert group eligibility control row](sql/SQL-009-saif-business-policy-group.md)
- [SQL-019: Retrieve class-significance control row](sql/SQL-019-saif-business-policy-group.md)
- [SQL-029: Update group eligibility control row](sql/SQL-029-saif-business-policy-group.md)
- [SQL-037: Delete group eligibility control row](sql/SQL-037-saif-business-policy-group.md)

---

## GROUP_ELIGIBILITY_CLASS

| Field | Value |
| --- | --- |
| **Database** | Oracle |
| **Schema/Link** | `[unqualified]**` |
| **Purpose** | Stores the significant manual classes tied to a group and effective date. |
| **Access pattern** | direct SQL through BOF criteria |
| **CRUD operations** | Create, Read, Update, Delete |
| **Key columns used** | GROUP_ASSOCIATION_CODE, EFFECTIVE_DATE, MANUAL_CLASS_NUMBER, CREATE_DATE, CREATE_USER, UPDATE_DATE, UPDATE_USER |
| **Sequence** | `GROUP_ASSOCIATION_CODE_NEXTVAL` (placeholder — A-1) |
| **Related tables** | GROUP_ASSOCIATION, GROUP_ELIGIBILITY_CTL |
| **Business objects** | ``clsSignificantClass`, `clsSignificantClassCollection`` |

### Operations referencing this table
- [Maintain a group's significant classes](operations/maintain-significant-classes.md)

### Business rules referencing this table
- [BR-009: Insert must affect exactly one row](business-rules.md#br-009-insert-must-affect-exactly-one-row)
- [BR-010: Update must affect exactly one row](business-rules.md#br-010-update-must-affect-exactly-one-row)
- [BR-011: Delete must affect exactly one row](business-rules.md#br-011-delete-must-affect-exactly-one-row)
- [BR-012: Collection persistence reports generic failure messages](business-rules.md#br-012-collection-persistence-reports-generic-failure-messages)
- [BR-018: Significant class is period-effective](business-rules.md#br-018-significant-class-is-period-effective)
- [BR-019: Include/exclude flag drives significance](business-rules.md#br-019-includeexclude-flag-drives-significance)
- [BR-020: Significant-class filters follow significance](business-rules.md#br-020-significant-class-filters-follow-significance)
- [BR-021: Writes stamp update date and user](business-rules.md#br-021-writes-stamp-update-date-and-user)

### SQL referencing this table
- [SQL-015: Insert significant class row](sql/SQL-015-saif-business-policy-group.md)
- [SQL-016: Insert significant class row from collection path](sql/SQL-016-saif-business-policy-group.md)
- [SQL-027: Retrieve significant class row (truncated)](sql/SQL-027-saif-business-policy-group.md)
- [SQL-028: Retrieve significant classes for a group](sql/SQL-028-saif-business-policy-group.md)
- [SQL-035: Update significant class row (truncated)](sql/SQL-035-saif-business-policy-group.md)
- [SQL-036: Update significant class row from collection path](sql/SQL-036-saif-business-policy-group.md)
- [SQL-043: Delete significant class row (truncated)](sql/SQL-043-saif-business-policy-group.md)
- [SQL-044: Delete significant class row from collection path](sql/SQL-044-saif-business-policy-group.md)

---

## POLICY_PERIOD_GROUP_ASSOC

| Field | Value |
| --- | --- |
| **Database** | Oracle |
| **Schema/Link** | `[unqualified]**` |
| **Purpose** | Stores the effective-dated link between a policy period and group membership details. |
| **Access pattern** | direct SQL through BOF criteria |
| **CRUD operations** | Create, Read, Update, Delete |
| **Key columns used** | POLICY_NUM, POLICY_PERIOD_EFF_DATE, GROUP_ASSOCIATION_CODE, GROUP_MEMBERSHIP_EFF_DATE, GROUP_MEMBERSHIP_EXP_DATE, GROUP_TERMINATION_DATE, CHAPTER_CODE, GROUP_MEMBERSHIP_TYPE_CODE, UPDATE_DATE, UPDATE_USER |
| **Sequence** | `POLICY_NUM_NEXTVAL` (placeholder — A-1) |
| **Related tables** | GROUP_ASSOCIATION, GROUP_CHAPTER |
| **Business objects** | ``clsPolicyPeriodGroupAssociation`` |

### Operations referencing this table
- [Link a policy period to a group](operations/link-policy-period-to-group.md)

### Business rules referencing this table
- [BR-009: Insert must affect exactly one row](business-rules.md#br-009-insert-must-affect-exactly-one-row)
- [BR-010: Update must affect exactly one row](business-rules.md#br-010-update-must-affect-exactly-one-row)
- [BR-011: Delete must affect exactly one row](business-rules.md#br-011-delete-must-affect-exactly-one-row)
- [BR-021: Writes stamp update date and user](business-rules.md#br-021-writes-stamp-update-date-and-user)
- [BR-022: Policy period group membership uses a composite key](business-rules.md#br-022-policy-period-group-membership-uses-a-composite-key)

### SQL referencing this table
- [SQL-014: Insert policy-period group association row](sql/SQL-014-saif-business-policy-group.md)
- [SQL-026: Retrieve policy-period group association](sql/SQL-026-saif-business-policy-group.md)
- [SQL-034: Update policy-period group association row](sql/SQL-034-saif-business-policy-group.md)
- [SQL-042: Delete policy-period group association row](sql/SQL-042-saif-business-policy-group.md)

---

## DUAL

| Field | Value |
| --- | --- |
| **Database** | Oracle |
| **Schema/Link** | `[unqualified]**` |
| **Purpose** | Oracle pseudo-table used by placeholder create-path sequence reads. |
| **Access pattern** | Oracle pseudo-table used by BOF create-path sequence reads |
| **CRUD operations** | Read |
| **Key columns used** | Placeholder token expression only |
| **Sequence** | N/A (pseudo-table used by all sequence reads) |
| **Related tables** | N/A |
| **Business objects** | `all eight classes exposing a `CreateSQL`` |

### Operations referencing this table
- [Persist group associations (insert / update / delete)](operations/persist-group-associations.md)
- [Supply the group discount factor to rating](operations/supply-group-discount-factor.md)
- [Evaluate group underwriting eligibility inputs](operations/evaluate-group-underwriting-eligibility.md)
- [Maintain a group's significant classes](operations/maintain-significant-classes.md)
- [Link a policy period to a group](operations/link-policy-period-to-group.md)

### Business rules referencing this table
- [BR-001: Group association code is required](business-rules.md#br-001-group-association-code-is-required)
- [BR-009: Insert must affect exactly one row](business-rules.md#br-009-insert-must-affect-exactly-one-row)
- [BR-010: Update must affect exactly one row](business-rules.md#br-010-update-must-affect-exactly-one-row)
- [BR-011: Delete must affect exactly one row](business-rules.md#br-011-delete-must-affect-exactly-one-row)
- [BR-012: Collection persistence reports generic failure messages](business-rules.md#br-012-collection-persistence-reports-generic-failure-messages)
- [BR-013: Group discount code is required](business-rules.md#br-013-group-discount-code-is-required)
- [BR-014: Discount factor returns non-applicable when invalid](business-rules.md#br-014-discount-factor-returns-non-applicable-when-invalid)
- [BR-015: Pending flag marks a tentative discount](business-rules.md#br-015-pending-flag-marks-a-tentative-discount)
- [BR-016: Underwriting flags derive from stored Y/N values](business-rules.md#br-016-underwriting-flags-derive-from-stored-yn-values)
- [BR-017: Underwriting criteria requires a group code](business-rules.md#br-017-underwriting-criteria-requires-a-group-code)
- [BR-018: Significant class is period-effective](business-rules.md#br-018-significant-class-is-period-effective)
- [BR-019: Include/exclude flag drives significance](business-rules.md#br-019-includeexclude-flag-drives-significance)
- [BR-020: Significant-class filters follow significance](business-rules.md#br-020-significant-class-filters-follow-significance)
- [BR-021: Writes stamp update date and user](business-rules.md#br-021-writes-stamp-update-date-and-user)
- [BR-022: Policy period group membership uses a composite key](business-rules.md#br-022-policy-period-group-membership-uses-a-composite-key)

### SQL referencing this table
- [SQL-001: Fetch significant-class control sequence token](sql/SQL-001-saif-business-policy-group.md)
- [SQL-002: Fetch group-association sequence token](sql/SQL-002-saif-business-policy-group.md)
- [SQL-003: Fetch group-association collection sequence token](sql/SQL-003-saif-business-policy-group.md)
- [SQL-004: Fetch group-discount sequence token](sql/SQL-004-saif-business-policy-group.md)
- [SQL-005: Fetch underwriting-criteria sequence token](sql/SQL-005-saif-business-policy-group.md)
- [SQL-006: Fetch policy-period group-association sequence token](sql/SQL-006-saif-business-policy-group.md)
- [SQL-007: Fetch significant-class sequence token](sql/SQL-007-saif-business-policy-group.md)
- [SQL-008: Fetch significant-class collection sequence token](sql/SQL-008-saif-business-policy-group.md)

---

## Table relationship diagram

The following diagram shows inferred relationships between the tables used by this library.

```mermaid
erDiagram
    GROUP_ASSOCIATION ||--o{ GROUP_CHAPTER : "`GROUP_ASSOCIATION.CODE` = `GROUP_CHAPTER.GROUP_ASSOCIATION_CODE`"
    GROUP_ASSOCIATION ||--o{ GROUP_ASSOCIATION_CONTACT : "`GROUP_ASSOCIATION.CODE` = `GROUP_ASSOCIATION_CONTACT.GROUP_ASSOCIATION_CODE`"
    GROUP_CHAPTER ||--o{ GROUP_ASSOCIATION_CONTACT : "`GROUP_CHAPTER.GROUP_ASSOCIATION_CODE` = `GROUP_ASSOCIATION_CONTACT.GROUP_ASSOCIATION_CODE` AND `GROUP_CHAPTER.CODE` = `GROUP_ASSOCIATION_CONTACT.GROUP_CHAPTER_CODE`"
    GROUP_ASSOCIATION ||--o{ GROUP_ASSOCIATION_DETAIL : "`GROUP_ASSOCIATION.CODE` = `GROUP_ASSOCIATION_DETAIL.GROUP_ASSOCIATION_CODE`"
    GROUP_ASSOCIATION ||--o{ GROUP_UNDERWRITING_CRITERIA : "`GROUP_ASSOCIATION.CODE` = `GROUP_UNDERWRITING_CRITERIA.GROUP_ASSOCIATION_CODE`"
    GROUP_ASSOCIATION ||--o{ GROUP_ELIGIBILITY_CTL : "`GROUP_ASSOCIATION.CODE` = `GROUP_ELIGIBILITY_CTL.GROUP_ASSOCIATION_CODE`"
    GROUP_ASSOCIATION ||--o{ GROUP_ELIGIBILITY_CLASS : "`GROUP_ASSOCIATION.CODE` = `GROUP_ELIGIBILITY_CLASS.GROUP_ASSOCIATION_CODE`"
    GROUP_ELIGIBILITY_CTL ||--o{ GROUP_ELIGIBILITY_CLASS : "`GROUP_ELIGIBILITY_CTL.GROUP_ASSOCIATION_CODE` = `GROUP_ELIGIBILITY_CLASS.GROUP_ASSOCIATION_CODE` AND `GROUP_ELIGIBILITY_CTL.EFF_DATE` = `GROUP_ELIGIBILITY_CLASS.EFF_DATE`"
    GROUP_ASSOCIATION ||--o{ POLICY_PERIOD_GROUP_ASSOC : "`GROUP_ASSOCIATION.CODE` = `POLICY_PERIOD_GROUP_ASSOC.GROUP_ASSOCIATION_CODE`"
    GROUP_CHAPTER ||--o{ POLICY_PERIOD_GROUP_ASSOC : "`GROUP_CHAPTER.CODE` = `POLICY_PERIOD_GROUP_ASSOC.CHAPTER_CODE` (within the same group)"
```

## 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)
- [SQL catalog](sql/index.md)
- [API reference](api/index.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.Group\clsChapter.vb`
- `Business\SAIF.Business.Policy.Group\clsChapterCollection.vb`
- `Business\SAIF.Business.Policy.Group\clsClassSignificance.vb`
- `Business\SAIF.Business.Policy.Group\clsContact.vb`
- `Business\SAIF.Business.Policy.Group\clsGroupAssociation.vb`
- `Business\SAIF.Business.Policy.Group\clsGroupAssociationCollection.vb`
- `Business\SAIF.Business.Policy.Group\clsGroupAssociationDiscount.vb`
- `Business\SAIF.Business.Policy.Group\clsGroupAssociationDiscountCollection.vb`
- `Business\SAIF.Business.Policy.Group\clsGroupUnderwritingCriteria.vb`
- `Business\SAIF.Business.Policy.Group\clsPolicyPeriodGroupAssociation.vb`
- `Business\SAIF.Business.Policy.Group\clsSignificantClass.vb`
- `Business\SAIF.Business.Policy.Group\clsSignificantClassCollection.vb`
