﻿---
title: clsPremiumSet
summary: API reference for clsPremiumSet.
status: draft
owner: Technical Writer
last_reviewed: 2026-07-31
library: SAIF.Business.Policy.Premium
reference_type: package
---

# clsPremiumSet

Aggregate root of the premium history domain; persists to the `PREM_HIST_SUMMARY` Oracle table and implements `IPremiumAmountProvider`. Supports dual-database Oracle routing via the `PremiumSetDatabases` enum and `@POLDB` suffix pattern (Policy vs Enterprise database). All class coverage lines, billing details, and premium summary adjustments are managed through this object.*

## Purpose
- Persists the premium set aggregate (header, class coverage, billing detail, summary adjustments) to `PREM_HIST_SUMMARY` and implements `IPremiumAmountProvider` for premium amount computation.*
- Orchestrates dual-database Oracle routing via `PremiumSetDatabases` (`@POLDB` suffix) and coordinates child collection persistence across class coverage, billing detail, and summary adjustment entities.*

## Context
- Namespace: `SAIF.Business.Policy.Premium`
- Assembly/package: `SAIF.Business.Policy.Premium`

## Public members
| Member | Signature | Purpose |
| --- | --- | --- |
| PolicyNumber | `Public ReadOnly Property PolicyNumber() As Decimal` | The numeric policy number identifying the policy to which this record belongs. |
| PolicyPeriodEffectiveDate | `Public ReadOnly Property PolicyPeriodEffectiveDate() As Date` | The effective date of the policy period to which this rating plan applies. |
| PremiumSetID | `Public Property PremiumSetID() As Decimal` | Primary key used to load, compare, and join this premium set with child coverage, adjustment, and billing records. |
| IsBilled | `Public ReadOnly Property IsBilled() As Boolean` | Indicates whether billing detail rows have been generated for this premium set.* |
| PremiumSetTypeCode | `Public ReadOnly Property PremiumSetTypeCode() As String` | Stores the Oracle code that classifies the premium set type for downstream rating and reporting.* |
| CreateUser | `Public ReadOnly Property CreateUser() As String` | The username of the account that created this record. |
| CreateDate | `Public ReadOnly Property CreateDate() As Date` | The timestamp at which this record was created in the Oracle database. |
| IsInterimPremiumEndorsed | `Public ReadOnly Property IsInterimPremiumEndorsed() As Boolean` | Indicates whether interim premium endorsed applies in this business object.* |
| PolicyStatutoryTransactionProcessDate | `Public ReadOnly Property PolicyStatutoryTransactionProcessDate() As Date` | Records the policy statutory transaction process date stored for this row.* |
| UpdateDate | `Public ReadOnly Property UpdateDate() As Date` | The timestamp of the most recent update to this record.* |
| UpdateUser | `Public ReadOnly Property UpdateUser() As String` | The username of the account that last modified this record.* |
| CombinationPeriodPremiumSetSequenceNumber | `Public ReadOnly Property CombinationPeriodPremiumSetSequenceNumber() As Decimal` | Numeric combination period premium set sequence number value used by this type's rating, billing, or reporting logic.* |
| IsCombination | `Public ReadOnly Property IsCombination() As Boolean` | Indicates whether combination applies in this business object.* |
| IsEstimated | `Public Property IsEstimated() As Boolean` | Indicates whether estimated applies in this business object.* |
| PeriodRatingInfo | `Public ReadOnly Property PeriodRatingInfo() As iPeriodRatingInfo` | Returns the policy-period rating context used to load class coverages and evaluate premium calculations. |
| ClassCoverages | `Public ReadOnly Property ClassCoverages() As clsClassCoverageCollection` | Returns the class coverage lines attached to this premium set, loading them on first access. |
| PolicyPeriodRateAdjustments | `Public ReadOnly Property PolicyPeriodRateAdjustments() As clsPolicyPeriodRateAdjustmentCollection` | Returns the policy-period rate adjustments attached to this premium set, loading them on first access. |
| ClassCoverageRateAdjustments | `Public ReadOnly Property ClassCoverageRateAdjustments() As IEnumerable(Of clsClassCoverageRateAdjustment)` | Returns a flattened view of all class-coverage-level rate adjustments in the premium set. |
| ReportingPeriodRateAdjustments | `Public Property ReportingPeriodRateAdjustments() As clsReportingPeriodRateAdjustmentCollection` | Returns the reporting-period adjustments associated with this premium set, loading them on first access. |
| PremiumSummaryAdjustments | `Public ReadOnly Property PremiumSummaryAdjustments() As clsPremiumSummaryAdjustmentCollection` | Returns the persisted premium summary adjustment lines for this premium set, loading them on first access. |
| NonSubTotalPremiumSummaryAdjustments | `Public ReadOnly Property NonSubTotalPremiumSummaryAdjustments() As IEnumerable(Of iPremiumSummaryAdjustment) Implements IPremiumAmountProvider.NonSubTotalPremiumSummaryAdjustments` | Exposes the premium summary adjustments as the non-subtotal sequence consumed by `IPremiumAmountProvider`. |
| SubTotalPremiumSummaryAdjustments | `Public ReadOnly Property SubTotalPremiumSummaryAdjustments() As IEnumerable(Of PremiumSummaryAdjustmentSubTotalList.SubTotalPremiumSummaryAdjustment) Implements IPremiumAmountProvider.SubTotalPremiumSummaryAdjustments` | Returns the computed subtotal adjustment rows derived from this premium set's premium summary adjustments. |
| IsSubtotalPremiumSummaryAdjustmentsLoaded | `Public ReadOnly Property IsSubtotalPremiumSummaryAdjustmentsLoaded As Boolean` | Indicates whether subtotal adjustment rows have already been computed for this premium set. |
| PolicyDocumentPremiumSetSummaries | `Public ReadOnly Property PolicyDocumentPremiumSetSummaries() As clsPremiumSummaryAdjustmentCollection` | Returns the premium summary rows prepared for policy-document display. |
| PolicyDocumentRatingPeriods | `Public ReadOnly Property PolicyDocumentRatingPeriods() As Reporting.clsPremiumRatingPeriodList` | Returns the rating-period rows prepared for policy-document display. |
| PolicyDocumentLaterAdjustments | `Public ReadOnly Property PolicyDocumentLaterAdjustments() As Reporting.clsPremiumAdjustmentCollection` | Returns later premium adjustments prepared for policy-document display. |
| EstimatedAdjustedRateSetFactor | `Public ReadOnly Property EstimatedAdjustedRateSetFactor() As Decimal` | Numeric estimated adjusted rate set factor value used by this type's rating, billing, or reporting logic.* |
| IsMostRecent | `Public ReadOnly Property IsMostRecent() As Boolean` | Indicates whether most recent applies in this business object.* |
| PremiumSetType | `Public ReadOnly Property PremiumSetType() As clsPremiumSetType` | Returns the lookup row that describes the current premium set type code. |
| NonRatedPremiumAmount | `Public ReadOnly Property NonRatedPremiumAmount() As Decimal` | Numeric non rated premium amount value used by this type's rating, billing, or reporting logic.* |
| RetroStandardPremiumAmount | `Public ReadOnly Property RetroStandardPremiumAmount() As Decimal Implements IPremiumAmountProvider.RetroStandardPremiumAmount` | Numeric retro standard premium amount value used by this type's rating, billing, or reporting logic.* |
| RecalcManualPremiumOnSpecificTier | `Public ReadOnly Property RecalcManualPremiumOnSpecificTier As Decimal` | Numeric recalc manual premium on specific tier value used by this type's rating, billing, or reporting logic.* |
| HasFederalClass | `Public ReadOnly Property HasFederalClass(ByVal inIncludeMaritimeAndFELA As Boolean) As Boolean` | Indicates whether federal class applies in this business object.* |
| HasFederalPremium | `Public ReadOnly Property HasFederalPremium(ByVal inIncludeMaritimeAndFELA As Boolean) As Boolean` | Indicates whether federal premium applies in this business object.* |
| FederalStandardPremiumAmount | `Public ReadOnly Property FederalStandardPremiumAmount() As Decimal Implements IPremiumAmountProvider.FederalStandardPremiumAmount` | Numeric federal standard premium amount value used by this type's rating, billing, or reporting logic.* |
| IsValid | `Public Overrides ReadOnly Property IsValid() As Boolean` | Returns True when all registered business rules pass; delegates to the framework rule engine. |
| IsDirty | `Public Overrides ReadOnly Property IsDirty() As Boolean` | Returns True when one or more tracked properties have been modified since the last save or MarkOld() call. |
| Save | `Public Overrides Function Save() As Boolean` | Persists this instance and all child objects to Oracle through the BOF data portal; returns True on success. |
| SaveChild | `Public Overrides Function SaveChild() As Boolean` | Persists this instance as a child entity within a parent save transaction. |
| SaveChildren | `Public Function SaveChildren() As Boolean` | Iterates each child collection and persists all dirty child items. |
| GetDCBSSplits | `Public Shared Function GetDCBSSplits(ByVal inDPI As IDataPortalInfo, ByVal inPremiumSetID As Decimal, Optional ByVal inPremiumSetDatabase As PremiumSetDatabases = PremiumSetDatabases.Enterprise) As Decimal` | Retrieves the DCBS split value associated with the specified premium set.* |
| GetRecalcModifiedPremiumOnSpecifiedTier | `Public Shared Function GetRecalcModifiedPremiumOnSpecifiedTier(ByVal inDpi As IDataPortalInfo, ByVal inPolicyNumber As Decimal, ByVal inPolicyEffDate As Date, inPremiumSetID As Decimal, Optional ByVal inTier As String = "E", Optional ByVal inPremiumSetDatabase As PremiumSetDatabases = PremiumSetDatabases.Enterprise) As Decimal` | Calculates the modified premium for the specified policy, premium set, and tier.* |
| GetNextPremiumHistSummarySeq | `Public Shared Function GetNextPremiumHistSummarySeq(ByVal inDpi As IDataPortalInfo, Optional ByVal inPremiumSetDatabase As PremiumSetDatabases = PremiumSetDatabases.Enterprise) As Decimal` | Retrieves the next Oracle sequence value used when creating a new cls premium set row. |
| IsPolicyStatutoryTransactionProcessDateNull | `Public Function IsPolicyStatutoryTransactionProcessDateNull() As Boolean` | Tests whether `PolicyStatutoryTransactionProcessDate` is null/unset in the backing Oracle column; returns True when the value has not been populated.* |
| IsUpdateDateNull | `Public Function IsUpdateDateNull() As Boolean` | Tests whether `UpdateDate` is null/unset in the backing Oracle column; returns True when the value has not been populated.* |
| IsUpdateUserNull | `Public Function IsUpdateUserNull() As Boolean` | Tests whether `UpdateUser` is null/unset in the backing Oracle column; returns True when the value has not been populated.* |
| IsCombinationPeriodPremiumSetSequenceNumberNull | `Public Function IsCombinationPeriodPremiumSetSequenceNumberNull() As Boolean` | Tests whether `CombinationPeriodPremiumSetSequenceNumber` is null/unset in the backing Oracle column; returns True when the value has not been populated.* |
| Equals | `Public Overloads Shared Function Equals(ByVal objA As Object, ByVal objB As Object) As Boolean` | Static overload: compares two Object references for equality using value-equality semantics.* |
| Equals | `Public Overloads Overrides Function Equals(ByVal inObject As Object) As Boolean` | Compares this instance with another `Object` instance for value equality.* |
| Equals | `Public Overloads Function Equals(ByVal inObject As clsPremiumSet) As Boolean` | Compares this instance with another `clsPremiumSet` instance for value equality.* |
| Equals | `Public Overloads Function Equals(ByVal inPremiumSetId As Decimal) As Boolean` | Compares this instance with another instance of the same type for value equality.* |
| GetHashCode | `Public Overrides Function GetHashCode() As Integer` | Returns a hash code consistent with the value-equality implementation. |
| ToString | `Public Overrides Function ToString() As String` | Returns a string representation of this instance, typically for diagnostics.* |
| GetMostRecentPremiumSet | `Public Shared Function GetMostRecentPremiumSet(ByVal inDataportal As IDataPortalInfo, ByVal inPolicyNumber As Decimal, ByVal inPolicyPeriodEffectiveDate As Date, ByRef inPeriodRatingInfo As iPeriodRatingInfo, Optional ByVal inPremiumSetDatabase As PremiumSetDatabases = PremiumSetDatabases.Enterprise) As clsPremiumSet` | Loads the most recent cls premium set that matches the supplied lookup criteria. |
| GetMostRecentPremiumSet | `Public Shared Function GetMostRecentPremiumSet(ByVal inDataportal As IDataPortalInfo, ByVal inPolicyNumber As Decimal, ByVal inPolicyPeriodEffectiveDate As Date, Optional ByVal inPremiumSetDatabase As PremiumSetDatabases = PremiumSetDatabases.Enterprise) As clsPremiumSet` | Loads the most recent cls premium set that matches the supplied lookup criteria. |
| GetPremiumSet | `Public Shared Function GetPremiumSet(ByVal inDataportal As IDataPortalInfo, ByVal inPremiumSetID As Decimal, ByRef inPeriodRatingInfo As iPeriodRatingInfo, Optional ByVal inPremiumSetDatabase As PremiumSetDatabases = PremiumSetDatabases.Enterprise) As clsPremiumSet` | Loads a cls premium set that matches the supplied lookup criteria. |
| GetPremiumSet | `Public Shared Function GetPremiumSet(ByVal inDataportal As IDataPortalInfo, ByVal inPremiumSetID As Decimal, Optional ByVal inPremiumSetDatabase As PremiumSetDatabases = PremiumSetDatabases.Enterprise) As clsPremiumSet` | Loads a cls premium set that matches the supplied lookup criteria. |
| NewNegativePremiumSet | `Public Shared Function NewNegativePremiumSet(ByVal inPremiumSet As clsPremiumSet) As clsPremiumSet` | Creates a new cls premium set initialized from the supplied source values.* |
| NewNegativePremiumSet | `Public Shared Function NewNegativePremiumSet(ByVal inPremiumSet As clsPremiumSet, ByVal inComboPremiumSetId As Decimal) As clsPremiumSet` | Creates a new cls premium set initialized from the supplied source values.* |
## Inherited public members

