---
title: SAIF.Business.Policy.Audit.Premium business rules
summary: Enumerated business rules with trigger, enforcement, and outcomes.
status: draft
owner: Technical Writer
last_reviewed: 2026-07-31
library: SAIF.Business.Policy.Audit.Premium
reference_type: package
---

# SAIF.Business.Policy.Audit.Premium business rules

This page captures business rules enforced by the premium-audit library.

## BR-001: Deselection category suppresses audit

| Field | Value |
| --- | --- |
| **Statement** | An audit that satisfies at least one rule in a deselection category is removed from audit consideration. |
| **Trigger** | Selection testing |
| **Enforcement** | ``clsAuditSelectionManager.RunAuditSelectionTests`` |
| **Outcome** | `audit.DeselectFromAudit()`; `CountAuditsDeselected` incremented |
| **Confidence** | Verified |
| **SQL** | [SQL-055](sql/SQL-055-saif-business-policy-audit-premium.md), [SQL-056](sql/SQL-056-saif-business-policy-audit-premium.md), [SQL-057](sql/SQL-057-saif-business-policy-audit-premium.md), [SQL-062](sql/SQL-062-saif-business-policy-audit-premium.md), [SQL-063](sql/SQL-063-saif-business-policy-audit-premium.md) |
| **Source** | `Business\SAIF.Business.Policy.Audit.Premium\clsAuditSelectionManager.vb:233-271` |

---
## BR-002: Disqualifying selection test blocks selection

| Field | Value |
| --- | --- |
| **Statement** | An audit with any disqualifying test result is not selected under that category. |
| **Trigger** | Selection testing |
| **Enforcement** | ``clsAuditSelectionManager.RunAuditSelectionTests`` |
| **Outcome** | Audit skipped for the category |
| **Confidence** | Verified |
| **SQL** | [SQL-057](sql/SQL-057-saif-business-policy-audit-premium.md), [SQL-062](sql/SQL-062-saif-business-policy-audit-premium.md), [SQL-063](sql/SQL-063-saif-business-policy-audit-premium.md), [SQL-064](sql/SQL-064-saif-business-policy-audit-premium.md), [SQL-065](sql/SQL-065-saif-business-policy-audit-premium.md) |
| **Source** | `Business\SAIF.Business.Policy.Audit.Premium\clsAuditSelectionManager.vb:233-271` |

---
## BR-003: Qualifying tests select audit

| Field | Value |
| --- | --- |
| **Statement** | An audit is selected when its qualifying test count reaches the category's configured `SelectionRuleCount`. |
| **Trigger** | Selection testing |
| **Enforcement** | ``clsAuditSelectionManager.RunAuditSelectionTests`` |
| **Outcome** | `SelectForAudit(...)` with category and test results |
| **Confidence** | Verified |
| **SQL** | [SQL-055](sql/SQL-055-saif-business-policy-audit-premium.md), [SQL-056](sql/SQL-056-saif-business-policy-audit-premium.md), [SQL-057](sql/SQL-057-saif-business-policy-audit-premium.md), [SQL-062](sql/SQL-062-saif-business-policy-audit-premium.md), [SQL-063](sql/SQL-063-saif-business-policy-audit-premium.md), [SQL-064](sql/SQL-064-saif-business-policy-audit-premium.md), [SQL-065](sql/SQL-065-saif-business-policy-audit-premium.md) |
| **Source** | `Business\SAIF.Business.Policy.Audit.Premium\clsAuditSelectionManager.vb:233-271` |

---
## BR-010: Assignment sort key ordering

| Field | Value |
| --- | --- |
| **Statement** | Assignment/selection ordering is a composite key: selection-category priority, market-type priority (compliance ranks first for assigned risk, last for voluntary), policy type (leasing → temp agency → other, compliance/business-rule categories only), audit end date, failed GAC test count, then last-audit date + 9s-complement standard premium for cyclicals. |
| **Trigger** | Sorting `AssignmentSortKey` |
| **Enforcement** | ``clsAudit.BuildAssignmentSortKey` (`clsAudit.vb:2907-2975`)` |
| **Outcome** | Ordered collection |
| **Confidence** | Verified |
| **Source** | `Business\SAIF.Business.Policy.Audit.Premium\clsAudit.vb:2908-2976` |

---
## BR-011: Cyclical selection cap enforced

| Field | Value |
| --- | --- |
| **Statement** | No more than `MaximumCyclicalsToSelect` cyclical audits may be selected in a run; the excess is dropped. |
| **Trigger** | `DropCyclicals` |
| **Enforcement** | ``clsAuditSelectionManager.DropCyclicals`` |
| **Outcome** | Excess audits removed; `CyclicalsDropped` incremented |
| **Confidence** | Verified |
| **Source** | `Business\SAIF.Business.Policy.Audit.Premium\clsAuditSelectionManager.vb:93-114` |

---
## BR-012: Assignment requires ZIP code

| Field | Value |
| --- | --- |
| **Statement** | An audit whose audit address has no ZIP code cannot be assigned. |
| **Trigger** | Auditor assignment |
| **Enforcement** | ``clsAuditAssignmentManager.AssignAudit`` |
| **Outcome** | Skipped; `NoZipForPolicyCount` incremented |
| **Confidence** | Verified |
| **SQL** | [SQL-074](sql/SQL-074-saif-business-policy-audit-premium.md), [SQL-075](sql/SQL-075-saif-business-policy-audit-premium.md) |
| **Source** | `Business\SAIF.Business.Policy.Audit.Premium\clsAuditAssignmentManager.vb:236-294` |

---
## BR-013: Assignment requires audit office

| Field | Value |
| --- | --- |
| **Statement** | An audit with neither an audit office code nor a default audit office code cannot be assigned. |
| **Trigger** | Auditor assignment |
| **Enforcement** | ``clsAuditAssignmentManager.AssignAudit`` |
| **Outcome** | Skipped; `NoAuditOfficeCount` incremented |
| **Confidence** | Verified |
| **Source** | `Business\SAIF.Business.Policy.Audit.Premium\clsAuditAssignmentManager.vb:236-294` |

---
## BR-014: Assignment requires matching territory

| Field | Value |
| --- | --- |
| **Statement** | If no auditor territory matches the audit ZIP code, the audit cannot be assigned. |
| **Trigger** | Auditor assignment (no override) |
| **Enforcement** | ``clsAuditAssignmentManager.AssignAudit`` |
| **Outcome** | Skipped; `ZipCodeNotFoundCount` incremented |
| **Confidence** | Verified |
| **SQL** | [SQL-003](sql/SQL-003-saif-business-policy-audit-premium.md), [SQL-008](sql/SQL-008-saif-business-policy-audit-premium.md), [SQL-009](sql/SQL-009-saif-business-policy-audit-premium.md), [SQL-032](sql/SQL-032-saif-business-policy-audit-premium.md), [SQL-033](sql/SQL-033-saif-business-policy-audit-premium.md), [SQL-034](sql/SQL-034-saif-business-policy-audit-premium.md), [SQL-079](sql/SQL-079-saif-business-policy-audit-premium.md), [SQL-080](sql/SQL-080-saif-business-policy-audit-premium.md), [SQL-090](sql/SQL-090-saif-business-policy-audit-premium.md) |
| **Source** | `Business\SAIF.Business.Policy.Audit.Premium\clsAuditAssignmentManager.vb:236-294` |

---
## BR-015: Assignment override default auditor wins

