---
title: Select rating plan factors in force
summary: `RatingPlanFactorExtensions.AsOfDate` and `.RatingPlan` (`clsRatingPlanFactorCollection.vb:434-444`)
status: draft
owner: Technical Writer
last_reviewed: 2026-07-31
library: SAIF.Business.Policy.Rating
reference_type: package
operation_id: OP-012
trigger: Validating or applying a rating plan modification factor
---

# Select rating plan factors in force

`RatingPlanFactorExtensions.AsOfDate` and `.RatingPlan` (`clsRatingPlanFactorCollection.vb:434-444`)

| Field | Value |
| --- | --- |
| **Operation ID** | OP-012 |
| **Trigger** | Validating or applying a rating plan modification factor |
| **Inputs** | A sequence of `clsRatingPlanFactor`, a date and/or a `Enums.RatingPlans` value |
| **Outputs** | Filtered sequence |
| **Primary components** | ``RatingPlanFactorExtensions.AsOfDate` and `.RatingPlan` (`clsRatingPlanFactorCollection.vb:434-444`)` |
| **Entry point** | `Business\SAIF.Business.Policy.Rating\clsRatingPlanFactorCollection.vb` |

## Steps

1. `AsOfDate` keeps factors where `EffectiveDate <= inAsOfDate` and
2. `RatingPlan` keeps factors whose `RatingPlan` equals the requested plan.
3. `clsARPCreditFactor.Factor` uses the resulting factor's `UpperLimit` when it `IsValid`, otherwise
4. Use the related data-access statements and tables for this operation: [SQL-038](../sql/SQL-038-saif-business-policy-rating.md), [SQL-039](../sql/SQL-039-saif-business-policy-rating.md), [SQL-040](../sql/SQL-040-saif-business-policy-rating.md), [RATING_PLAN_CODE](../database-tables.md#rating_plan_code), [RATING_PLAN_FACTOR](../database-tables.md#rating_plan_factor).

## Process flow

The following diagram visualizes this operation's control flow.

```mermaid
flowchart TD
  Start([Trigger: validating or applying a rating plan modification factor]) --> S1[AsOfDate: keep factors where EffectiveDate is less than or equal to inAsOfDate]
  S1 --> S2[RatingPlan: keep factors whose RatingPlan equals the requested plan]
  S2 --> D1{Resulting factor IsValid?}
  D1 -->|Yes| S3[ARPCreditFactor uses the factor's UpperLimit]
  D1 -->|No| S4[Fall back per business rules]
  S3 --> Done([Filtered rating plan factor sequence])
  S4 --> Done
```

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