A hazard group is returned only when the requested effective date falls on/after its EFFECTIVE_DATE and before its EXPIRATION_DATE; a missing expiration date is treated as open-ended (NVL(H.EXPIRATION_DATE, :EffectiveDate + 1)).
Hazard group data is read-only: the collection forbids edit and remove, is never savable, and every non-retrieve SQL property raises ApplicationException(clsConstants.Messages.InvalidSQLProperty).
Trigger
Any attempt to create/update/delete a hazard group
Enforcement
clsHazardGroupCollection.New, .IsSavable; Criteria.CreateSQL/InsertSQL/UpdateSQL/DeleteSQL in both clsHazardGroup.vb and clsHazardGroupCollection.vb
Outcome
Persistence attempts fail fast; the library is query-only for this entity.
A policy period's information page counts as printed only when a P401 endorsement exists for that policy/period with a non-null printed_date and the returned policy number matches the requested one.
The current premium history set is the highest prem_hist_set_id for the policy/period restricted to premium history types '1' and '3'; when none exists the result is 0.
Trigger
PolicyInformation.MaxPremiumHistorySetId
Enforcement
PolicyInformation.MaxPremiumHistorySetId
Outcome
A safe 0 sentinel instead of a null-reference failure.
Minimum premium is whatever pk73069_rating_procs.get_minimum_expense_constant returns; if the call fails or returns nothing, minimum premium is 0 and the failure is not surfaced.*
Period expiration date and anniversary rating date must be resolved across both WCIS and non-WCIS period stores (POLICY_PERIODUNIONPOLICY_PERIOD_NON_WCIS).
Two rating periods are equal only when anniversary rating date, rating effective date, ARD-extended flag, RED-extended flag, effective date, expiration date, rate tier code and market type all match.
Trigger
BaseEquals / BaseGetHashCode
Enforcement
PeriodRatingInfoExtensions.BaseEquals
Outcome
Uniform rating-period comparison semantics across implementers.
Source
SAIF.Business.Policy/iPeriodRatingInfo.vb
BR-POL-019 Association type visibility declaration¶
Field
Value
Statement
Association types expose the name of the Active Directory group that gates their visibility, and the stored procedure that sources their policy set.
Trigger
Implementation of IPolicyAssociationType by a consuming library
Rules sourced from Oracle stored procedures referenced by this library.
Rule ID
Rule
Source
Link
PR-BP-001
Minimum-premium calculation is routed by market type: voluntary business uses the VOL minimum-premium rules; all other market types use the ARP (assigned-risk) minimum/expense-constant calculation.
A voluntary policy that belongs to a combination (combo) period has its minimum premium calculated at the combination level rather than the individual policy level.
Voluntary policy periods effective before 01-Apr-2010 receive a fixed minimum premium of 500; on or after that date the minimum is variable and derived from rating data.
pk73069_rating_procs.get_vol_policy_minimum (reached via get_minimum_expense_constant)
From 01-Jan-2014 onward the voluntary minimum is calculated identically regardless of premium-history set type; before that date, set type '1' is treated differently from all other set types.
pk73069_rating_procs.get_vol_policy_minimum (reached via get_minimum_expense_constant)
Any unhandled failure in minimum/expense-constant calculation is converted into an application error by the central error handler; it is not silently ignored at the database layer.
WCIS ownership of a policy submission is determined by the wcis_owns_flag on the submission-status code currently assigned to the policy's sub-policy record.
No cross-repository consumer was found for most types in this library other than the policy-association contract family, consumed by SAIF.Business.View.Policy.*
Both stored procedures referenced by BR-POL-005 and BR-POL-008 (pk73102_policy.does_wcis_own_submission, pk73069_rating_procs.get_minimum_expense_constant) were retrieved successfully via the Legends CLI; see Stored procedure business rules below and their detail pages for the additional rules extracted from their PL/SQL bodies.
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.