| Field | Value |
| --- | --- |
| **Statement** | An assignment override's default auditor takes precedence over ZIP-code territory lookup. |
| **Trigger** | Auditor assignment |
| **Enforcement** | ``clsAuditAssignmentManager.AssignAudit`` |
| **Outcome** | Override auditor used |
| **Confidence** | Verified |
| **SQL** | [SQL-005](sql/SQL-005-saif-business-policy-audit-premium.md), [SQL-026](sql/SQL-026-saif-business-policy-audit-premium.md), [SQL-077](sql/SQL-077-saif-business-policy-audit-premium.md) |
| **Source** | `Business\SAIF.Business.Policy.Audit.Premium\clsAuditAssignmentManager.vb:236-294` |

---
## BR-016: Off-cycle and wrap audits bypass capacity checks

| Field | Value |
| --- | --- |
| **Statement** | Off-cycle audits and `WRAP`-relationship policies are assigned without capacity or combination checks. |
| **Trigger** | Auditor assignment |
| **Enforcement** | ``clsAuditAssignmentManager.AssignAudit`` |
| **Outcome** | Immediate assignment |
| **Confidence** | Verified |
| **Source** | `Business\SAIF.Business.Policy.Audit.Premium\clsAuditAssignmentManager.vb:236-294` |

---
## BR-017: Combined policies stay with same auditor

| Field | Value |
| --- | --- |
| **Statement** | A combined policy (same non-zero `RateAccount`, non-`WRAP`) is always assigned to the auditor already handling the combination, even beyond the monthly maximum. |
| **Trigger** | Renewal assignment |
| **Enforcement** | ``clsAuditAssignmentManager.AssignAudit`` |
| **Outcome** | Assigned; `MonthlyCombinedCount` incremented |
| **Confidence** | Verified |
| **SQL** | [SQL-035](sql/SQL-035-saif-business-policy-audit-premium.md), [SQL-036](sql/SQL-036-saif-business-policy-audit-premium.md), [SQL-037](sql/SQL-037-saif-business-policy-audit-premium.md) |
| **Source** | `Business\SAIF.Business.Policy.Audit.Premium\clsAuditAssignmentManager.vb:236-294` |

---
## BR-018: Monthly max blocks renewal assignments

| Field | Value |
| --- | --- |
| **Statement** | An auditor at their monthly maximum receives no further renewal assignments. |
| **Trigger** | Renewal assignment |
| **Enforcement** | ``clsAuditAssignmentManager.AssignAudit` (`tempAuditor.IsMonthlyMaxReached`)` |
| **Outcome** | Skipped; `MonthlyMaxReachedCount` incremented |
| **Confidence** | Verified |
| **SQL** | [SQL-003](sql/SQL-003-saif-business-policy-audit-premium.md), [SQL-008](sql/SQL-008-saif-business-policy-audit-premium.md), [SQL-032](sql/SQL-032-saif-business-policy-audit-premium.md), [SQL-033](sql/SQL-033-saif-business-policy-audit-premium.md), [SQL-079](sql/SQL-079-saif-business-policy-audit-premium.md) |
| **Source** | `Business\SAIF.Business.Policy.Audit.Premium\clsAuditAssignmentManager.vb:236-294` |

---
## BR-019: Do-not-assign override creates staff task

| Field | Value |
| --- | --- |
| **Statement** | An audit must not be assigned to the auditor named in the override's `DoNotAssignAuditorID`; a staff task is raised instead. |
| **Trigger** | Auditor assignment |
| **Enforcement** | ``clsAuditAssignmentManager.AssignToAuditor`` |
| **Outcome** | `clsAssignmentManagerTask` (priority `MED`, category `B`, mail ID `{AUDIT}`) |
| **Confidence** | Verified |
| **SQL** | [SQL-005](sql/SQL-005-saif-business-policy-audit-premium.md), [SQL-026](sql/SQL-026-saif-business-policy-audit-premium.md), [SQL-077](sql/SQL-077-saif-business-policy-audit-premium.md) |
| **Source** | `Business\SAIF.Business.Policy.Audit.Premium\clsAuditAssignmentManager.vb:296-309` |

---
## BR-030: Selection override instructions are one-time use

| Field | Value |
| --- | --- |
| **Statement** | Audit instructions carried on a selection override are consumed once and cleared — they must be re-entered every year. |
| **Trigger** | Batch selection |
| **Enforcement** | ``clsAuditSelectionManager.SelectPoliciesForAudit`` |
| **Outcome** | Override `AuditInstructionsText` set to empty and marked dirty |
| **Confidence** | Verified |
| **SQL** | [SQL-015](sql/SQL-015-saif-business-policy-audit-premium.md), [SQL-059](sql/SQL-059-saif-business-policy-audit-premium.md), [SQL-086](sql/SQL-086-saif-business-policy-audit-premium.md) |
| **Source** | `Business\SAIF.Business.Policy.Audit.Premium\clsAuditSelectionManager.vb:160-230` |

---
## BR-031: Selection override reviewer is one-time use

| Field | Value |
| --- | --- |
| **Statement** | A selection override reviewer creates one `clsAuditReviewResult` on the audit and is then cleared — it must be re-entered every year. |
| **Trigger** | Batch selection |
| **Enforcement** | ``clsAuditSelectionManager.SelectPoliciesForAudit`` |
| **Outcome** | Review result added; override reviewer cleared |
| **Confidence** | Verified |
| **SQL** | [SQL-014](sql/SQL-014-saif-business-policy-audit-premium.md), [SQL-015](sql/SQL-015-saif-business-policy-audit-premium.md), [SQL-051](sql/SQL-051-saif-business-policy-audit-premium.md), [SQL-059](sql/SQL-059-saif-business-policy-audit-premium.md), [SQL-085](sql/SQL-085-saif-business-policy-audit-premium.md), [SQL-086](sql/SQL-086-saif-business-policy-audit-premium.md), [SQL-093](sql/SQL-093-saif-business-policy-audit-premium.md) |
| **Source** | `Business\SAIF.Business.Policy.Audit.Premium\clsAuditSelectionManager.vb:160-230` |

---
## BR-032: Rows affected must equal one

| Field | Value |
| --- | --- |
| **Statement** | A persistence operation that affects a row count other than 1 is a contention failure and the save fails. |
| **Trigger** | `AfterInsert` / `AfterUpdate` / `AfterDelete` |
| **Enforcement** | ``clsAudit.vb:2407,2487,2600`` |
| **Outcome** | `AddErrorMessage(...)`; `Save` returns `False` |
| **Confidence** | Verified |
| **SQL** | [SQL-001](sql/SQL-001-saif-business-policy-audit-premium.md), [SQL-004](sql/SQL-004-saif-business-policy-audit-premium.md), [SQL-010](sql/SQL-010-saif-business-policy-audit-premium.md), [SQL-011](sql/SQL-011-saif-business-policy-audit-premium.md), [SQL-012](sql/SQL-012-saif-business-policy-audit-premium.md), [SQL-018](sql/SQL-018-saif-business-policy-audit-premium.md), [SQL-019](sql/SQL-019-saif-business-policy-audit-premium.md), [SQL-020](sql/SQL-020-saif-business-policy-audit-premium.md), [SQL-021](sql/SQL-021-saif-business-policy-audit-premium.md), [SQL-022](sql/SQL-022-saif-business-policy-audit-premium.md), [SQL-023](sql/SQL-023-saif-business-policy-audit-premium.md), [SQL-024](sql/SQL-024-saif-business-policy-audit-premium.md), [SQL-038](sql/SQL-038-saif-business-policy-audit-premium.md), [SQL-039](sql/SQL-039-saif-business-policy-audit-premium.md), [SQL-040](sql/SQL-040-saif-business-policy-audit-premium.md), [SQL-041](sql/SQL-041-saif-business-policy-audit-premium.md), [SQL-042](sql/SQL-042-saif-business-policy-audit-premium.md), [SQL-043](sql/SQL-043-saif-business-policy-audit-premium.md), [SQL-044](sql/SQL-044-saif-business-policy-audit-premium.md), [SQL-076](sql/SQL-076-saif-business-policy-audit-premium.md), [SQL-081](sql/SQL-081-saif-business-policy-audit-premium.md), [SQL-082](sql/SQL-082-saif-business-policy-audit-premium.md), [SQL-083](sql/SQL-083-saif-business-policy-audit-premium.md), [SQL-088](sql/SQL-088-saif-business-policy-audit-premium.md), [SQL-091](sql/SQL-091-saif-business-policy-audit-premium.md) |
| **Source** | `Business\SAIF.Business.Policy.Audit.Premium\clsAudit.vb` |

