Skip to content

SAIF.Business.Claim.ThirdParty business rules

This page captures business rules enforced by this library.

BR-001: Expense approval status is constrained to defined constants

Field Value
Statement Expense approval handling uses the fixed status set PEND, APPR, DISA, and NOTR.
Trigger When expense approval operations interpret or persist approval codes.
Enforcement clsThirdPartyConstants defines the allowed code values consumed by recovery workflows.
Outcome Recovery approval state stays within the known code set.
Source Business\SAIF.Business.Claim.ThirdParty\clsThirdPartyConstants.vb

BR-002: Distribution from-name is required

Field Value
Statement A third-party distribution requires a source or from-name value before it can be saved.
Trigger When clsThirdpartyDistribution validates a save request.
Enforcement The distribution business object registers clsThirdpartyDistribution01 rule data for validation.
Outcome Incomplete distribution records fail validation before persistence.
Source Business\SAIF.Business.Claim.ThirdParty\clsThirdpartyDistribution.vb

BR-003: Third-party task due dates are limited to a one-year window

Field Value
Statement Third-party task due dates must fall between the current date and one year from the current date.
Trigger When clsThirdpartyTask validates a task save.
Enforcement Task validation rule clsThirdpartyTask05 checks the due date range.
Outcome Out-of-range due dates raise validation errors.
Source Business\SAIF.Business.Claim.ThirdParty\clsThirdpartyTask.vb

BR-004: Pending-case tasks cannot be deleted directly

Field Value
Statement Tasks attached to pending cases cannot be deleted individually and must instead be removed through case-level workflow.
Trigger When a pending-case task delete is requested.
Enforcement Task validation rule clsThirdpartyTask07 blocks the delete path.
Outcome Users are directed back to the review or case workflow.
Source Business\SAIF.Business.Claim.ThirdParty\clsThirdpartyTask.vb

BR-005: Recovery save operations require one affected row

Field Value
Statement Package-backed insert and update operations are treated as successful only when they affect exactly one database row.
Trigger After third-party entity insert or update calls complete.
Enforcement Entity AfterInsert and AfterUpdate handlers raise BOF error messages when the package result indicates contention.
Outcome Stale or failed recovery saves surface as explicit errors.
Source Business\SAIF.Business.Claim.ThirdParty\clsThirdPartyCase.vb

BR-006: Case closure loads a closure description

Field Value
Statement Closing a third-party case triggers retrieval of a closure-description value.
Trigger When case status transitions require closure metadata.
Enforcement clsThirdPartyCase uses ClosureDescrSQL to load description text for the selected closure code.
Outcome Consumers receive display-ready closure text alongside status changes.
Tables THRDPARTY_CASE
Source Business\SAIF.Business.Claim.ThirdParty\clsThirdPartyCase.vb

BR-007: Firm associations use fixed recovery firm categories

Field Value
Statement Third-party firm relationships are categorized by fixed constants such as plaintiff, co-counsel, third-party, carrier, and attorney.
Trigger When firm relationships are evaluated or persisted.
Enforcement clsThirdPartyConstants defines the category constants consumed by the recovery objects.
Outcome Firm relationships can be consistently filtered and interpreted across the library.
Source Business\SAIF.Business.Claim.ThirdParty\clsThirdPartyConstants.vb

BR-008: Third-party recovery persistence follows the package contract

Field Value
Statement Third-party recovery create, update, delete, and list workflows depend on the PK82033_THIRDPARTY procedure contract instead of inline SQL in the BOF classes.
Trigger When recovery collections and criteria objects execute package-backed read or write operations.
Enforcement Collection criteria and lifecycle methods call named PK82033_THIRDPARTY entry points such as THRDPARTY_INSERT, THRDPARTY_UPDATE, NEW_CLAIM_LIST, OPEN_CASE_LIST, and THRDPARTY_CASE_SEARCH_SELECT.
Outcome Oracle package logic remains the authoritative source for third-party recovery persistence and list-generation behavior.
Confidence Verified
Source Business\SAIF.Business.Claim.ThirdParty\clsThirdPartyNewClaim.vb; Business\SAIF.Business.Claim.ThirdParty\clsClaimActivityManager.vb; Business\SAIF.Business.Claim.ThirdParty\clsThrdpartyCaseSearchCollection.vb; Business\SAIF.Business.Claim.ThirdParty\clsThrdpartyLienCategoryCollection.vb

