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

# clsHazardGroup

`clsHazardGroup` is a business object (`clsBusinessBase` subclass) representing a single, read-only hazard-group reference record loaded from the `HAZARD_GROUP` table: its NCCI hazard group code, short/long descriptions, effective/expiration dates, and audit fields. Hazard groups are never created, updated, or deleted through this class — every CRUD SQL property on its nested `Criteria` throws, so the object exists purely to represent retrieved data, per [BR-POL-011](../../../../business-rules.md#br-pol-011-hazard-group-data-is-read-only).

## Purpose
- Represent a single hazard group's identity (`HazardGroupID`, `NCCIHazardGroupCode`) and descriptive text (`ShortDescription`, `LongDescription`).
- Carry the effective/expiration date window and audit fields (`CreateDate`/`CreateUser`, `UpdateDate`/`UpdateUser`) loaded from `HAZARD_GROUP`.
- Establish object identity as the `HazardGroupID` alone: `Equals`/`GetHashCode` compare only on that field, per [BR-POL-016](../../../../business-rules.md#br-pol-016-hazard-group-identity-is-the-hazard-group-id-only).
- Enforce read-only access to hazard-group data by throwing from every CRUD SQL property on the nested `Criteria` class, per [BR-POL-011](../../../../business-rules.md#br-pol-011-hazard-group-data-is-read-only).

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

## Public members
| Member | Signature | Purpose |
| --- | --- | --- |
| `HazardGroupID` | `Public ReadOnly Property HazardGroupID() As String` | The identifier of the hazard group; also the sole basis for equality, per [BR-POL-016](../../../../business-rules.md#br-pol-016-hazard-group-identity-is-the-hazard-group-id-only). |
| `NCCIHazardGroupCode` | `Public ReadOnly Property NCCIHazardGroupCode() As String` | The corresponding NCCI hazard group code. |
| `ShortDescription` | `Public ReadOnly Property ShortDescription() As String` | The short description of the hazard group. |
| `LongDescription` | `Public ReadOnly Property LongDescription() As String` | The long description of the hazard group. |
| `EffectiveDate` | `Public ReadOnly Property EffectiveDate() As Date` | The date the hazard group becomes effective, used to filter hazard groups by date window, per [BR-POL-012](../../../../business-rules.md#br-pol-012-hazard-groups-are-filtered-by-effective-date-window). |
| `ExpirationDate` | `Public ReadOnly Property ExpirationDate() As Date` | The date the hazard group expires, used to filter hazard groups by date window, per [BR-POL-012](../../../../business-rules.md#br-pol-012-hazard-groups-are-filtered-by-effective-date-window). |
| `CreateDate` | `Public ReadOnly Property CreateDate() As Date` | The date the hazard group record was created. |
| `CreateUser` | `Public ReadOnly Property CreateUser() As String` | The user who created the hazard group record. |
| `UpdateDate` | `Public ReadOnly Property UpdateDate() As Date` | The date the hazard group record was last updated. |
| `UpdateUser` | `Public ReadOnly Property UpdateUser() As String` | The user who last updated the hazard group record. |
| `MyCriteria` | `Public ReadOnly Property MyCriteria() As Criteria` | The nested `Criteria` object associated with this instance, hidden from property browsers. |
| `IsValid` | `Public Overrides ReadOnly Property IsValid() As Boolean` | Indicates whether the object currently satisfies its business rules (delegates to the inherited base implementation). |
| `IsSavable` | `Public Overrides ReadOnly Property IsSavable() As Boolean` | Indicates whether the object can currently be saved (delegates to the inherited base implementation). |
| `Equals(objA, objB)` | `Public Overloads Shared Function Equals(ByVal objA As Object, ByVal objB As Object) As Boolean` | Compares two objects for equality if both are `clsHazardGroup`. |
| `Equals(inObject As Object)` | `Public Overloads Overrides Function Equals(ByVal inObject As Object) As Boolean` | Compares this instance to another object for equality. |
| `Equals(inObject As clsHazardGroup)` | `Public Overloads Function Equals(ByVal inObject As clsHazardGroup) As Boolean` | Compares this instance to another `clsHazardGroup` by `HazardGroupID`, per [BR-POL-016](../../../../business-rules.md#br-pol-016-hazard-group-identity-is-the-hazard-group-id-only). |
| `GetHashCode` | `Public Overrides Function GetHashCode() As Integer` | Returns a hash code derived from `HazardGroupID`. |
| `ToString` | `Public Overrides Function ToString() As String` | Returns the `HazardGroupID` as the string representation. |

## Inherited public members

| Member | Signature | Purpose | Origin |
| --- | --- | --- | --- |
| Rules | `Property Rules As clsRulesManager` | Exposes the BOF rules manager for inherited validation behavior* | `SAIF.Framework.Core` — `clsBusinessBase` |

## Behavioral notes
- Source declaration: `Business\SAIF.Business.Policy\clsHazardGroup.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\clsHazardGroup.vb`