---
## BR-024: No auditable period cancels audit

| Field | Value |
| --- | --- |
| **Statement** | An audit whose start date falls in no auditable period is cancelled for no coverage. |
| **Trigger** | `SynchronizeAudit` |
| **Enforcement** | ``clsAuditSynchronization.SynchronizeAudit` → `CancelWithNoCoverage`` |
| **Outcome** | `CancelAuditOverride(CANCEL_REASON_NO_COVERAGE)`; task raised when status is Assigned/Scheduled/Submitted/Completed |
| **Confidence** | Verified |
| **SQL** | [SQL-025](sql/SQL-025-saif-business-policy-audit-premium.md) |
| **Source** | `Business\SAIF.Business.Policy.Audit.Premium\clsAuditSynchronization.vb:75-131` |

---
## BR-025: Guidewire audits skip cancelled-billing path

| Field | Value |
| --- | --- |
| **Statement** | Cancelled-billing processing applies only to non-Guidewire audits (`Not IsGwAudit`). |
| **Trigger** | `SynchronizeAudit` |
| **Enforcement** | ``clsAuditSynchronization.SynchronizeAudit`` |
| **Outcome** | `ProcessCancelledBillingAudit` executed or skipped |
| **Confidence** | Verified |
| **Source** | `Business\SAIF.Business.Policy.Audit.Premium\clsAuditSynchronization.vb:75-131` |

---
## BR-026: No coverage cancels audit

| Field | Value |
| --- | --- |
| **Statement** | When every audit policy period is missing or has no coverage, the audit is cancelled for no coverage. |
| **Trigger** | `SynchronizeAudit` |
| **Enforcement** | ``clsAuditSynchronization.ProcessCancelWithNoCoverage`` |
| **Outcome** | Audit cancelled |
| **Confidence** | Verified |
| **SQL** | [SQL-025](sql/SQL-025-saif-business-policy-audit-premium.md) |
| **Source** | `Business\SAIF.Business.Policy.Audit.Premium\clsAuditSynchronization.vb:133-159` |

---
## BR-027: Shortened coverage cancels or resyncs audit

| Field | Value |
| --- | --- |
| **Statement** | Shortened policy-period coverage cancels the audit unless it is already `COMPLETED`, in which case the policy periods are re-synced and a task is raised instead. |
| **Trigger** | `SynchronizeAudit` |
| **Enforcement** | ``clsAuditSynchronization.ProcessShortenAudit`` |
| **Outcome** | Cancel task or `SyncPolicyPeriods` |
| **Confidence** | Verified |
| **SQL** | [SQL-010](sql/SQL-010-saif-business-policy-audit-premium.md), [SQL-011](sql/SQL-011-saif-business-policy-audit-premium.md), [SQL-038](sql/SQL-038-saif-business-policy-audit-premium.md), [SQL-039](sql/SQL-039-saif-business-policy-audit-premium.md), [SQL-040](sql/SQL-040-saif-business-policy-audit-premium.md), [SQL-041](sql/SQL-041-saif-business-policy-audit-premium.md), [SQL-042](sql/SQL-042-saif-business-policy-audit-premium.md), [SQL-043](sql/SQL-043-saif-business-policy-audit-premium.md), [SQL-081](sql/SQL-081-saif-business-policy-audit-premium.md), [SQL-082](sql/SQL-082-saif-business-policy-audit-premium.md), [SQL-091](sql/SQL-091-saif-business-policy-audit-premium.md) |
| **Source** | `Business\SAIF.Business.Policy.Audit.Premium\clsAuditSynchronization.vb:175-210` |

---
## BR-028: Lengthened coverage adjusts audit

| Field | Value |
| --- | --- |
| **Statement** | Lengthened coverage triggers audit-period adjustment.* |
| **Trigger** | `SynchronizeAudit` |
| **Enforcement** | ``clsAuditSynchronization.ProcessLengthenAudit`` |
| **Outcome** | Audit updated |
| **Confidence** | Inferred* |
| **SQL** | [SQL-010](sql/SQL-010-saif-business-policy-audit-premium.md), [SQL-011](sql/SQL-011-saif-business-policy-audit-premium.md), [SQL-038](sql/SQL-038-saif-business-policy-audit-premium.md), [SQL-039](sql/SQL-039-saif-business-policy-audit-premium.md), [SQL-040](sql/SQL-040-saif-business-policy-audit-premium.md), [SQL-041](sql/SQL-041-saif-business-policy-audit-premium.md), [SQL-042](sql/SQL-042-saif-business-policy-audit-premium.md), [SQL-043](sql/SQL-043-saif-business-policy-audit-premium.md), [SQL-081](sql/SQL-081-saif-business-policy-audit-premium.md), [SQL-082](sql/SQL-082-saif-business-policy-audit-premium.md), [SQL-091](sql/SQL-091-saif-business-policy-audit-premium.md) |
| **Source** | `Business\SAIF.Business.Policy.Audit.Premium\clsAuditSynchronization.vb:212-249` |

---
## BR-029: Coverage reinstatement with gap triggers special handling

| Field | Value |
| --- | --- |
| **Statement** | Coverage reinstated with a gap triggers gap-specific handling.* |
| **Trigger** | `SynchronizeAudit` |
| **Enforcement** | ``clsAuditSynchronization.ProcessReinstateWithGap`` |
| **Outcome** | Audit updated |
| **Confidence** | Inferred* |
| **SQL** | [SQL-010](sql/SQL-010-saif-business-policy-audit-premium.md), [SQL-011](sql/SQL-011-saif-business-policy-audit-premium.md), [SQL-038](sql/SQL-038-saif-business-policy-audit-premium.md), [SQL-039](sql/SQL-039-saif-business-policy-audit-premium.md), [SQL-040](sql/SQL-040-saif-business-policy-audit-premium.md), [SQL-041](sql/SQL-041-saif-business-policy-audit-premium.md), [SQL-042](sql/SQL-042-saif-business-policy-audit-premium.md), [SQL-043](sql/SQL-043-saif-business-policy-audit-premium.md), [SQL-081](sql/SQL-081-saif-business-policy-audit-premium.md), [SQL-082](sql/SQL-082-saif-business-policy-audit-premium.md), [SQL-091](sql/SQL-091-saif-business-policy-audit-premium.md) |
| **Source** | `Business\SAIF.Business.Policy.Audit.Premium\clsAuditSynchronization.vb:251-273` |

---
## BR-033: Synchronization stops after first matching change