BR-009: Third-party case adjuster code is required

Field Value
Statement A third-party case must have an assigned adjuster code before it can be saved.
Trigger When clsThirdPartyCase validates a case save.
Enforcement Case validation rule clsThirdPartyCase01 checks that the adjuster code is present.
Outcome Cases without an assigned adjuster fail validation before persistence.
Source Business\SAIF.Business.Claim.ThirdParty\clsThirdPartyCase.vb

BR-010: Case closure requires a closure code

Field Value
Statement A third-party case cannot be closed without a closure code.
Trigger When clsThirdPartyCase validates a status change to closed.
Enforcement Case validation rule clsThirdPartyCase02 checks for a closure code whenever the case status is closed.
Outcome Attempts to close a case without a closure code fail validation.
Source Business\SAIF.Business.Claim.ThirdParty\clsThirdPartyCase.vb

BR-011: Subsequent intervening cause and suit-filed dates must fall between DOI and today

Field Value
Statement The subsequent intervening cause date and the suit-filed date, when entered, must each fall on or after the date of injury and on or before the current date.
Trigger When clsThirdPartyCase validates a case save with either date populated.
Enforcement Case validation rules clsThirdPartyCase03 and clsThirdPartyCase06 check each date against the DOI-to-today window.
Outcome Dates outside the valid window fail validation.
Source Business\SAIF.Business.Claim.ThirdParty\clsThirdPartyCase.vb

BR-012: Statute date is required and must follow the date of injury

Field Value
Statement A third-party case requires a statute-of-limitations date, and that date must fall after the date of injury.
Trigger When clsThirdPartyCase validates a case save.
Enforcement Case validation rules clsThirdPartyCase04 and clsThirdPartyCase07 check for presence and DOI ordering.
Outcome Cases missing a statute date, or with one that precedes the DOI, fail validation.
Source Business\SAIF.Business.Claim.ThirdParty\clsThirdPartyCase.vb

BR-013: Statute date month/day should match DOI (warning)

Field Value
Statement If the statute date's month and day do not match the date of injury's month and day, a warning is raised, though the save is not blocked.
Trigger When clsThirdPartyCase validates a case save with a statute date populated.
Enforcement Case validation rule clsThirdPartyCase05 compares the month/day components and raises a warning-level rule violation.
Outcome Users are alerted to a potential statute-date mismatch but may proceed with the save.
Confidence Inferred
Source Business\SAIF.Business.Claim.ThirdParty\clsThirdPartyCase.vb

BR-014: Third-party person requires a name and a reasonable birth date

Field Value
Statement A third-party person record requires a name, and any entered birth date must be a reasonable (non-future, non-implausible) date.
Trigger When clsThrdparty validates a person save.
Enforcement Person validation rules clsThirdParty01 and clsThirdParty02 check name presence and birth-date plausibility.
Outcome Person records missing a name, or with an invalid birth date, fail validation.
Source Business\SAIF.Business.Claim.ThirdParty\clsThrdparty.vb

BR-015: Third-party phone and fax numbers must be full domestic-format length

Field Value
Statement Third-party person phone and fax numbers, when entered, must be the full domestic-format digit length.
Trigger When clsThrdparty validates a person save with a phone or fax number populated.
Enforcement Person validation rules clsThirdParty03 and clsThirdParty04 check the digit length of each number.
Outcome Incomplete phone or fax numbers fail validation.
Source Business\SAIF.Business.Claim.ThirdParty\clsThrdparty.vb

BR-016: Companion claim number must resolve to a valid claim; conflict claims warn of restricted access

Field Value
Statement A companion claim number entered against a third-party person must resolve to an existing claim; if that claim is flagged as a conflict/restricted-access claim, a warning is raised.
Trigger When clsThrdpartyCompanionClaim validates a companion claim entry.
Enforcement Companion claim validation rules clsThrdpartyCompanionClaim01 and clsThrdpartyCompanionClaim02 check claim resolution and conflict status.
Outcome Unresolvable companion claim numbers fail validation; conflict claims proceed with a warning shown to the user.
Source Business\SAIF.Business.Claim.ThirdParty\clsThrdpartyCompanionClaim.vb

BR-017: Third-party firm requires a company name and full-length phone/fax numbers

