---
title: Compute the base rate for a class
summary: `ClassRateExtensions.BaseRate(Target, inRateTierFactor, inUSLHWFactor, AccidentLimitFactors)` (`ClassRateExtensions.vb:60-75`)
status: draft
owner: Technical Writer
last_reviewed: 2026-07-31
library: SAIF.Business.Policy.Rating
reference_type: package
operation_id: OP-002
trigger: Called by OP-001, or directly when only the base rate is needed
---

# Compute the base rate for a class

`ClassRateExtensions.BaseRate(Target, inRateTierFactor, inUSLHWFactor, AccidentLimitFactors)` (`ClassRateExtensions.vb:60-75`)

| Field | Value |
| --- | --- |
| **Operation ID** | OP-002 |
| **Trigger** | Called by OP-001, or directly when only the base rate is needed |
| **Inputs** | `iAdjustedRateProvider`, rate tier factor, USL&HW factor, accident-limit factors |
| **Outputs** | Decimal base rate rounded to 4 decimal places using arithmetic (not banker's) rounding |
| **Primary components** | ``ClassRateExtensions.BaseRate(Target, inRateTierFactor, inUSLHWFactor, AccidentLimitFactors)` (`ClassRateExtensions.vb:60-75`)` |
| **Entry point** | `Business\SAIF.Business.Policy.Rating\ClassRateExtensions.vb` |

## Steps

1. Start a factor list with `inRateTierFactor.AdjustedRateFactor(Target)` ([BR-011](../business-rules.md#br-011-the-rate-tier-factor-is-the-federal-risk-type-factor-when-the-providers-benefit-jurisdiction-is-federal-the-state-risk-type-factor-when-it-is-state-and-the-neutral-factor-otherwise-or-when-the-rate-tier-factor-is-invalid)).
2. Add `inUSLHWFactor.Factor(Target)` ([BR-012](../business-rules.md#br-012-the-uslhw-comp-factor-applies-only-when-the-rate-tier-record-is-valid-and-the-providers-manual-class-type-is-uslh-otherwise-the-neutral-factor-is-returned)).
3. Add each non-`Nothing` accident-limit factor's value.
4. Multiply all collected values into a cumulative factor starting at 1.
5. Return `SAIFRound(Target.PureRateFactor * CumulativeFactor, 4)` — `SAIFRound` performs arithmetic
6. Use the related data-access statements and tables for this operation: [SQL-046](../sql/SQL-046-saif-business-policy-rating.md), [USLHW_COMP_FACTOR](../database-tables.md#uslhw_comp_factor).

## Process flow

The following diagram visualizes this operation's control flow.

```mermaid

flowchart TD

Start([Trigger: OP-001 or direct base-rate need]) --> S1[Start factor list: RateTierFactor.AdjustedRateFactor - BR-011]

S1 --> S2[Add USLHWCompFactor.Factor Target - BR-012]

S2 --> S3[Add each non-Nothing accident-limit factor value]

S3 --> S4[Multiply all values into CumulativeFactor starting at 1]

S4 --> Done([Return SAIFRound PureRateFactor x CumulativeFactor, 4])

```

## Failure and edge-case behavior

- Review the linked business rules and SQL documents for the validation or data-access conditions that can block this operation.

## Related documentation

- [Operations and processes](../operations-processes.md)
- [Business rules](../business-rules.md)
- [SQL catalog](../sql/index.md)
- [Database tables](../database-tables.md)

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