| Member | Signature | Purpose | Origin |
| --- | --- | --- | --- |
| Rules | `Property Rules As clsRulesManager` | Framework rules manager used to register, evaluate, and surface broken rules on the object.† | `SAIF.Framework.Core — clsBusinessBase` |
| BeginEdit | `Sub BeginEdit()` | Starts an n-level edit session so callers can stage changes.† | `SAIF.Framework.Core — clsBusinessBase` |
| CancelEdit | `Sub CancelEdit()` | Rolls back the active edit session.† | `SAIF.Framework.Core — clsBusinessBase` |
| ApplyEdit | `Sub ApplyEdit()` | Commits the active edit session.† | `SAIF.Framework.Core — clsBusinessBase` |

## Behavioral notes
- Source file: `Business\SAIF.Business.Policy.Premium\clsPremiumSet.vb`.

## Constraints and usage notes
- Dual-database routing (Policy vs Enterprise) is controlled by the `PremiumSetDatabases` property; the `@POLDB` suffix is appended to Oracle links accordingly. All adjustments sharing the same `RatingRuleMasterId` must use the same rule ([BR-013](../../../../../business-rules.md#br-013-subtotals-must-use-one-rating-rule-master)). `IPremiumAmountProvider.PremiumAmount()` sums `DifferenceAmount` except for NEAP types, which use `BaseAmount` ([BR-016](../../../../../business-rules.md#br-016-neap-uses-base-amounts-instead-of-difference-amounts)). Discount = Discounted minus Standard ([BR-017](../../../../../business-rules.md#br-017-discount-equals-discounted-minus-standard-premium)).*


> **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.Premium\clsPremiumSet.vb`