Field Value
Statement A third-party firm record requires a company name, and any entered phone or fax number must be the full domestic-format digit length.
Trigger When clsThrdPartyFirm validates a firm save.
Enforcement Firm validation rules clsThrdPartyFirm01, clsThrdPartyFirm02, and clsThrdPartyFirm03 check name presence and phone/fax length.
Outcome Firm records missing a name, or with incomplete phone/fax numbers, fail validation.
Source Business\SAIF.Business.Claim.ThirdParty\clsThrdPartyFirm.vb

BR-018: Expense type, amount, and expense date are required and must fall within the claim's injury-to-today window

Field Value
Statement A third-party expense requires an expense type and a non-zero amount, and its expense date must fall between the claim's date of injury and the current date.
Trigger When clsThrdpartyExpense validates an expense save.
Enforcement Expense validation rules clsThrdpartyExpense02, clsThrdpartyExpense03, clsThrdpartyExpense03a, and clsThrdpartyExpense06 check type, amount, and date range.
Outcome Expenses missing a type or amount, or with an out-of-range date, fail validation.
Source Business\SAIF.Business.Claim.ThirdParty\clsThrdpartyExpense.vb

BR-019: Budget code required whenever recovery amount entered; recovery amount cannot exceed expense amount

Field Value
Statement Whenever a recovery amount is entered on a third-party expense, a budget code is required, and the recovery amount cannot exceed the expense amount.
Trigger When clsThrdpartyExpense validates an expense save with a recovery amount populated.
Enforcement Expense validation rules clsThrdpartyExpense04 and clsThrdpartyExpense07 check budget-code presence and the recovery-to-expense amount relationship.
Outcome Expenses with a recovery amount but no budget code, or a recovery amount exceeding the expense amount, fail validation.
Source Business\SAIF.Business.Claim.ThirdParty\clsThrdpartyExpense.vb

BR-020: Expense totals of $5,000 or more require supervisor approval; $25,000 or more require director approval

Field Value
Statement A recovery case's total expense amount of $5,000 or more requires supervisor-level approval; a total of $25,000 or more requires director-level approval.
Trigger When clsThrdpartyExpenseApproval.SetExpenseApproval evaluates the case's cumulative expense total.
Enforcement Expense approval rules clsThrdpartyExpenseApproval02 and clsThrdpartyExpenseApproval03 compare the total against the $5,000 and $25,000 thresholds.
Outcome Expense totals crossing either threshold raise an approval-required warning and set the corresponding approval status.
Source Business\SAIF.Business.Claim.ThirdParty\clsThrdpartyExpenseApproval.vb

BR-021: Lien date is required

Field Value
Statement A third-party lien requires a lien date before it can be saved.
Trigger When clsThrdpartyLien validates a lien save.
Enforcement Lien validation rule ID "1" checks that the lien date is present.
Outcome Liens missing a lien date fail validation.
Source Business\SAIF.Business.Claim.ThirdParty\clsThrdpartyLien.vb

BR-022: Settlement total must equal the sum of settlement detail amounts and be greater than zero

Field Value
Statement A third-party settlement's total amount must equal the sum of its settlement detail category amounts, and the total must be greater than zero.
Trigger When clsThrdpartySettlement validates a settlement save.
Enforcement Settlement validation rule clsThrdpartySettlement01 reconciles the total against detail amounts, and a related check under clsThrdpartySettlement02 confirms the total is positive.
Outcome Settlements whose total does not match the detail sum, or that total zero or less, fail validation.
Source Business\SAIF.Business.Claim.ThirdParty\clsThrdpartySettlement.vb

BR-023: Settlement type and settlement date are required; date cannot be in the future or otherwise unreasonable

Field Value
Statement A third-party settlement requires a settlement type and a settlement date, and the settlement date cannot be in the future or otherwise implausible.
Trigger When clsThrdpartySettlement validates a settlement save.
Enforcement Settlement validation rule clsThrdpartySettlement02 checks for settlement type presence, and rule clsThrdpartySettlement03 (together with shared date-plausibility checks) validates the settlement date.
Outcome Settlements missing a type or date, or with an invalid date, fail validation.
Source Business\SAIF.Business.Claim.ThirdParty\clsThrdpartySettlement.vb

BR-024: Settlement detail category amount cannot be negative and category code is required

Field Value
Statement A third-party settlement detail line requires a category code, and its amount cannot be negative.
Trigger When clsThrdpartySettlementDetail validates a settlement detail save.
Enforcement Settlement detail validation rules clsThrdpartySettlementDetail01 and clsThrdpartySettlementDetail02 check category-code presence and amount sign.
Outcome Settlement detail lines missing a category code, or with a negative amount, fail validation.
Source Business\SAIF.Business.Claim.ThirdParty\clsThrdpartySettlementDetail.vb

