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

# PeriodRatingInfoExtensions

`PeriodRatingInfoExtensions` is a VB extension-method module that supplies shared, reusable behavior for any `iPeriodRatingInfo` implementation: market-type convenience checks (`IsVoluntary`, `IsAssignedRisk`) and base implementations of value equality and hash-code computation (`BaseEquals`, `BaseGetHashCode`) over all eight rating attributes. Implementers of `iPeriodRatingInfo` call these extension methods from their own `Equals`/`GetHashCode` overrides rather than re-implementing the comparison logic.

## Purpose
- Provide `IsVoluntary`/`IsAssignedRisk` convenience checks against `iPeriodRatingInfo.MarketType` so callers do not repeat the enum comparison.
- Provide `BaseEquals`, comparing `AnniversaryRatingDate`, `RatingEffectiveDate`, `IsARDExtended`, `IsREDExtended`, `EffectiveDate`, `ExpirationDate`, `RateTierCode`, and `MarketType`, so that equality requires all eight rating attributes to match, per [BR-POL-015](../../../../business-rules.md#br-pol-015-period-rating-equality-requires-all-eight-rating-attributes-to-match).
- Provide `BaseGetHashCode`, computing a hash from the concatenated string representation of the same eight attributes, so implementers get a hash code consistent with `BaseEquals`.

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

## Public members
| Member | Signature | Purpose |
| --- | --- | --- |
| `IsVoluntary` | `<Extension()> Function IsVoluntary(ByVal target As iPeriodRatingInfo) As Boolean` | Returns `True` when `target.MarketType` is `Enums.MarketTypes.Voluntary`. |
| `IsAssignedRisk` | `<Extension()> Function IsAssignedRisk(ByVal target As iPeriodRatingInfo) As Boolean` | Returns `True` when `target.MarketType` is `Enums.MarketTypes.AssignedRisk`. |
| `BaseEquals` | `<Extension()> Function BaseEquals(ByVal target As iPeriodRatingInfo, ByVal inObject As iPeriodRatingInfo) As Boolean` | Compares all eight rating attributes between `target` and `inObject`, returning `True` only if every attribute matches, per [BR-POL-015](../../../../business-rules.md#br-pol-015-period-rating-equality-requires-all-eight-rating-attributes-to-match). |
| `BaseGetHashCode` | `<Extension()> Function BaseGetHashCode(ByVal target As iPeriodRatingInfo) As Integer` | Computes a hash code from the concatenated string values of all eight rating attributes, consistent with `BaseEquals`. |


## Behavioral notes
- Source declaration: `Business\SAIF.Business.Policy\iPeriodRatingInfo.vb`.
- Related operations, rules, and SQL are cross-referenced from the library-level documentation.

## Constraints and usage notes
- Consumers should rely on the declared public surface rather than internal implementation details.

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