| Field | Value |
| --- | --- |
| **Statement** | Synchronization processing is short-circuited; only the first matching change type is applied during a run.* |
| **Trigger** | Audit synchronization when multiple change patterns could apply. |
| **Enforcement** | `clsAuditSynchronization.SynchronizeAudit` |
| **Outcome** | Later change handlers are skipped once one handler updates the audit. |
| **Confidence** | Inferred* |
| **Source** | `Business\SAIF.Business.Policy.Audit.Premium\clsAuditSynchronization.vb:75-131` |

---
## BR-034: Child-policy processing skips cancelled audits

| Field | Value |
| --- | --- |
| **Statement** | Child-policy processing runs only when the audit was not cancelled. |
| **Trigger** | `SynchronizeAudit` |
| **Enforcement** | ``clsAuditSynchronization.SynchronizeAudit`` |
| **Outcome** | `ProcessChildPolicies` executed or skipped |
| **Confidence** | Verified |
| **SQL** | [SQL-035](sql/SQL-035-saif-business-policy-audit-premium.md), [SQL-036](sql/SQL-036-saif-business-policy-audit-premium.md), [SQL-037](sql/SQL-037-saif-business-policy-audit-premium.md) |
| **Source** | `Business\SAIF.Business.Policy.Audit.Premium\clsAuditSynchronization.vb:75-131` |

---
## BR-035: NonZeroDecimalRequired (AuditSeqNum)

| Field | Value |
| --- | --- |
| **Statement** | Audit sequence number is required. |
| **Trigger** | See source. |
| **Enforcement** | ``clsAudit.vb:3989`` |
| **Outcome** | Validation or control-flow outcome. |
| **Confidence** | Verified |
| **SQL** | [SQL-001](sql/SQL-001-saif-business-policy-audit-premium.md), [SQL-004](sql/SQL-004-saif-business-policy-audit-premium.md), [SQL-018](sql/SQL-018-saif-business-policy-audit-premium.md), [SQL-019](sql/SQL-019-saif-business-policy-audit-premium.md), [SQL-020](sql/SQL-020-saif-business-policy-audit-premium.md), [SQL-021](sql/SQL-021-saif-business-policy-audit-premium.md), [SQL-022](sql/SQL-022-saif-business-policy-audit-premium.md), [SQL-023](sql/SQL-023-saif-business-policy-audit-premium.md), [SQL-024](sql/SQL-024-saif-business-policy-audit-premium.md), [SQL-076](sql/SQL-076-saif-business-policy-audit-premium.md), [SQL-088](sql/SQL-088-saif-business-policy-audit-premium.md) |
| **Source** | `Business\SAIF.Business.Policy.Audit.Premium\clsAudit.vb` |

---
## BR-036: NonZeroDecimalRequired (PolicyNumber)

| Field | Value |
| --- | --- |
| **Statement** | Policy number is required. |
| **Trigger** | See source. |
| **Enforcement** | ``clsAudit.vb:3990`` |
| **Outcome** | Validation or control-flow outcome. |
| **Confidence** | Verified |
| **SQL** | [SQL-001](sql/SQL-001-saif-business-policy-audit-premium.md), [SQL-004](sql/SQL-004-saif-business-policy-audit-premium.md), [SQL-018](sql/SQL-018-saif-business-policy-audit-premium.md), [SQL-019](sql/SQL-019-saif-business-policy-audit-premium.md), [SQL-020](sql/SQL-020-saif-business-policy-audit-premium.md), [SQL-021](sql/SQL-021-saif-business-policy-audit-premium.md), [SQL-022](sql/SQL-022-saif-business-policy-audit-premium.md), [SQL-023](sql/SQL-023-saif-business-policy-audit-premium.md), [SQL-024](sql/SQL-024-saif-business-policy-audit-premium.md), [SQL-076](sql/SQL-076-saif-business-policy-audit-premium.md), [SQL-088](sql/SQL-088-saif-business-policy-audit-premium.md) |
| **Source** | `Business\SAIF.Business.Policy.Audit.Premium\clsAudit.vb` |

---
## BR-037: TextRequired

| Field | Value |
| --- | --- |
| **Statement** | Audit type, audit reason, status, selection category and audit method are each required. |
| **Trigger** | See source. |
| **Enforcement** | ``clsAudit.vb:3991-3995`` |
| **Outcome** | Validation or control-flow outcome. |
| **Confidence** | Verified |
| **SQL** | [SQL-001](sql/SQL-001-saif-business-policy-audit-premium.md), [SQL-004](sql/SQL-004-saif-business-policy-audit-premium.md), [SQL-018](sql/SQL-018-saif-business-policy-audit-premium.md), [SQL-019](sql/SQL-019-saif-business-policy-audit-premium.md), [SQL-020](sql/SQL-020-saif-business-policy-audit-premium.md), [SQL-021](sql/SQL-021-saif-business-policy-audit-premium.md), [SQL-022](sql/SQL-022-saif-business-policy-audit-premium.md), [SQL-023](sql/SQL-023-saif-business-policy-audit-premium.md), [SQL-024](sql/SQL-024-saif-business-policy-audit-premium.md), [SQL-076](sql/SQL-076-saif-business-policy-audit-premium.md), [SQL-088](sql/SQL-088-saif-business-policy-audit-premium.md) |
| **Source** | `Business\SAIF.Business.Policy.Audit.Premium\clsAudit.vb` |

---
## BR-038: RequiredAuditOffice

| Field | Value |
| --- | --- |
| **Statement** | Audit office is required for an assigned, unfinished audit whose type allows an audit office. |
| **Trigger** | See source. |
| **Enforcement** | ``clsAudit.vb:4053`` |
| **Outcome** | Validation or control-flow outcome. |
| **Confidence** | Verified |
| **Source** | `Business\SAIF.Business.Policy.Audit.Premium\clsAudit.vb` |

---
## BR-039: AllowedAuditOffice

| Field | Value |
| --- | --- |
| **Statement** | An audit office may not be set for an NCCI test audit or an unassigned audit. |
| **Trigger** | See source. |
| **Enforcement** | ``clsAudit.vb:4040`` |
| **Outcome** | Validation or control-flow outcome. |
| **Confidence** | Verified |
| **Source** | `Business\SAIF.Business.Policy.Audit.Premium\clsAudit.vb` |

---
## BR-040: ValidPolicy

| Field | Value |
| --- | --- |
| **Statement** | Policy number must exist. |
| **Trigger** | See source. |
| **Enforcement** | ``clsAudit.vb:4450`` |
| **Outcome** | Validation or control-flow outcome. |
| **Confidence** | Verified |
| **Source** | `Business\SAIF.Business.Policy.Audit.Premium\clsAudit.vb` |

---
## BR-041: ValidAuditReasonCode

| Field | Value |
| --- | --- |
| **Statement** | Audit reason must exist and must belong to the reason set allowed for the audit's revision state (non-revision batch/online vs. revision); conversion audits are exempt. |
| **Trigger** | See source. |
| **Enforcement** | ``clsAudit.vb:4066`` |
| **Outcome** | Validation or control-flow outcome. |
| **Confidence** | Verified |
| **SQL** | [SQL-067](sql/SQL-067-saif-business-policy-audit-premium.md), [SQL-068](sql/SQL-068-saif-business-policy-audit-premium.md) |
| **Source** | `Business\SAIF.Business.Policy.Audit.Premium\clsAudit.vb` |

---
## BR-042: ValidAuditStartDate