BR-025: Distribution requires payee name, check number, and a valid check date

Field Value
Statement A third-party distribution requires a payee name, a check number, and a valid (non-future, plausible) check date.
Trigger When clsThirdpartyDistribution validates a distribution save.
Enforcement Distribution validation rule cluster clsThirdpartyDistribution01 (reused across payee-name, check-number, and check-date checks) and rule clsThirdpartyDistribution011 enforce these requirements.
Outcome Distributions missing a payee name, check number, or valid check date fail validation.
Confidence Inferred
Source Business\SAIF.Business.Claim.ThirdParty\clsThirdpartyDistribution.vb

BR-026: Distribution check amount is required and must equal the sum of refund, claim-cost, and other amounts, including excess-cash refund total

Field Value
Statement A third-party distribution requires a check amount, and that amount must equal the sum of the refund amount, claim-cost amount, other amount, and any excess-cash refund total.
Trigger When clsThirdpartyDistribution validates a distribution save.
Enforcement Distribution validation rules clsThirdpartyDistribution02, clsThirdpartyDistribution03, and clsThirdpartyDistribution08 reconcile the check amount against its components.
Outcome Distributions whose check amount does not reconcile to the sum of its components fail validation.
Source Business\SAIF.Business.Claim.ThirdParty\clsThirdpartyDistribution.vb

BR-027: Distribution refund/other-amount names are required whenever the corresponding amount is entered

Field Value
Statement Whenever a refund amount or an other-amount is entered on a third-party distribution, the corresponding refund name or other-amount name is required.
Trigger When clsThirdpartyDistribution validates a distribution save with a refund or other amount populated.
Enforcement Distribution validation rules clsThirdpartyDistribution04 through clsThirdpartyDistribution07 check name presence against the corresponding amount.
Outcome Distributions with a refund or other amount but no corresponding name fail validation.
Source Business\SAIF.Business.Claim.ThirdParty\clsThirdpartyDistribution.vb

BR-028: Third-party note requires a category and note text limited to 4000 characters

Field Value
Statement A third-party note requires a note category code and note text, and the note text cannot exceed 4000 characters.
Trigger When clsThirdpartyNote validates a note save.
Enforcement Note validation rules check category-code presence, text presence, and text length against the 4000-character limit.
Outcome Notes missing a category or text, or exceeding the length limit, fail validation.
Source Business\SAIF.Business.Claim.ThirdParty\clsThirdpartyNote.vb

BR-029: Third-party task requires a case, category, assignee, and task text

Field Value
Statement A third-party task requires an owning case, a task code (category), an assigned-to user name, and task text.
Trigger When clsThirdpartyTask validates a task save.
Enforcement Task validation rules clsThirdpartyTask01 through clsThirdpartyTask04 check case linkage, task code, assignee, and text presence.
Outcome Tasks missing any of these required fields fail validation.
Source Business\SAIF.Business.Claim.ThirdParty\clsThirdpartyTask.vb

BR-030: Task due dates falling on a non-work day are automatically shifted to the next work day

Field Value
Statement A third-party task due date that falls on a non-working day triggers a warning that the date will be moved to the next work day.
Trigger When clsThirdpartyTask validates a dirty, non-deleted task save with a due date populated.
Enforcement Task validation rule clsThirdpartyTask06 checks the due date against the working-day calendar and raises a warning-level rule violation.
Outcome Users are alerted that a non-work-day due date will be adjusted.
Confidence Inferred
Source Business\SAIF.Business.Claim.ThirdParty\clsThirdpartyTask.vb

BR-031: Recovery predictions require a valid lien and percent factor, and cannot exceed projected plus lienable-paid amounts or be negative

Field Value
Statement A third-party recovery prediction requires a valid lien sequence number and a percent factor between 0 and 100; when expressed as a flat amount, the prediction cannot exceed the sum of the projected and lienable-paid category totals, and cannot be negative.
Trigger When clsThrdpartyPrediction validates a prediction save.
Enforcement Prediction validation rules clsThrdpartyPrediction01, clsThrdpartyPrediction02, clsThrdpartyPrediction04, and clsThrdpartyPrediction05 check lien linkage, percent-factor range, the projected/lienable-paid ceiling, and the non-negative constraint.
Outcome Predictions failing any of these checks fail validation.
Source Business\SAIF.Business.Claim.ThirdParty\clsThrdpartyPrediction.vb

