---
title: clsManualClassBase
summary: API reference for clsManualClassBase.
status: draft
owner: Technical Writer
last_reviewed: 2026-07-31
library: SAIF.Business.Policy.Rating
reference_type: package
---
# clsManualClassBase
Represents the published, rate-file-scoped attributes of a manual class. The class anchors the library's manual-class retrieval path and exposes the derived helpers that rating callers use.
## Purpose
- Represents the published, rate-file-scoped attributes of a manual class.
- The class anchors the library's manual-class retrieval path and exposes the derived helpers that rating callers use.
## Context
- Namespace: `SAIF.Business.Policy.Rating`
- Assembly/package: `SAIF.Business.Policy.Rating`
## Public members
| Member | Signature | Purpose |
| --- | --- | --- |
| TimeLossFrequency | `Public ReadOnly Property TimeLossFrequency() As Decimal Implements iClaimFrequencyInfoProvider.TimeLossFrequency` | Stored time-loss claim frequency for this manual class, exposed through `iClaimFrequencyInfoProvider`. |
| ClaimFrequency | `Public ReadOnly Property ClaimFrequency() As Decimal Implements iClaimFrequencyInfoProvider.ClaimFrequency` | Stored overall claim frequency for this manual class, exposed through `iClaimFrequencyInfoProvider`. |
| TimeLossFrequencyFactor | `Public Property TimeLossFrequencyFactor() As Decimal` | Exposes the stored time-loss frequency value through the factor-style member name used by downstream callers. |
| ClaimFrequencyFactor | `Public Property ClaimFrequencyFactor() As Decimal` | Exposes the stored overall claim-frequency value through the factor-style member name used by downstream callers. |
| BenefitJurisdictionCode | `Public Property BenefitJurisdictionCode() As String` | Persisted jurisdiction code used to map the class to benefit-jurisdiction behavior. |
| BenefitJurisdiction | `Public Property BenefitJurisdiction() As BenefitJurisdictions` | Enum view of `BenefitJurisdictionCode` resolved through the shared code-map lookup. |
| iBenefitJurisdiction | `Public ReadOnly Property iBenefitJurisdiction() As BenefitJurisdictions Implements iAdjustedRateProvider.BenefitJurisdiction` | Read-only adjusted-rate-provider projection of this class benefit jurisdiction. |
| CreateDate | `Public ReadOnly Property CreateDate() As Date` | Audit timestamp when the manual class base row was created. |
| CreateUser | `Public ReadOnly Property CreateUser() As String` | Audit user who created the manual class base row. |
| Description | `Public Property Description() As String` | Published manual class description text attached to this rate-file row. |
| DiseaseRatio | `Public ReadOnly Property DiseaseRatio() As Decimal` | Disease-ratio value loaded for this manual class row. |
| EffectiveDate | `Public Property EffectiveDate() As Date` | First date on which this rate-file manual class row is effective. |
| ExpirationDate | `Public Property ExpirationDate() As Date` | Optional end date after which this rate-file manual class row no longer applies. |
| ExposureBaseCode | `Public Property ExposureBaseCode() As String` | Exposure-base code carried on the manual class row. |
| HazardGroup | `Public Property HazardGroup() As String` | Hazard-group code carried on the manual class row. |
| IndustryGroupCode | `Public Property IndustryGroupCode() As String` | Industry-group code carried on the manual class row. |
| LossConstant | `Public Property LossConstant() As Decimal` | Loss constant published with this manual class in the rate file. |
| IsAuditAdditionalClass | `Public Property IsAuditAdditionalClass() As Boolean` | Whether the row is flagged as an audit-only additional class in its backing `Y`/`N` field. |
| IsConstruction | `Public Property IsConstruction() As Boolean` | Whether the row is flagged as a construction class in the rate file. |
| IsExperienceModifierRatable | `Public Property IsExperienceModifierRatable() As Boolean Implements iAdjustedRateProvider.IsExperienceModifierRatable` | Whether this class participates in experience-modifier rating when used as an adjusted-rate provider. |
| MarketType | `Public ReadOnly Property MarketType() As Enums.MarketTypes Implements iAdjustedRateProvider.MarketType` | Market type taken from the attached `PeriodRatingInfo`. |
| ManualClassTypeEnum | `Public ReadOnly Property ManualClassTypeEnum() As ManualClassTypes Implements iAdjustedRateProvider.ManualClassType` | Enum classification resolved from the referenced manual-class-type row. |
| IsNonRateableElement | `Public Property IsNonRateableElement() As Boolean` | Whether the class is flagged as a non-rateable element. |
| IsPayIncludedInAnotherClass | `Public Property IsPayIncludedInAnotherClass() As Boolean` | Whether payroll for this class is included in another class. |
| HasManualClassDetail | `Public ReadOnly Property HasManualClassDetail() As Boolean` | Whether a detail row can be resolved for this manual class number. |
| IsDefaultClass | `Public ReadOnly Property IsDefaultClass() As Boolean` | Whether this row matches the manual class default usage code from `ManualClassDetail`. |
| IsMunicipalClass | `Public ReadOnly Property IsMunicipalClass() As Boolean` | Whether the related manual-class-detail row flags this class as municipal. |
| ManualClassDetails | `Public Shared ReadOnly Property ManualClassDetails(ByVal inDPI As IDataPortalInfo) As clsManualClassDetailCollection` | Shared cached lookup of all manual class detail rows, loaded on first use. |
| ManualClassDetail | `Public ReadOnly Property ManualClassDetail() As clsManualClassDetail` | Manual-class-detail row resolved for this record four-digit manual class number. |
| ManualClassNumber | `Public ReadOnly Property ManualClassNumber() As String` | First four characters of `ManualClassNumberAndUsageCode`; the base manual class number. |
| ManualClassNumberAndUsageCode | `Public Property ManualClassNumberAndUsageCode() As String` | Manual-class-and-usage retrieval key used by the criteria object. |
| ManualClassTypeCode | `Public Property ManualClassTypeCode() As String` | Persisted manual-class-type code used to resolve class-type behavior flags. |
| ManualClassType | `Public ReadOnly Property ManualClassType() As clsManualClassType` | Manual-class-type lookup row resolved from `ManualClassTypeCode`. |
| ManualClassTypes | `Public ReadOnly Property ManualClassTypes() As clsManualClassTypeCollection` | Shared lookup collection of all manual-class-type codes, loaded on first use. |
| MinimumPremium | `Public Property MinimumPremium() As Decimal` | Minimum premium published with this manual class in the rate file. |
| NCCILossCost | `Public Property NCCILossCost() As Decimal` | NCCI loss cost from which `PureRateFactor` is derived by dividing by 100. |
| PeriodRatingInfo | `Public Property PeriodRatingInfo() As iPeriodRatingInfo` | Policy-period rating context used to derive market type, class paragraphs, and associated-class retrieval. |
| RateFileSeqNum | `Public ReadOnly Property RateFileSeqNum() As Decimal` | Sequence number of the rate file that published this manual class row. |
| RateTypeCode | `Public Property RateTypeCode() As String` | Rate-type code carried on the manual class row. |
| ReplacementManualClassNumberAndUsageCode | `Public Property ReplacementManualClassNumberAndUsageCode() As String` | Replacement class and usage key recorded for reclassified manual classes. |
| StatCredibility | `Public Property StatCredibility() As Decimal` | Statistical credibility value stored on the manual class row. |
| UnadjustedRate | `Public Property UnadjustedRate() As Decimal` | Raw manual class rate before tier, USL&HW, and other factor composition. |
| PureRateFactor | `Public Property PureRateFactor() As Decimal Implements iAdjustedRateProvider.PureRateFactor` | Calculates the pure rate factor by dividing `NCCILossCost` by 100 before base-rate composition begins. |
| UpdateDate | `Public ReadOnly Property UpdateDate() As Date` | Audit timestamp from the most recent update to the manual class row. |
| UpdateUser | `Public ReadOnly Property UpdateUser() As String` | Audit user from the most recent update to the manual class row. |
| UsageCode | `Public ReadOnly Property UsageCode() As String` | Characters five and six of `ManualClassNumberAndUsageCode`; the class-usage suffix. |
| IsAssociateManualClassBase | `Public ReadOnly Property IsAssociateManualClassBase() As Boolean` | Whether this row is an associated-class record linked back to a parent manual class. |
| ParentManualClassNumber | `Public ReadOnly Property ParentManualClassNumber() As String` | Parent manual class number recorded for an associated-class row. |
| AssociatedManualClassBases | `Public ReadOnly Property AssociatedManualClassBases() As clsManualClassBaseCollection` | Lazy-loaded associated manual classes for the current class and period context; empty when no period context is available or this row is itself associated. |
| ClassParagraph | `Public ReadOnly Property ClassParagraph() As String` | Lazily resolved class-description paragraph for this class, effective date, and market type; returns `Unavailable` when no paragraph is found. |
| IsClassTypeFELA | `Public ReadOnly Property IsClassTypeFELA() As Boolean` | Whether the resolved manual class type is flagged as FELA. |
| HasManualClassType | `Public ReadOnly Property HasManualClassType() As Boolean` | Whether `ManualClassTypeCode` resolves to a manual-class-type row. |
| IsClassTypeRegular | `Public ReadOnly Property IsClassTypeRegular() As Boolean` | Whether the resolved manual class type is flagged as regular. |
| IsClassTypeUSLH | `Public ReadOnly Property IsClassTypeUSLH() As Boolean` | Whether the resolved manual class type is flagged as USLH. |
| IsClassTypeFederalUSLH | `Public ReadOnly Property IsClassTypeFederalUSLH() As Boolean` | Whether the resolved manual class type is flagged as federal USLH. |
| IsClassTypeDisease | `Public ReadOnly Property IsClassTypeDisease() As Boolean` | Whether the resolved manual class type is flagged as disease. |
| IsClassTypeMaritime | `Public ReadOnly Property IsClassTypeMaritime() As Boolean` | Whether the resolved manual class type is flagged as maritime. |
| GetClassParagraph | `Public Shared Function GetClassParagraph(ByRef inDPI As IDataPortalInfo, ByVal ManualClassNumberAndUsageCode As String, ByVal inParagraphEffectiveDate As Date, ByVal inMarketType As Policy.Enums.MarketTypes) As String` | Returns the class-description paragraph text in force for the supplied manual class, paragraph date, and market type. |
| IsCreateDateNull | `Public Function IsCreateDateNull() As Boolean` | Reports whether no create timestamp has been recorded, using `Date.MinValue` as the sentinel. |
| IsDescriptionNull | `Public Function IsDescriptionNull() As Boolean` | Reports whether the manual class description text is blank. |
| IsDiseaseRatioNull | `Public Function IsDiseaseRatioNull() As Boolean` | Reports whether the disease-ratio field is currently stored as zero, which this object treats as unset. |
| IsExpirationDateNull | `Public Function IsExpirationDateNull() As Boolean` | Reports whether the manual class row has no expiration date. |
| IsExposureBaseCodeNull | `Public Function IsExposureBaseCodeNull() As Boolean` | Reports whether the exposure-base code is blank. |
| IsHazardGroupNull | `Public Function IsHazardGroupNull() As Boolean` | Reports whether the hazard-group code is blank. |
| IsIndustryGroupCodeNull | `Public Function IsIndustryGroupCodeNull() As Boolean` | Reports whether the industry-group code is blank. |
| IsLossConstantNull | `Public Function IsLossConstantNull() As Boolean` | Reports whether the loss-constant field is currently stored as zero, which this object treats as unset. |
| IsManualClassTypeCodeNull | `Public Function IsManualClassTypeCodeNull() As Boolean` | Reports whether the manual-class-type code is blank. |
| IsMinimumPremiumNull | `Public Function IsMinimumPremiumNull() As Boolean` | Reports whether the minimum-premium field is currently stored as zero, which this object treats as unset. |
| IsNCCILossCostNull | `Public Function IsNCCILossCostNull() As Boolean` | Reports whether the NCCI loss-cost field is currently stored as zero, which this object treats as unset. |
| IsRateTypeCodeNull | `Public Function IsRateTypeCodeNull() As Boolean` | Reports whether the rate-type code is blank. |
| IsReplacementManualClassNumberNull | `Public Function IsReplacementManualClassNumberNull() As Boolean` | Reports whether no replacement manual class and usage key has been recorded. |
| IsUnadjustedRateNull | `Public Function IsUnadjustedRateNull() As Boolean` | Reports whether the raw manual class rate is currently stored as zero, which this object treats as unset. |
| IsUpdateDateNull | `Public Function IsUpdateDateNull() As Boolean` | Reports whether no update timestamp has been recorded, using `Date.MinValue` as the sentinel. |
| IsUpdateUserNull | `Public Function IsUpdateUserNull() As Boolean` | Reports whether no update user has been recorded. |
| Equals | `Public Overloads Shared Function Equals(ByVal objA As Object, ByVal objB As Object) As Boolean` | Returns `True` only when both arguments are manual-class-base rows with the same rate-file sequence number and class/usage key. |
| Equals | `Public Overloads Overrides Function Equals(ByVal inObject As Object) As Boolean` | Returns `True` when the supplied object is a manual-class-base row with the same rate-file sequence number and class/usage key. |
| Equals | `Public Overloads Function Equals(ByVal inObject As clsManualClassBase) As Boolean` | Treats two manual-class-base rows as equal when rate-file sequence number and class/usage key match. |
| GetHashCode | `Public Overrides Function GetHashCode() As Integer` | Hashes `RateFileSeqNum`, the value this type uses as its identity key in keyed collections. |
| ToString | `Public Overrides Function ToString() As String` | Formats the row identifier as the rate-file sequence number followed by the class and usage key. |
| NewManualClassBase | `Public Shared Function NewManualClassBase(ByVal inDataportal As IDataPortalInfo, ByVal inRateFileSeqNum As Decimal, ByVal inManualClassNum As String) As clsManualClassBase` | Creates a new editable manual-class-base row for the supplied rate file and manual class key. |
| GetManualClassBase | `Public Shared Function GetManualClassBase(ByVal inDataportal As IDataPortalInfo, ByVal inRateFileSeqNum As Decimal, ByVal inManualClassNumberAndUsageCode As String, Optional ByVal inPeriodRatingInfo As iPeriodRatingInfo = Nothing) As clsManualClassBase` | Retrieves the published, rate-file-scoped attributes of a manual class identified by the key values or effective-date criteria supplied by the caller. |
| GetManualClassBase | `Public Shared Function GetManualClassBase(ByVal inDataportal As IDataPortalInfo, ByVal inRateFileSeqNum As Decimal, ByVal inManualClassNumber As String, ByVal inUsageCode As String, ByVal inPeriodRatingInfo As iPeriodRatingInfo) As clsManualClassBase` | Retrieves the published, rate-file-scoped attributes of a manual class identified by the key values or effective-date criteria supplied by the caller. |
| GetManualClassBaseKey | `Public Shared Sub GetManualClassBaseKey(ByVal inDataportal As IDataPortalInfo, ByVal inPeriodRatingInfo As iPeriodRatingInfo, ByVal inClassEffectiveDate As Date, ByRef inoutManualClassNumberAndUsageCode As String, ByRef outRateFileSeqNum As Decimal)` | Calls `pk73059_prem_hist_summary.sp62005_retrieve_rate` to resolve the applicable rate-file sequence number and replacement class number for the request. |
| GetManualClassBase | `Public Shared Function GetManualClassBase(ByVal inDataportal As IDataPortalInfo, ByVal inPeriodRatingInfo As iPeriodRatingInfo, ByVal inManualClassNumberAndUsageCode As String, ByVal inClassEffectiveDate As Date) As clsManualClassBase` | Retrieves the published, rate-file-scoped attributes of a manual class identified by the key values or effective-date criteria supplied by the caller. |
| GetManualClassBase | `Public Shared Function GetManualClassBase(ByVal inDataportal As IDataPortalInfo, ByVal inPeriodRatingInfo As iPeriodRatingInfo, ByVal inManualClassNumber As String, ByVal inUsageCode As String, ByVal inClassEffectiveDate As Date) As clsManualClassBase` | Retrieves the published, rate-file-scoped attributes of a manual class identified by the key values or effective-date criteria supplied by the caller. |
| GetDefaultManualClassBase | `Public Shared Function GetDefaultManualClassBase(ByVal inDataportal As IDataPortalInfo, ByVal inPeriodRatingInfo As iPeriodRatingInfo, ByVal inManualClassNumber As String, ByVal inClassEffectiveDate As Date) As clsManualClassBase` | Retrieves the default-usage manual-class row for the supplied class and rating context. |
| CanDeleteManualClassBaseRecord | `Public Shared Function CanDeleteManualClassBaseRecord(ByVal inDataPortalInfo As IDataPortalInfo, ByVal inManualClass As String, ByVal inWCISRateFileSeqNum As Decimal) As Boolean` | Runs the library's pre-delete reference check before allowing the corresponding row to be removed. |
| RateFileSeqNum | `Public Property RateFileSeqNum() As Decimal` | Rate-file sequence-number retrieval key used by the criteria object. |
| ManualClassNumberAndUsageCode | `Public Property ManualClassNumberAndUsageCode() As String` | Manual-class-and-usage retrieval key used by the criteria object. |
| New | `Public Sub New(ByVal inDataPortalInfo As IDataPortalInfo)` | Creates an empty BOF object shell that shared factory methods or retrieval logic can populate with a loaded row. |
| New | `Public Sub New(ByVal inDataPortalInfo As IDataPortalInfo, ByVal inRateFileSeqNum As Decimal, ByVal inManualClassNumberAndUsageCode As String)` | Creates a criteria-backed instance seeded with `inRateFileSeqNum`, `inManualClassNumberAndUsageCode` so the next retrieval runs in the caller's requested context. |
## Inherited public members
| Member | Signature | Purpose | Origin |
| --- | --- | --- | --- |
| Rules | `Property Rules As clsRulesManager` | Owns the BOF rules manager used to evaluate registered validation logic.† | `SAIF.Framework.Core` — `clsBusinessBase` |
| BeginEdit | `Sub BeginEdit()` | Opens an n-level edit session for the business object.† | `SAIF.Framework.Core` — `clsBusinessBase` |
| CancelEdit | `Sub CancelEdit()` | Rolls back the active edit scope.† | `SAIF.Framework.Core` — `clsBusinessBase` |
| ApplyEdit | `Sub ApplyEdit()` | Commits the active edit scope.† | `SAIF.Framework.Core` — `clsBusinessBase` |
| Error | `ReadOnly Property Error As String` | Surfaces aggregate broken-rule text through `IDataErrorInfo`.† | `SAIF.Framework.Core` — `clsBusinessBase` |
## Behavioral notes
- The object layers derived helpers over the loaded row, including default-class detection, class-paragraph lookup, and associated-class navigation.
## Constraints and usage notes
- Many derived properties depend on related lookups or `PeriodRatingInfo`, so callers should populate the same context they used to retrieve the row.
> **Note:** Statements marked with `†` are derived from dependency library
> documentation via the Legends CLI. They describe inherited behavior from the
> indicated origin library and should be verified if the dependency version changes.
## Sources
- `Business\SAIF.Business.Policy.Rating\clsManualClassBase.vb`