| Field | Value |
| --- | --- |
| **Statement** | Start date may not exceed create date + 1 year for New Account Survey / Preliminary / Prospect; may not exceed the create date for non-batch Final, Interim, NCCI Test; batch Final may not exceed create date + 30 days. Conversion audits exempt. |
| **Trigger** | See source. |
| **Enforcement** | ``clsAudit.vb:4091`` |
| **Outcome** | Validation or control-flow outcome. |
| **Confidence** | Verified |
| **Source** | `Business\SAIF.Business.Policy.Audit.Premium\clsAudit.vb` |

---
## BR-043: ValidAuditEndDate

| Field | Value |
| --- | --- |
| **Statement** | End date may not precede the start date; a new audit for a period that expired more than 6 months ago may not be audited; Final audits may not end later than create date + 60 days. Manually-enterable reasons and conversion audits exempt. |
| **Trigger** | See source. |
| **Enforcement** | ``clsAudit.vb:4125`` |
| **Outcome** | Validation or control-flow outcome. |
| **Confidence** | Verified |
| **Source** | `Business\SAIF.Business.Policy.Audit.Premium\clsAudit.vb` |

---
## BR-044: ValidAuditAssignmentDate

| Field | Value |
| --- | --- |
| **Statement** | For an assigned, not-yet-completed Final audit the assignment date may not precede the audit end date; for revisions it may not be later than today nor earlier than the prior audit's completed date; an assignment date without an auditor is invalid. |
| **Trigger** | See source. |
| **Enforcement** | ``clsAudit.vb:4159`` |
| **Outcome** | Validation or control-flow outcome. |
| **Confidence** | Verified |
| **Source** | `Business\SAIF.Business.Policy.Audit.Premium\clsAudit.vb` |

---
## BR-045: ValidAuditDueDate

| Field | Value |
| --- | --- |
| **Statement** | Due date must be after the assignment date. |
| **Trigger** | See source. |
| **Enforcement** | ``clsAudit.vb:4191`` |
| **Outcome** | Validation or control-flow outcome. |
| **Confidence** | Verified |
| **Source** | `Business\SAIF.Business.Policy.Audit.Premium\clsAudit.vb` |

---
## BR-046: ValidAppointmentDate

| Field | Value |
| --- | --- |
| **Statement** | Appointment date must be on/after the assignment date for scheduled or assigned audits. |
| **Trigger** | See source. |
| **Enforcement** | ``clsAudit.vb:4202`` |
| **Outcome** | Validation or control-flow outcome. |
| **Confidence** | Verified |
| **Source** | `Business\SAIF.Business.Policy.Audit.Premium\clsAudit.vb` |

---
## BR-047: ValidAppointmentDateAndTime

| Field | Value |
| --- | --- |
| **Statement** | Appointment date and time must both be present or both absent. |
| **Trigger** | See source. |
| **Enforcement** | ``clsAudit.vb:4214`` |
| **Outcome** | Validation or control-flow outcome. |
| **Confidence** | Verified |
| **Source** | `Business\SAIF.Business.Policy.Audit.Premium\clsAudit.vb` |

---
## BR-048: ValidWarningLetterDate

| Field | Value |
| --- | --- |
| **Statement** | Warning letter date must be after the assignment date. |
| **Trigger** | See source. |
| **Enforcement** | ``clsAudit.vb:4226`` |
| **Outcome** | Validation or control-flow outcome. |
| **Confidence** | Verified |
| **Source** | `Business\SAIF.Business.Policy.Audit.Premium\clsAudit.vb` |

---
## BR-049: ValidSubmittedDate

| Field | Value |
| --- | --- |
| **Statement** | Submitted date must be on/after the assignment date and not later than today. |
| **Trigger** | See source. |
| **Enforcement** | ``clsAudit.vb:4238`` |
| **Outcome** | Validation or control-flow outcome. |
| **Confidence** | Verified |
| **Source** | `Business\SAIF.Business.Policy.Audit.Premium\clsAudit.vb` |

---
## BR-050: ValidReviewDate

| Field | Value |
| --- | --- |
| **Statement** | Review date may only be entered when review status is `COMPL`, and must be on/after 1/1/1900. |
| **Trigger** | See source. |
| **Enforcement** | ``clsAudit.vb:4258`` |
| **Outcome** | Validation or control-flow outcome. |
| **Confidence** | Verified |
| **Source** | `Business\SAIF.Business.Policy.Audit.Premium\clsAudit.vb` |

---
## BR-051: ValidReviewStatusCode

| Field | Value |
| --- | --- |
| **Statement** | Review status may not be set to `COMPL` until every review reason has a result and a reviewer and a review date is entered. |
| **Trigger** | See source. |
| **Enforcement** | ``clsAudit.vb:4279`` |
| **Outcome** | Validation or control-flow outcome. |
| **Confidence** | Verified |
| **SQL** | [SQL-052](sql/SQL-052-saif-business-policy-audit-premium.md), [SQL-053](sql/SQL-053-saif-business-policy-audit-premium.md) |
| **Source** | `Business\SAIF.Business.Policy.Audit.Premium\clsAudit.vb` |

---
## BR-052: ValidCompletedDate

| Field | Value |
| --- | --- |
| **Statement** | Completed date must be on or after the submitted date. |
| **Trigger** | See source. |
| **Enforcement** | ``clsAudit.vb:4302`` |
| **Outcome** | Validation or control-flow outcome. |
| **Confidence** | Verified |
| **Source** | `Business\SAIF.Business.Policy.Audit.Premium\clsAudit.vb` |

---
## BR-053: ValidCancelReasonCode

| Field | Value |
| --- | --- |
| **Statement** | Cancel reason must be valid. |
| **Trigger** | See source. |
| **Enforcement** | ``clsAudit.vb:4314`` |
| **Outcome** | Validation or control-flow outcome. |
| **Confidence** | Verified |
| **Source** | `Business\SAIF.Business.Policy.Audit.Premium\clsAudit.vb` |

---
## BR-054: ValidSelectionCategoryGroupCode

| Field | Value |
| --- | --- |
| **Statement** | Selection category must be valid. |
| **Trigger** | See source. |
| **Enforcement** | ``clsAudit.vb:4325`` |
| **Outcome** | Validation or control-flow outcome. |
| **Confidence** | Verified |
| **SQL** | [SQL-055](sql/SQL-055-saif-business-policy-audit-premium.md), [SQL-056](sql/SQL-056-saif-business-policy-audit-premium.md) |
| **Source** | `Business\SAIF.Business.Policy.Audit.Premium\clsAudit.vb` |

---
## BR-055: ValidAuditor

| Field | Value |
| --- | --- |
| **Statement** | Auditor must be valid. |
| **Trigger** | See source. |
| **Enforcement** | ``clsAudit.vb:4340`` |
| **Outcome** | Validation or control-flow outcome. |
| **Confidence** | Verified |
| **SQL** | [SQL-003](sql/SQL-003-saif-business-policy-audit-premium.md), [SQL-008](sql/SQL-008-saif-business-policy-audit-premium.md), [SQL-032](sql/SQL-032-saif-business-policy-audit-premium.md), [SQL-033](sql/SQL-033-saif-business-policy-audit-premium.md), [SQL-079](sql/SQL-079-saif-business-policy-audit-premium.md) |
| **Source** | `Business\SAIF.Business.Policy.Audit.Premium\clsAudit.vb` |

---
## BR-056: ValidAuditOffice

