---
title: SAIF.Business.Policy.Agency overview
summary: High-level purpose, scope, and responsibilities for SAIF.Business.Policy.Agency.
status: draft
owner: Technical Writer
last_reviewed: 2026-07-31
library: SAIF.Business.Policy.Agency
reference_type: package
---

# SAIF.Business.Policy.Agency overview

> **Documentation context:** Packaged Component (NuGet)

`SAIF.Business.Policy.Agency` is the policy-distribution business-object library for agencies, their contracts, their office locations, and the producers attached to them. It packages read-only BOF business objects over the `AGENCY`, `AGENCY_CONTRACT`, `AGENT`, and `POLICY` tables while relying on shared framework data-portal services for execution, validation, and object lifecycle management.

## Purpose
- Provide read-only business objects for retrieving agencies, agency contracts, agency offices, and producers by key, agency scope, FEID, or contract-type criteria.
- Expose lazy and bulk-load navigation patterns so higher-level callers can traverse agency-to-contract and agency-to-producer relationships.
- Supply small helper surfaces such as contract-type classification, office eligibility checks, producer-commission checks, and underwriting-facing agent identity data.

## Responsibilities
- Retrieve one agency or a filtered set of agencies from `AGENCY`.
- Retrieve agency contracts from `AGENCY_CONTRACT` and translate persisted contract and commission codes into domain enums.
- Retrieve agency-office and producer views from `AGENT`, including the policy agent-of-record lookup against `POLICY`.
- Aggregate producers and contracts across an agency collection without issuing one query per agency.

## Key components
- `clsAgency` and `clsAgencyCollection`: aggregate root plus collection helpers for filtered retrieval and bulk child loading.
- `clsAgencyContract` and `clsAgencyContractCollection`: appointment and commission arrangement model with enum conversion helpers.
- `clsAgencyOffice` and `clsAgencyOfficeCollection`: office/location view over `AGENT`.
- `clsProducer` and `clsProducerCollection`: producer view over `AGENT`, including the policy agent-of-record lookup.
- `clsAgentUnderwritingData`: lightweight carrier for agency and producer identity plus mailing address data.
- `Institutions`: generated typed `DataSet` for bank and routing reference data.

## Related documentation
- [Index](index.md)
- [Architecture](architecture.md)
- [Dependencies](dependencies.md)
- [Operations and processes](operations-processes.md)
- [Business rules](business-rules.md)
- [Database tables](database-tables.md)
- [SQL catalog](sql/index.md)
- [Configuration](configuration.md)
- [API reference](api/index.md)

## Sources
- `Business\SAIF.Business.Policy.Agency\SAIF.BOF.Business.Policy.Agency.nuspec`
- `Business\SAIF.Business.Policy.Agency\clsAgency.vb`
- `Business\SAIF.Business.Policy.Agency\clsAgencyCollection.vb`
- `Business\SAIF.Business.Policy.Agency\clsAgencyContract.vb`
- `Business\SAIF.Business.Policy.Agency\clsAgencyOffice.vb`
- `Business\SAIF.Business.Policy.Agency\clsProducer.vb`
- `Business\SAIF.Business.Policy.Agency\clsAgentUnderwritingData.vb`
- `Business\SAIF.Business.Policy.Agency\Institutions.Designer.vb`
