---
title: SAIF.SAIFCode.Core business rules
summary: Enumerated business rules with per-rule trigger, enforcement, and outcomes.
status: draft
owner: SAIF Doc Gen
last_reviewed: 2026-09-24
library: SAIF.SAIFCode.Core
reference_type: package
---

# SAIF.SAIFCode.Core business rules

This page captures business rules enforced by this library. Origin for every rule below is SAIF.SAIFCode.Core (this library); paths are relative to `Core/SAIF.Core/Contracts/` unless stated otherwise.

## CORE-BR-001 Documents are routed to a Left-window Right-window or DCBS-batch envelope

| Field | Value |
| --- | --- |
| **Statement** | Documents are routed to one of three envelope destinations: Left window, Right window, or DCBS batch. |
| **Trigger** | Banner creation. |
| **Enforcement** | `Documents/DocumentBannerInstructions.WhichEnvelope` |
| **Outcome** | Envelope type is selected for the document. |
| **Source** | Core/SAIF.Core/Contracts/Documents/DocumentBannerInstructions.cs |

---

## CORE-BR-002 Banner text order of six inserts plus language marker and delimiter matters for parsing

| Field | Value |
| --- | --- |
| **Statement** | Banner-page text is made of six ordered inserts, a language marker, and the `"; "` delimiter; the order matters because downstream processes parse the string back apart. |
| **Trigger** | Banner creation or parse. |
| **Enforcement** | `DocumentBannerInstructions.CreateBannerPageText` / `GetFreeformText` |
| **Outcome** | Banner string is assembled or its free-form segments are extracted. |
| **Source** | Core/SAIF.Core/Contracts/Documents/DocumentBannerInstructions.cs |

---

## CORE-BR-010 Claim alerts are raised for fraud secured worker preferred worker support order worker conflict multiple jobs overpayment and CDA Full DCS Partial DCS with dates

| Field | Value |
| --- | --- |
| **Statement** | Claim alerts are raised for fraud, secured worker, preferred worker, support order, worker conflict, multiple jobs, overpayment, and CDA/Full DCS/Partial DCS (with their dates). |
| **Trigger** | Claim detail display. |
| **Enforcement** | `Claims/Information/ClaimDetail.AlertItems` |
| **Outcome** | Alert list is produced for display. |
| **Source** | Core/SAIF.Core/Contracts/Claims/Information/ClaimDetail.cs |

---

## CORE-BR-020 Filter sentinels and producer minus 2 or minus 1 mean special or no-filter values

| Field | Value |
| --- | --- |
| **Statement** | The sentinel keys `"---"` and `"-100"`, and producer `-2`/`-1`, mean special or no-filter selections rather than literal filter values. |
| **Trigger** | Note or image search. |
| **Enforcement** | `Agencies/Notes/NoteSearchCriteria.cs` (`NoteFilterCriteria.Filter`), `Groups/Notes/NoteFilterCriteria.cs` |
| **Outcome** | Filter is applied or skipped. |
| **Source** | Core/SAIF.Core/Contracts/Agencies/Notes/NoteSearchCriteria.cs |

---

## CORE-BR-030 A claim identifier is 7 characters plus the 8th check character

| Field | Value |
| --- | --- |
| **Statement** | A claim identifier is composed of a 7-character claim number plus an 8th check character. |
| **Trigger** | Claim number parse. |
| **Enforcement** | `Claims/ClaimIdentifier` |
| **Outcome** | Number and check character are split out. |
| **Source** | Core/SAIF.Core/Contracts/Claims/ClaimIdentifier.cs |

---

## CORE-BR-040 Task priority codes are URG INFO MED LOW HIGH source codes are CLAIM COLL COVB IMAGE WCIS RTW

| Field | Value |
| --- | --- |
| **Statement** | Task priority codes are URG, INFO, MED, LOW, and HIGH; task source codes are CLAIM, COLL, COVB, IMAGE, WCIS, and RTW. |
| **Trigger** | Task mapping. |
| **Enforcement** | `Tasks/Extensions/TaskExtensions` |
| **Outcome** | Code is mapped to a display value. |
| **Source** | Core/SAIF.Core/Contracts/Tasks/Extensions/TaskExtensions.cs |

---

## CORE-BR-050 A bill is discardable when it is not an e-bill entry source E or its status is PEN