| Field | Value |
| --- | --- |
| **Statement** | Audit office must be valid. |
| **Trigger** | See source. |
| **Enforcement** | ``clsAudit.vb:4400`` |
| **Outcome** | Validation or control-flow outcome. |
| **Confidence** | Verified |
| **Source** | `Business\SAIF.Business.Policy.Audit.Premium\clsAudit.vb` |

---
## BR-057: ValidUpdatableAudit

| Field | Value |
| --- | --- |
| **Statement** | An audit whose policy periods are out of sync with WCIS may not be updated. |
| **Trigger** | See source. |
| **Enforcement** | ``clsAudit.vb:4411`` |
| **Outcome** | Validation or control-flow outcome. |
| **Confidence** | Verified |
| **SQL** | [SQL-001](sql/SQL-001-saif-business-policy-audit-premium.md), [SQL-004](sql/SQL-004-saif-business-policy-audit-premium.md), [SQL-018](sql/SQL-018-saif-business-policy-audit-premium.md), [SQL-019](sql/SQL-019-saif-business-policy-audit-premium.md), [SQL-020](sql/SQL-020-saif-business-policy-audit-premium.md), [SQL-021](sql/SQL-021-saif-business-policy-audit-premium.md), [SQL-022](sql/SQL-022-saif-business-policy-audit-premium.md), [SQL-023](sql/SQL-023-saif-business-policy-audit-premium.md), [SQL-024](sql/SQL-024-saif-business-policy-audit-premium.md), [SQL-072](sql/SQL-072-saif-business-policy-audit-premium.md), [SQL-076](sql/SQL-076-saif-business-policy-audit-premium.md), [SQL-088](sql/SQL-088-saif-business-policy-audit-premium.md) |
| **Source** | `Business\SAIF.Business.Policy.Audit.Premium\clsAudit.vb` |

---
## BR-020: Ineligible policy types cannot be audited

| Field | Value |
| --- | --- |
| **Statement** | Leasing-client, State-agency and HCW policies may not be audited. |
| **Trigger** | See source. |
| **Enforcement** | ``clsAudit.vb:4421`` |
| **Outcome** | Validation or control-flow outcome. |
| **Confidence** | Verified |
| **SQL** | [SQL-001](sql/SQL-001-saif-business-policy-audit-premium.md), [SQL-004](sql/SQL-004-saif-business-policy-audit-premium.md), [SQL-018](sql/SQL-018-saif-business-policy-audit-premium.md), [SQL-019](sql/SQL-019-saif-business-policy-audit-premium.md), [SQL-020](sql/SQL-020-saif-business-policy-audit-premium.md), [SQL-021](sql/SQL-021-saif-business-policy-audit-premium.md), [SQL-022](sql/SQL-022-saif-business-policy-audit-premium.md), [SQL-023](sql/SQL-023-saif-business-policy-audit-premium.md), [SQL-024](sql/SQL-024-saif-business-policy-audit-premium.md), [SQL-027](sql/SQL-027-saif-business-policy-audit-premium.md), [SQL-028](sql/SQL-028-saif-business-policy-audit-premium.md), [SQL-029](sql/SQL-029-saif-business-policy-audit-premium.md), [SQL-076](sql/SQL-076-saif-business-policy-audit-premium.md), [SQL-088](sql/SQL-088-saif-business-policy-audit-premium.md) |
| **Source** | `Business\SAIF.Business.Policy.Audit.Premium\clsAudit.vb` |

---
## BR-021: Duplicate audits are blocked

| Field | Value |
| --- | --- |
| **Statement** | An audit for the same period and type may not already exist. |
| **Trigger** | See source. |
| **Enforcement** | ``clsAudit.vb:4439`; backed by `DuplicateAuditExists()` (`clsAudit.vb:3233`)` |
| **Outcome** | Validation or control-flow outcome. |
| **Confidence** | Verified |
| **SQL** | [SQL-001](sql/SQL-001-saif-business-policy-audit-premium.md), [SQL-004](sql/SQL-004-saif-business-policy-audit-premium.md), [SQL-018](sql/SQL-018-saif-business-policy-audit-premium.md), [SQL-019](sql/SQL-019-saif-business-policy-audit-premium.md), [SQL-020](sql/SQL-020-saif-business-policy-audit-premium.md), [SQL-021](sql/SQL-021-saif-business-policy-audit-premium.md), [SQL-022](sql/SQL-022-saif-business-policy-audit-premium.md), [SQL-023](sql/SQL-023-saif-business-policy-audit-premium.md), [SQL-024](sql/SQL-024-saif-business-policy-audit-premium.md), [SQL-027](sql/SQL-027-saif-business-policy-audit-premium.md), [SQL-028](sql/SQL-028-saif-business-policy-audit-premium.md), [SQL-029](sql/SQL-029-saif-business-policy-audit-premium.md), [SQL-076](sql/SQL-076-saif-business-policy-audit-premium.md), [SQL-088](sql/SQL-088-saif-business-policy-audit-premium.md) |
| **Source** | `Business\SAIF.Business.Policy.Audit.Premium\clsAudit.vb` |

---
## BR-058: ValidTestAuditType / ValidTestAuditDifference / ValidTestAuditResult

| Field | Value |
| --- | --- |
| **Statement** | Test audit type, difference and result are required when applicable. |
| **Trigger** | See source. |
| **Enforcement** | ``clsAudit.vb:4591,4600,4609`` |
| **Outcome** | Validation or control-flow outcome. |
| **Confidence** | Verified |
| **SQL** | [SQL-017](sql/SQL-017-saif-business-policy-audit-premium.md), [SQL-069](sql/SQL-069-saif-business-policy-audit-premium.md), [SQL-070](sql/SQL-070-saif-business-policy-audit-premium.md), [SQL-071](sql/SQL-071-saif-business-policy-audit-premium.md), [SQL-087](sql/SQL-087-saif-business-policy-audit-premium.md), [SQL-095](sql/SQL-095-saif-business-policy-audit-premium.md) |
| **Source** | `Business\SAIF.Business.Policy.Audit.Premium\clsAudit.vb` |

---
## BR-059: ValidAppealReasons / ValidAppealRequestDate (×2) / ValidAppealNoticeDate / ValidHearingDate

| Field | Value |
| --- | --- |
| **Statement** | Audit must be complete to enter an Appeal review reason; appeal request date must follow the assignment date and requires an Appeal review reason; appeal notice date and hearing date must follow the appeal request date. |
| **Trigger** | See source. |
| **Enforcement** | ``clsAudit.vb:4490-4534`` |
| **Outcome** | Validation or control-flow outcome. |
| **Confidence** | Verified |
| **Source** | `Business\SAIF.Business.Policy.Audit.Premium\clsAudit.vb` |

---
## BR-060: ValidWCISRevision

| Field | Value |
| --- | --- |
| **Statement** | At least one WCIS revision record is required before a complete date may be entered. |
| **Trigger** | See source. |
| **Enforcement** | ``clsAudit.vb:4535`` |
| **Outcome** | Validation or control-flow outcome. |
| **Confidence** | Verified |
| **Source** | `Business\SAIF.Business.Policy.Audit.Premium\clsAudit.vb` |

---
## BR-061: ValidWaiverFromDate / ValidWaiverToDate

| Field | Value |
| --- | --- |
| **Statement** | Waiver from-date must lie within the audit period and precede the to-date; waiver to-date must be after the audit start date and no later than 2 years after the end date. |
| **Trigger** | See source. |
| **Enforcement** | ``clsAudit.vb:4545,4560`` |
| **Outcome** | Validation or control-flow outcome. |
| **Confidence** | Verified |
| **Source** | `Business\SAIF.Business.Policy.Audit.Premium\clsAudit.vb` |

