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

# clsClassCoverageBase

MustInherit abstract base for all class coverage types in this library; implements `iClassCoverage` and `iAdjustedRateProvider`; enforces business rules [BR-001](../../../../../business-rules.md#br-001-manual-class-number-is-required), [BR-002](../../../../../business-rules.md#br-002-manual-class-number-must-resolve), [BR-003](../../../../../business-rules.md#br-003-manual-class-usage-code-is-required), [BR-004](../../../../../business-rules.md#br-004-class-and-usage-must-match-rating-period), [BR-005](../../../../../business-rules.md#br-005-employee-and-rate-type-codes-are-required), [BR-006](../../../../../business-rules.md#br-006-fela-classes-are-blocked-on-assigned-risk-periods), [BR-007](../../../../../business-rules.md#br-007-manual-class-type-must-match-the-base-class) covering valid exposure, payroll, and premium field combinations. All concrete class coverage types in this library derive from this class.*

## Purpose
- Defines the shared interface and business rule validation ([BR-001](../../../../../business-rules.md#br-001-manual-class-number-is-required), [BR-002](../../../../../business-rules.md#br-002-manual-class-number-must-resolve), [BR-003](../../../../../business-rules.md#br-003-manual-class-usage-code-is-required), [BR-004](../../../../../business-rules.md#br-004-class-and-usage-must-match-rating-period), [BR-005](../../../../../business-rules.md#br-005-employee-and-rate-type-codes-are-required), [BR-006](../../../../../business-rules.md#br-006-fela-classes-are-blocked-on-assigned-risk-periods), [BR-007](../../../../../business-rules.md#br-007-manual-class-type-must-match-the-base-class)) for all class coverage business objects in this library.*
- Implements `iClassCoverage` and `iAdjustedRateProvider`, providing adjusted-rate computation logic shared by all class coverage subtypes.*

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

## Public members
| Member | Signature | Purpose |
| --- | --- | --- |
| LocationId | `Public Property LocationId() As Decimal` | Identifier used to correlate this row with related premium records.* |
| ClassCoverageId | `Public Property ClassCoverageId() As Decimal` | Identifier used to correlate this row with related premium records.* |
| ManualClassNumber | `Public Overridable Property ManualClassNumber() As String Implements iClassCoverage.ClassCode` | Business value exposed as manual class number for callers of this API.* |
| ManualClassUsageCode | `Public Property ManualClassUsageCode() As String` | Oracle code value used to classify this business object.* |
| ManualClassNumberAndUsageCode | `Public ReadOnly Property ManualClassNumberAndUsageCode() As String` | Oracle code value used to classify this business object.* |
| ClassNumberDisplay | `Public ReadOnly Property ClassNumberDisplay() As String` | Business value exposed as class number display for callers of this API.* |
| ClassNumberDisplayShort | `Public ReadOnly Property ClassNumberDisplayShort() As String` | Business value exposed as class number display short for callers of this API.* |
| RateTypeCode | `Public Property RateTypeCode() As String` | Numeric rate type code value used by this type's rating, billing, or reporting logic.* |
| EmployeeCount | `Public Property EmployeeCount() As Decimal` | The number of employees at this policy location.* |
| EmployeeRatingTypeCode | `Public Property EmployeeRatingTypeCode() As String` | Oracle code value used to classify this business object.* |
| EmployeeRatingType | `Public Property EmployeeRatingType() As clsEmployeeRatingType` | Lookup object that describes the current employee rating type.* |
| PayrollAmount | `Public Property PayrollAmount() As Decimal Implements iClassCoverage.PayrollAmount` | Numeric payroll amount value used by this type's rating, billing, or reporting logic.* |
| ManualClassTypeCode | `Public Property ManualClassTypeCode() As String` | Oracle code value used to classify this business object.* |
| ManualClassType | `Public ReadOnly Property ManualClassType() As clsManualClassType` | Lookup object that describes the current manual class type.* |
| IsManualClassTypeRegular | `Public ReadOnly Property IsManualClassTypeRegular() As Boolean` | Indicates whether manual class type regular applies in this business object.* |
| AffiliateId | `Public Property AffiliateId() As String` | Identifier used to correlate this row with related premium records.* |
| ValidManualClassUsageCodes | `Public ReadOnly Property ValidManualClassUsageCodes() As IEnumerable(Of String)` | Returns the associated valid manual class usage codes used by this type. |
| RateFileSequenceNumber | `Public Overridable ReadOnly Property RateFileSequenceNumber() As Decimal` | Numeric rate file sequence number value used by this type's rating, billing, or reporting logic.* |
| ManualClassBase | `Public ReadOnly Property ManualClassBase() As clsManualClassBase` | Business value exposed as manual class base for callers of this API.* |
| HasManualClassBase | `Public ReadOnly Property HasManualClassBase() As Boolean` | Indicates whether manual class base applies in this business object.* |
| HasManualClassDetail | `Public ReadOnly Property HasManualClassDetail() As Boolean` | Indicates whether manual class detail applies in this business object.* |
| HasManualClassType | `Public ReadOnly Property HasManualClassType() As Boolean` | Indicates whether manual class type applies in this business object.* |
| ManualClassDetail | `Public Overridable ReadOnly Property ManualClassDetail() As clsManualClassDetail` | Business value exposed as manual class detail for callers of this API.* |
| ClaimFrequencyInformation | `Public ReadOnly Property ClaimFrequencyInformation() As iClaimFrequencyInfoProvider Implements iClassCoverage.ClaimFrequencyInformation` | Business value exposed as claim frequency information for callers of this API.* |
| PeriodRatingInfo | `Public Property PeriodRatingInfo() As iPeriodRatingInfo` | Returns the policy-period rating context used to load class coverages and evaluate premium calculations. |
| Description | `Public ReadOnly Property Description() As String` | The human-readable description associated with this record.* |
| BenefitJurisdictionCode | `Public ReadOnly Property BenefitJurisdictionCode() As String` | Oracle code value used to classify this business object.* |
| FullDescription | `Public ReadOnly Property FullDescription() As String` | Human-readable description associated with the current full.* |
| IsClassTypeFELA | `Public ReadOnly Property IsClassTypeFELA() As Boolean` | Indicates whether class type fela applies in this business object.* |
| IsClassTypeRegular | `Public ReadOnly Property IsClassTypeRegular() As Boolean` | Indicates whether class type regular applies in this business object.* |
| IsClassTypeUSLH | `Public ReadOnly Property IsClassTypeUSLH() As Boolean` | Indicates whether class type uslh applies in this business object.* |
| IsClassTypeFederalUSLH | `Public ReadOnly Property IsClassTypeFederalUSLH() As Boolean` | Indicates whether class type federal uslh applies in this business object.* |
| IsClassTypeDisease | `Public ReadOnly Property IsClassTypeDisease() As Boolean` | Indicates whether class type disease applies in this business object.* |
| IsClassTypeMaritime | `Public ReadOnly Property IsClassTypeMaritime() As Boolean` | Indicates whether class type maritime applies in this business object.* |
| ClassParagraph | `Public ReadOnly Property ClassParagraph() As String` | Business value exposed as class paragraph for callers of this API.* |
| IsClassNumAndPayrollEmpty | `Public ReadOnly Property IsClassNumAndPayrollEmpty() As Boolean` | Indicates whether class num and payroll empty applies in this business object.* |
| IsExperienceModifierRatable | `Public Property IsExperienceModifierRatable() As Boolean Implements iAdjustedRateProvider.IsExperienceModifierRatable` | Indicates whether experience modifier ratable applies in this business object.* |
| ManualClassTypeEnum | `Public ReadOnly Property ManualClassTypeEnum() As ManualClassTypes Implements iAdjustedRateProvider.ManualClassType` | Business value exposed as manual class type enum for callers of this API.* |
| iBenefitJurisdiction | `Public ReadOnly Property iBenefitJurisdiction() As BenefitJurisdictions Implements iAdjustedRateProvider.BenefitJurisdiction` | Business value exposed as i benefit jurisdiction for callers of this API.* |
| MarketType | `Public ReadOnly Property MarketType() As Enums.MarketTypes Implements iAdjustedRateProvider.MarketType` | The resolved `MarketTypes` enum value derived from `MarketTypeCode`.* |
| PureRateFactor | `Public Property PureRateFactor() As Decimal Implements iAdjustedRateProvider.PureRateFactor` | Numeric pure rate factor value used by this type's rating, billing, or reporting logic.* |
| ManualClassBaseEvaluationMethod | `Public Property ManualClassBaseEvaluationMethod() As ManualClassBaseEvaluationMethods` | Business value exposed as manual class base evaluation method for callers of this API.* |
| SetAffiliateIdNull | `Public Sub SetAffiliateIdNull()` | Clears `AffiliateId`, marking it as null/unset so the column will be written as NULL on the next save.* |
| IsAffiliateIdNull | `Public Function IsAffiliateIdNull() As Boolean` | Tests whether `AffiliateId` 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.* |
| ToString | `Public Overrides Function ToString() As String` | Returns a string representation of this instance, typically for diagnostics.* |
| IsDuplicate | `Public MustOverride Function IsDuplicate(ByVal inObject As Object) As Boolean` | Executes the is duplicate behavior defined by this type. |
## 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\clsClassCoverageBase.vb`.

## Constraints and usage notes
- Abstract type (MustInherit); callers must use a concrete subtype such as `clsClassCoverage`. Business rules [BR-001](../../../../../business-rules.md#br-001-manual-class-number-is-required), [BR-002](../../../../../business-rules.md#br-002-manual-class-number-must-resolve), [BR-003](../../../../../business-rules.md#br-003-manual-class-usage-code-is-required), [BR-004](../../../../../business-rules.md#br-004-class-and-usage-must-match-rating-period), [BR-005](../../../../../business-rules.md#br-005-employee-and-rate-type-codes-are-required), [BR-006](../../../../../business-rules.md#br-006-fela-classes-are-blocked-on-assigned-risk-periods), [BR-007](../../../../../business-rules.md#br-007-manual-class-type-must-match-the-base-class) must pass for an instance to be valid.*


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