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

# clsPolicyPeriodRatingPlan

Persists and retrieves the rating plan in effect for a policy period, implementing `iPolicyPeriodRatingPlan`; holds ER Mod, SARAP factor, claim rating factor, type code, and implementation reason code. Factory methods `NewPolicyPeriodRatingPlan` and `GetPolicyPeriodRatingPlan` provide create/read access; `GetLatestPolicyPeriodRatingPlan` resolves the current active plan.*

## Purpose
- Persists and retrieves the active rating plan (ER Mod, SARAP, CRF, type code) for a policy period to and from Oracle.*
- Implements `iPolicyPeriodRatingPlan` to supply structured rating plan data to premium calculation and reporting consumers.*

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

## Public members
| Member | Signature | Purpose |
| --- | --- | --- |
| PolicyNumber | `Public ReadOnly Property PolicyNumber() As Decimal Implements iPolicyPeriodRatingPlan.PolicyNumber` | 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. |
| EffectiveDate | `Public Property EffectiveDate() As Date Implements iPolicyPeriodRatingPlan.EffectiveDate` | The date from which this record is effective. |
| ExpirationDate | `Public Property ExpirationDate() As Date Implements iPolicyPeriodRatingPlan.ExpirationDate` | The date on which this record expires; null indicates no expiration.* |
| Code | `Public Property Code() As String Implements iPolicyPeriodRatingPlan.Code` | The classification or type code for this record.* |
| CreateDate | `Public ReadOnly Property CreateDate() As Date Implements iPolicyPeriodRatingPlan.CreateDate` | The timestamp at which this record was created in the Oracle database. |
| CreateUser | `Public ReadOnly Property CreateUser() As String Implements iPolicyPeriodRatingPlan.CreateUser` | The username of the account that created this record. |
| TypeCode | `Public Property TypeCode() As String Implements iPolicyPeriodRatingPlan.TypeCode` | The classification type code for this record.* |
| ImpReasonCode | `Public Property ImpReasonCode() As String Implements iPolicyPeriodRatingPlan.ImpReasonCode` | The implementation reason code explaining why this rating plan was implemented for this period.* |
| RatingPlanFactor | `Public Property RatingPlanFactor() As Decimal` | The numeric rating plan factor applied to premium computation for this policy period.* |
| Factor | `Public Property Factor(ByVal inAdjustedRateProvider As iAdjustedRateProvider) As Decimal Implements iPolicyPeriodRatingPlan.Factor` | Returns the rating plan factor applicable to the supplied class coverage provider.* |
| ERMod | `Public Property ERMod() As Nullable(Of Decimal) Implements iPolicyPeriodRatingPlan.ERMod` | The experience rating modification (ER Mod) factor for this policy period's rating plan.* |
| ClaimRatingFactor | `Public Property ClaimRatingFactor() As Nullable(Of Decimal) Implements iPolicyPeriodRatingPlan.ClaimRatingFactor` | The claim rating factor applied to this policy period's rating plan.* |
| SARAPFactor | `Public Property SARAPFactor() As Decimal Implements iPolicyPeriodRatingPlan.SARAPFactor` | The SARAP (Schedule and Rating Analysis Plan) factor for this policy period's rating plan.* |
| UpdateDate | `Public ReadOnly Property UpdateDate() As Date Implements iPolicyPeriodRatingPlan.UpdateDate` | The timestamp of the most recent update to this record.* |
| UpdateUser | `Public ReadOnly Property UpdateUser() As String Implements iPolicyPeriodRatingPlan.UpdateUser` | The username of the account that last modified this record.* |
| RatingPlanType | `Public ReadOnly Property RatingPlanType As clsRatingPlanTypeCode` | The resolved `clsRatingPlanTypeCode` entity for this rating plan.* |
| IsValidDateRange | `Public ReadOnly Property IsValidDateRange As Boolean` | Returns True when the effective and expiration dates form a valid, non-overlapping date range.* |
| MyCriteria | `Public ReadOnly Property MyCriteria() As Criteria` | The criteria object used to retrieve this instance; useful for re-fetching or reloading.* |
| 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. |
| SetRatingPlanTypeCodeNull | `Public Sub SetRatingPlanTypeCodeNull()` | Clears `RatingPlanTypeCode`, marking it as null/unset so the column will be written as NULL on the next save.* |
| SetRatingPlanImpReasonCodeNull | `Public Sub SetRatingPlanImpReasonCodeNull()` | Clears `RatingPlanImpReasonCode`, marking it as null/unset so the column will be written as NULL on the next save.* |
| SetRatingPlanFactorNull | `Public Sub SetRatingPlanFactorNull()` | Clears `RatingPlanFactor`, marking it as null/unset so the column will be written as NULL on the next save.* |
| SetSARAPFactorNull | `Public Sub SetSARAPFactorNull()` | Clears `SARAPFactor`, marking it as null/unset so the column will be written as NULL on the next save.* |
| SetUpdateDateNull | `Public Sub SetUpdateDateNull()` | Clears `UpdateDate`, marking it as null/unset so the column will be written as NULL on the next save.* |
| SetUpdateUserNull | `Public Sub SetUpdateUserNull()` | Clears `UpdateUser`, marking it as null/unset so the column will be written as NULL on the next save.* |
| IsRatingPlanTypeCodeNull | `Public Function IsRatingPlanTypeCodeNull() As Boolean` | Tests whether `RatingPlanTypeCode` is null/unset in the backing Oracle column; returns True when the value has not been populated.* |
| IsRatingPlanImpReasonCodeNull | `Public Function IsRatingPlanImpReasonCodeNull() As Boolean` | Tests whether `RatingPlanImpReasonCode` is null/unset in the backing Oracle column; returns True when the value has not been populated.* |
| IsRatingPlanFactorNull | `Public Function IsRatingPlanFactorNull() As Boolean` | Tests whether `RatingPlanFactor` is null/unset in the backing Oracle column; returns True when the value has not been populated.* |
| IsSARAPFactorNull | `Public Function IsSARAPFactorNull() As Boolean` | Tests whether `SARAPFactor` 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.* |
| 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 clsPolicyPeriodRatingPlan) As Boolean` | Compares this instance with another `clsPolicyPeriodRatingPlan` instance 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.* |
| NewPolicyPeriodRatingPlan | `Public Shared Function NewPolicyPeriodRatingPlan(ByVal inDataportal As IDataPortalInfo, ByVal inPolicyNumber As Decimal, ByVal inPolicyPeriodEffectiveDate As Date, Optional ByRef inPeriodRatingInfo As iPeriodRatingInfo = Nothing, Optional ByVal inUpdatePolicyDbOK As Boolean = False) As clsPolicyPeriodRatingPlan` | Creates a new cls policy period rating plan initialized from the supplied source values.* |
| GetPolicyPeriodRatingPlan | `Public Shared Function GetPolicyPeriodRatingPlan(ByVal inDataportal As IDataPortalInfo, ByVal inPolicyNumber As Decimal, ByVal inPolicyPeriodEffectiveDate As Date, ByVal inEffectiveDate As Date) As clsPolicyPeriodRatingPlan` | Loads a cls policy period rating plan that matches the supplied lookup criteria. |
| GetLatestPolicyPeriodRatingPlan | `Public Shared Function GetLatestPolicyPeriodRatingPlan(ByVal inDataportal As IDataPortalInfo, ByVal inPolicyNumber As Decimal, ByVal inPolicyPeriodEffectiveDate As Date, Optional ByRef inPeriodRatingInfo As iPeriodRatingInfo = Nothing) As clsPolicyPeriodRatingPlan` | Factory method: retrieves the most recent `clsPolicyPeriodRatingPlan` record from Oracle matching the supplied criteria and returns a populated, MarkOld'd instance.* |
| AllowSARAPFactor | `Public ReadOnly Property AllowSARAPFactor() As Boolean` | Returns True when the current rating plan type permits a SARAP factor to be applied.* |
## 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\clsPolicyPeriodRatingPlan.vb`.

## Constraints and usage notes
- Only one rating plan should be active per policy period at a time; the `IsValidDateRange` property confirms the effective/expiration date range is consistent. Null-capable rating plan fields require explicit null-check or null-set calls.*


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