---
## BR-062: WarningAuditStartDate

| Field | Value |
| --- | --- |
| **Statement** | Warning on out-of-range start date (non-blocking). |
| **Trigger** | See source. |
| **Enforcement** | ``clsAudit.vb:4461`` |
| **Outcome** | Validation or control-flow outcome. |
| **Confidence** | Verified |
| **Source** | `Business\SAIF.Business.Policy.Audit.Premium\clsAudit.vb` |

---
## BR-063: WarningComplianceNoAuditor

| Field | Value |
| --- | --- |
| **Statement** | Warning: selection category is compliance but no auditor is assigned (non-blocking). |
| **Trigger** | See source. |
| **Enforcement** | ``clsAudit.vb:4478`` |
| **Outcome** | Validation or control-flow outcome. |
| **Confidence** | Verified |
| **Source** | `Business\SAIF.Business.Policy.Audit.Premium\clsAudit.vb` |

---
## BR-022: Assignment defaults missing office

| Field | Value |
| --- | --- |
| **Statement** | An audit assigned without an audit office code inherits the default audit office code. |
| **Trigger** | See source. |
| **Enforcement** | ``clsAudit.AssignAuditToAuditor`` |
| **Outcome** | Validation or control-flow outcome. |
| **Confidence** | Verified |
| **Source** | `Business\SAIF.Business.Policy.Audit.Premium\clsAudit.vb:2881-2906` |

---
## BR-023: Reassignment recalculates date on region change

| Field | Value |
| --- | --- |
| **Statement** | On reassignment the assignment date is recalculated only when the new audit office belongs to a different policy region. |
| **Trigger** | See source. |
| **Enforcement** | ``clsAudit.SetAssignmentDate`` |
| **Outcome** | Validation or control-flow outcome. |
| **Confidence** | Verified |
| **Source** | `Business\SAIF.Business.Policy.Audit.Premium\clsAudit.vb:2978-3001` |

---
## BR-064: Leasing-client / State-agency / HCW policies may not have an assignment override

| Field | Value |
| --- | --- |
| **Statement** | Leasing-client / State-agency / HCW policies may not have an assignment override. |
| **Trigger** | See source. |
| **Enforcement** | ``clsAuditAssignmentOverride.vb:445`` |
| **Outcome** | Validation or control-flow outcome. |
| **Confidence** | Verified |
| **SQL** | [SQL-005](sql/SQL-005-saif-business-policy-audit-premium.md), [SQL-026](sql/SQL-026-saif-business-policy-audit-premium.md), [SQL-077](sql/SQL-077-saif-business-policy-audit-premium.md) |
| **Source** | `Business\SAIF.Business.Policy.Audit.Premium\clsAuditAssignmentOverride.vb` |

---
## BR-065: The same auditor may not be both the "do not assign to" and the "default assignment" auditor

| Field | Value |
| --- | --- |
| **Statement** | The same auditor may not be both the "do not assign to" and the "default assignment" auditor. |
| **Trigger** | See source. |
| **Enforcement** | ``clsAuditAssignmentOverride.vb:461`` |
| **Outcome** | Validation or control-flow outcome. |
| **Confidence** | Verified |
| **SQL** | [SQL-005](sql/SQL-005-saif-business-policy-audit-premium.md), [SQL-026](sql/SQL-026-saif-business-policy-audit-premium.md), [SQL-077](sql/SQL-077-saif-business-policy-audit-premium.md) |
| **Source** | `Business\SAIF.Business.Policy.Audit.Premium\clsAuditAssignmentOverride.vb` |

---
## BR-066: Default auditor and do-not-assign auditor must each be valid auditors

| Field | Value |
| --- | --- |
| **Statement** | Default auditor and do-not-assign auditor must each be valid auditors. |
| **Trigger** | See source. |
| **Enforcement** | ``clsAuditAssignmentOverride.vb:470,486`` |
| **Outcome** | Validation or control-flow outcome. |
| **Confidence** | Verified |
| **SQL** | [SQL-005](sql/SQL-005-saif-business-policy-audit-premium.md), [SQL-026](sql/SQL-026-saif-business-policy-audit-premium.md), [SQL-077](sql/SQL-077-saif-business-policy-audit-premium.md) |
| **Source** | `Business\SAIF.Business.Policy.Audit.Premium\clsAuditAssignmentOverride.vb` |

---
## BR-067: Audit event code must be valid

| Field | Value |
| --- | --- |
| **Statement** | Audit event code must be valid. |
| **Trigger** | See source. |
| **Enforcement** | ``clsAuditEvent.vb:427`` |
| **Outcome** | Validation or control-flow outcome. |
| **Confidence** | Verified |
| **SQL** | [SQL-002](sql/SQL-002-saif-business-policy-audit-premium.md), [SQL-006](sql/SQL-006-saif-business-policy-audit-premium.md), [SQL-007](sql/SQL-007-saif-business-policy-audit-premium.md), [SQL-030](sql/SQL-030-saif-business-policy-audit-premium.md), [SQL-031](sql/SQL-031-saif-business-policy-audit-premium.md), [SQL-078](sql/SQL-078-saif-business-policy-audit-premium.md), [SQL-089](sql/SQL-089-saif-business-policy-audit-premium.md) |
| **Source** | `Business\SAIF.Business.Policy.Audit.Premium\clsAuditEvent.vb` |

---
## BR-068: An auditor-ZIP row requires an existing auditor, an assignable auditor, and an existing ZIP code

| Field | Value |
| --- | --- |
| **Statement** | An auditor-ZIP row requires an existing auditor, an assignable auditor, and an existing ZIP code. |
| **Trigger** | See source. |
| **Enforcement** | ``clsAuditorZipCode.vb:391,406,421`` |
| **Outcome** | Validation or control-flow outcome. |
| **Confidence** | Verified |
| **SQL** | [SQL-009](sql/SQL-009-saif-business-policy-audit-premium.md), [SQL-034](sql/SQL-034-saif-business-policy-audit-premium.md), [SQL-074](sql/SQL-074-saif-business-policy-audit-premium.md), [SQL-075](sql/SQL-075-saif-business-policy-audit-premium.md), [SQL-080](sql/SQL-080-saif-business-policy-audit-premium.md), [SQL-090](sql/SQL-090-saif-business-policy-audit-premium.md) |
| **Source** | `Business\SAIF.Business.Policy.Audit.Premium\clsAuditorZipCode.vb` |

---
## BR-069: An audit result requires an existing result code

| Field | Value |
| --- | --- |
| **Statement** | An audit result requires an existing result code. |
| **Trigger** | See source. |
| **Enforcement** | ``clsAuditResult.vb:540`` |
| **Outcome** | Validation or control-flow outcome. |
| **Confidence** | Verified |
| **SQL** | [SQL-013](sql/SQL-013-saif-business-policy-audit-premium.md), [SQL-017](sql/SQL-017-saif-business-policy-audit-premium.md), [SQL-045](sql/SQL-045-saif-business-policy-audit-premium.md), [SQL-046](sql/SQL-046-saif-business-policy-audit-premium.md), [SQL-047](sql/SQL-047-saif-business-policy-audit-premium.md), [SQL-048](sql/SQL-048-saif-business-policy-audit-premium.md), [SQL-069](sql/SQL-069-saif-business-policy-audit-premium.md), [SQL-084](sql/SQL-084-saif-business-policy-audit-premium.md), [SQL-087](sql/SQL-087-saif-business-policy-audit-premium.md), [SQL-092](sql/SQL-092-saif-business-policy-audit-premium.md), [SQL-095](sql/SQL-095-saif-business-policy-audit-premium.md) |
| **Source** | `Business\SAIF.Business.Policy.Audit.Premium\clsAuditResult.vb` |