| Field | Value |
| --- | --- |
| **Statement** | A bill is discardable when its entry source is not `"E"` (not an e-bill) or its status is `PEN`. |
| **Trigger** | Bill UI rendering. |
| **Enforcement** | `Claims/Bills/Bill.IsBillDiscardable` |
| **Outcome** | Boolean flag controlling the discard action. |
| **Source** | Core/SAIF.Core/Contracts/Claims/Bills/Bill.cs |

---

## CORE-BR-051 A bill is complete when its status is COM

| Field | Value |
| --- | --- |
| **Statement** | A bill is complete when its status is `COM`. |
| **Trigger** | Bill UI rendering. |
| **Enforcement** | `Bill.IsBillComplete` |
| **Outcome** | Boolean flag controlling completion state display. |
| **Source** | Core/SAIF.Core/Contracts/Claims/Bills/Bill.cs |

---

## CORE-BR-052 A bill is updateable when its status is PEN ENT AUD or SUS

| Field | Value |
| --- | --- |
| **Statement** | A bill is updateable when its status is `PEN`, `ENT`, `AUD`, or `SUS`. |
| **Trigger** | Bill UI rendering. |
| **Enforcement** | `Bill.IsBillUpdateable` |
| **Outcome** | Boolean flag controlling the update action. |
| **Source** | Core/SAIF.Core/Contracts/Claims/Bills/Bill.cs |

---

## CORE-BR-053 The bill status code set is COM ENT AUD PEN APP DIS EXT REV SUS

| Field | Value |
| --- | --- |
| **Statement** | The bill status code domain is COM, ENT, AUD, PEN, APP, DIS, EXT, REV, SUS. |
| **Trigger** | Status mapping. |
| **Enforcement** | `Claims/Bills/BillStatusCode` |
| **Outcome** | Code instance representing a bill status. |
| **Source** | Core/SAIF.Core/Contracts/Claims/Bills/BillStatusCode.cs |

---

## CORE-BR-060 Policy document API return codes map to user messages UserNotAuthorized is 2 UserNotAuthorizedForPolicy is 3

| Field | Value |
| --- | --- |
| **Statement** | Policy Documents API integer return codes map to user-facing messages, including `UserNotAuthorized` (2, "User is not authorized to view Policy or Payroll Reports") and `UserNotAuthorizedForPolicy` (3, "User is not authorized to view Report"). |
| **Trigger** | API response handling. |
| **Enforcement** | `Policies/PolicyDocumentsApi/PolicyDocumentReturnCode.AssignMessage` |
| **Outcome** | Message text is produced for the caller. |
| **Source** | Core/SAIF.Core/Contracts/Policies/PolicyDocumentsApi/PolicyDocumentReturnCode.cs |

## Notes
- `SAIF.Domain`'s `Bill.ModifyStatus` operation consumes the [CORE-BR-053](#core-br-053-the-bill-status-code-set-is-com-ent-aud-pen-app-dis-ext-rev-sus) bill status code set (recorded there as DOM-BR-030 in that library's documentation)*.
- This library has no stored procedures; the `## Stored procedure business rules` category is omitted because none apply.

## Related documentation
- [Index](index.md)
- [Overview](overview.md)
- [Architecture](architecture.md)
- [Dependencies](dependencies.md)
- [Operations and processes](operations-processes.md)
- [Security and authorization](security-authorization.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.

## Sources
- Core/SAIF.Core/Contracts/Documents/DocumentBannerInstructions.cs
- Core/SAIF.Core/Contracts/Claims/Information/ClaimDetail.cs
- Core/SAIF.Core/Contracts/Agencies/Notes/NoteSearchCriteria.cs
- Core/SAIF.Core/Contracts/Groups/Notes/NoteFilterCriteria.cs
- Core/SAIF.Core/Contracts/Claims/ClaimIdentifier.cs
- Core/SAIF.Core/Contracts/Tasks/Extensions/TaskExtensions.cs
- Core/SAIF.Core/Contracts/Claims/Bills/Bill.cs
- Core/SAIF.Core/Contracts/Claims/Bills/BillStatusCode.cs
- Core/SAIF.Core/Contracts/Policies/PolicyDocumentsApi/PolicyDocumentReturnCode.cs
