---
title: Select the applicable rate tier factor
summary: `RateTierFactorExtensions.AppliesTo(target, inRiskTypeCode, inDate)` + `clsRateTierFactor.IsApplicableTo` (`clsRateTierFactorCollection.vb:356-361`)
status: draft
owner: Technical Writer
last_reviewed: 2026-07-31
library: SAIF.Business.Policy.Rating
reference_type: package
operation_id: OP-011
trigger: Base rate computation needs the risk-type factor in force
---

# Select the applicable rate tier factor

`RateTierFactorExtensions.AppliesTo(target, inRiskTypeCode, inDate)` + `clsRateTierFactor.IsApplicableTo` (`clsRateTierFactorCollection.vb:356-361`)

| Field | Value |
| --- | --- |
| **Operation ID** | OP-011 |
| **Trigger** | Base rate computation needs the risk-type factor in force |
| **Inputs** | A sequence of `clsRateTierFactor`, a risk type code, a date |
| **Outputs** | The first matching factor, or `Nothing` |
| **Primary components** | ``RateTierFactorExtensions.AppliesTo(target, inRiskTypeCode, inDate)` + `clsRateTierFactor.IsApplicableTo` (`clsRateTierFactorCollection.vb:356-361`)` |
| **Entry point** | `Business\SAIF.Business.Policy.Rating\clsRateTierFactorCollection.vb` |

## Steps

1. Return the first element for which `IsApplicableTo` is true.
2. `IsApplicableTo` requires `RiskTypeCode.Equals(inRiskTypeCode)` **and**
3. The caller passes the result to `BaseRate`; a `Nothing` result would fail there, so callers must
4. Use the related data-access statements and tables for this operation: [SQL-037](../sql/SQL-037-saif-business-policy-rating.md), [RISK_TYPE_DESCRIPTION](../database-tables.md#risk_type_description).

## Process flow

The following diagram visualizes this operation's control flow.

```mermaid
flowchart TD
  Start([Trigger: base rate computation needs the risk-type factor in force]) --> D1{IsApplicableTo: RiskTypeCode matches and other applicability criteria met?}
  D1 -->|Yes, first match| S1[Return the matching clsRateTierFactor]
  D1 -->|No match| S2[Return Nothing]
  S1 --> Done([Factor passed to BaseRate - OP-002])
  S2 --> Done2([Nothing returned - caller must guard before use in BaseRate])
```

## 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\clsRateTierFactorCollection.vb`