---
## BR-070: A review result requires an existing reason code, result code and reviewer ID; a new review result requires a reviewer valid for new results

| Field | Value |
| --- | --- |
| **Statement** | A review result requires an existing reason code, result code and reviewer ID; a new review result requires a reviewer valid for new results. |
| **Trigger** | See source. |
| **Enforcement** | ``clsAuditReviewResult.vb:539,552,565,577`` |
| **Outcome** | Validation or control-flow outcome. |
| **Confidence** | Verified |
| **SQL** | [SQL-014](sql/SQL-014-saif-business-policy-audit-premium.md), [SQL-049](sql/SQL-049-saif-business-policy-audit-premium.md), [SQL-050](sql/SQL-050-saif-business-policy-audit-premium.md), [SQL-051](sql/SQL-051-saif-business-policy-audit-premium.md), [SQL-052](sql/SQL-052-saif-business-policy-audit-premium.md), [SQL-053](sql/SQL-053-saif-business-policy-audit-premium.md), [SQL-054](sql/SQL-054-saif-business-policy-audit-premium.md), [SQL-085](sql/SQL-085-saif-business-policy-audit-premium.md), [SQL-093](sql/SQL-093-saif-business-policy-audit-premium.md) |
| **Source** | `Business\SAIF.Business.Policy.Audit.Premium\clsAuditReviewResult.vb` |

---
## BR-071: Selection-override select date and exclude date must each be a valid policy-period expiration date, and may not be the same date

| Field | Value |
| --- | --- |
| **Statement** | Selection-override select date and exclude date must each be a valid policy-period expiration date, and may not be the same date. |
| **Trigger** | See source. |
| **Enforcement** | ``clsAuditSelectionOverride.vb:431,447,463`` |
| **Outcome** | Validation or control-flow outcome. |
| **Confidence** | Verified |
| **SQL** | [SQL-015](sql/SQL-015-saif-business-policy-audit-premium.md), [SQL-059](sql/SQL-059-saif-business-policy-audit-premium.md), [SQL-086](sql/SQL-086-saif-business-policy-audit-premium.md) |
| **Source** | `Business\SAIF.Business.Policy.Audit.Premium\clsAuditSelectionOverride.vb` |

---
## BR-072: A selection test result requires a Selection Rule ID present in the PA_Selection_Rule table

| Field | Value |
| --- | --- |
| **Statement** | A selection test result requires a Selection Rule ID present in the `PA_Selection_Rule` table. |
| **Trigger** | See source. |
| **Enforcement** | ``clsAuditSelectionTestResult.vb:315`` |
| **Outcome** | Validation or control-flow outcome. |
| **Confidence** | Verified |
| **SQL** | [SQL-016](sql/SQL-016-saif-business-policy-audit-premium.md), [SQL-066](sql/SQL-066-saif-business-policy-audit-premium.md), [SQL-094](sql/SQL-094-saif-business-policy-audit-premium.md) |
| **Source** | `Business\SAIF.Business.Policy.Audit.Premium\clsAuditSelectionTestResult.vb` |

---

## Inherited business rules

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

#### INH-001: Inherited rules manager orchestration

| Field | Value |
| --- | --- |
| **Statement** | Each `clsBusinessBase`-derived object owns a `clsRulesManager` that evaluates registered rules and surfaces broken-rule state to callers and UI binding.* |
| **Trigger** | Any call to `Rules.CheckRules`, `IsValid`, or save-time validation. |
| **Enforcement** | `clsBusinessBase` / `clsRulesManager` |
| **Outcome** | Broken rules are recorded and exposed through the object.* |
| **Confidence** | Retrieved via dependency documentation* |
| **Source** | Retrieved from dependency library documentation via Legends CLI |

---

#### INH-002: Inherited broken-rule surfacing

| Field | Value |
| --- | --- |
| **Statement** | Business objects and business collections surface broken-rule state through `IDataErrorInfo` members exposed by the framework base classes.* |
| **Trigger** | Validation failures on BOF business objects or collections. |
| **Enforcement** | `clsBusinessBase` / `clsBusinessCollectionBase` |
| **Outcome** | Consumers can render rule failures without calling the rules engine directly.* |
| **Confidence** | Retrieved via dependency documentation* |
| **Source** | Retrieved from dependency library documentation via Legends CLI |

## Notes
- Procedure-derived rules are documented on the relevant procedure pages and summarized in the procedure catalog.

## Related documentation
- [Index](index.md)
- [Overview](overview.md)
- [Architecture](architecture.md)
- [Dependencies](dependencies.md)
- [Operations and processes](operations-processes.md)
- [Database tables](database-tables.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.Audit.Premium\clsAudit.vb:2881-2906`
- `Business\SAIF.Business.Policy.Audit.Premium\clsAudit.vb:2908-2976`
- `Business\SAIF.Business.Policy.Audit.Premium\clsAudit.vb:2978-3001`
- `Business\SAIF.Business.Policy.Audit.Premium\clsAudit.vb`
- `Business\SAIF.Business.Policy.Audit.Premium\clsAuditAssignmentManager.vb:236-294`
- `Business\SAIF.Business.Policy.Audit.Premium\clsAuditAssignmentManager.vb:236-294`
- `Business\SAIF.Business.Policy.Audit.Premium\clsAuditAssignmentManager.vb:296-309`
- `Business\SAIF.Business.Policy.Audit.Premium\clsAuditAssignmentOverride.vb`
- `Business\SAIF.Business.Policy.Audit.Premium\clsAuditEvent.vb`
- `Business\SAIF.Business.Policy.Audit.Premium\clsAuditResult.vb`
- `Business\SAIF.Business.Policy.Audit.Premium\clsAuditReviewResult.vb`
- `Business\SAIF.Business.Policy.Audit.Premium\clsAuditSelectionManager.vb:93-114`
- `Business\SAIF.Business.Policy.Audit.Premium\clsAuditSelectionManager.vb:233-271`
- `Business\SAIF.Business.Policy.Audit.Premium\clsAuditSelectionManager.vb:160-230`
- `Business\SAIF.Business.Policy.Audit.Premium\clsAuditSelectionOverride.vb`
- `Business\SAIF.Business.Policy.Audit.Premium\clsAuditSelectionTestResult.vb`
- `Business\SAIF.Business.Policy.Audit.Premium\clsAuditSynchronization.vb:133-159`
- `Business\SAIF.Business.Policy.Audit.Premium\clsAuditSynchronization.vb:212-249`
- `Business\SAIF.Business.Policy.Audit.Premium\clsAuditSynchronization.vb:251-273`
- `Business\SAIF.Business.Policy.Audit.Premium\clsAuditSynchronization.vb:175-210`
- `Business\SAIF.Business.Policy.Audit.Premium\`clsAuditSynchronization.SynchronizeAudit``
- `Business\SAIF.Business.Policy.Audit.Premium\`clsAuditSynchronization.SynchronizeAudit` → `CancelWithNoCoverage``
- `Business\SAIF.Business.Policy.Audit.Premium\clsAuditorZipCode.vb`
- `Business\SAIF.Business.Policy.Audit.Premium\clsAuditSynchronization.SynchronizeAudit`