BR-032: Predictions pending supervisor approval are flagged with a warning, and prediction detail totals must match the prediction amount

Field Value
Statement A final prediction with total incurred greater than zero and a calculated incurred percent below 50% is flagged as pending supervisor approval with a warning; separately, a prediction's detail-category totals must reconcile to the overall prediction amount.
Trigger When clsThrdpartyPrediction validates a final, dirty prediction save.
Enforcement Prediction validation rule clsThrdpartyPrediction03 evaluates the incurred-percent threshold and updates the prediction status code; rule clsThrdpartyPrediction06 (ValidDispersement) reconciles detail totals against the prediction amount.
Outcome Low-incurred-percent final predictions are routed to pending-approval status; predictions whose detail totals do not reconcile fail validation.
Source Business\SAIF.Business.Claim.ThirdParty\clsThrdpartyPrediction.vb

BR-033: Bill-audit service and claim payment transaction detail lien and non-lien amounts must reconcile to the allowed or paid amount

Field Value
Statement A bill-audit service line's lien amount plus non-lien amount must equal its allowed amount; a claim payment transaction detail's lien amount plus non-lien amount plus unknown amount must equal its transaction amount.
Trigger When clsBillAuditService or clsClaimPaymentTransDetail validates a save.
Enforcement clsBillAuditService's ValidTotal rule and clsClaimPaymentTransDetail's ValidTotal rule each reconcile their respective component amounts against the target total.
Outcome Bill-audit service lines or claim payment transaction details whose components do not sum to the target amount fail validation.
Source Business\SAIF.Business.Claim.ThirdParty\clsBillAuditService.vb; Business\SAIF.Business.Claim.ThirdParty\clsClaimPaymentTransDetail.vb

BR-034: New claim adjuster assignment follows a policy match, then claim number range, then conflict override precedence

Field Value
Statement New-claim adjuster assignment first honors a conflict/exposure override (assigning a designated conflict adjuster), then attempts a policy-number match against an assignment list, then falls back to matching the claim number's last two digits against a range list; if no match is found, the last-iterated range entry is used as a default.
Trigger When clsAdjusterAssignment.AssignAdjuster is called during new-claim batch intake.
Enforcement AssignAdjuster evaluates the confidentiality flag, then the policy-assignment list, then the claim-number-range list, in that order, with an unconditional fallback to the last range entry.
Outcome Every processed new claim receives an assigned adjuster and user name, following a deterministic precedence order.
Confidence Inferred
Source Business\SAIF.Business.Claim.ThirdParty\clsAdjusterAssignment.vb

Sources

  • Business\SAIF.Business.Claim.ThirdParty\clsThirdPartyCase.vb
  • Business\SAIF.Business.Claim.ThirdParty\clsThirdPartyConstants.vb
  • Business\SAIF.Business.Claim.ThirdParty\clsThirdpartyDistribution.vb
  • Business\SAIF.Business.Claim.ThirdParty\clsThirdpartyTask.vb
  • Business\SAIF.Business.Claim.ThirdParty\clsThrdparty.vb
  • Business\SAIF.Business.Claim.ThirdParty\clsThrdpartyCompanionClaim.vb
  • Business\SAIF.Business.Claim.ThirdParty\clsThrdPartyFirm.vb
  • Business\SAIF.Business.Claim.ThirdParty\clsThrdpartyExpense.vb
  • Business\SAIF.Business.Claim.ThirdParty\clsThrdpartyExpenseApproval.vb
  • Business\SAIF.Business.Claim.ThirdParty\clsThrdpartyLien.vb
  • Business\SAIF.Business.Claim.ThirdParty\clsThrdpartySettlement.vb
  • Business\SAIF.Business.Claim.ThirdParty\clsThrdpartySettlementDetail.vb
  • Business\SAIF.Business.Claim.ThirdParty\clsThirdpartyNote.vb
  • Business\SAIF.Business.Claim.ThirdParty\clsThrdpartyPrediction.vb
  • Business\SAIF.Business.Claim.ThirdParty\clsBillAuditService.vb
  • Business\SAIF.Business.Claim.ThirdParty\clsClaimPaymentTransDetail.vb
  • Business\SAIF.Business.Claim.ThirdParty\clsAdjusterAssignment.vb