SAIF.Business.Policy.Rating operations and processes¶
This page is the operation hub for SAIF.Business.Policy.Rating. It covers rate computation, manual-class retrieval, delete guards, stored-procedure lookups, and date-effective factor selection.
Operation catalog¶
| Operation | Intent | Trigger | Inputs | Outputs | Rules | Tables | SQL |
|---|---|---|---|---|---|---|---|
| Compute the adjusted rate for a class | ClassRateExtensions.AdjustedRate(Target, inRateTierFactor, inUSLHWFactor, AccidentLimitFactors, OtherFactors) (ClassRateExtensions.vb:39-58) |
Premium rating needs the final rate for a rated class line | An iAdjustedRateProvider target, a clsRateTierFactor, a clsUSLHWCompFactor, a sequence of accident-limit iAdjustedRateFactor, a sequence of other iAdjustedRateFactor |
Decimal rate rounded to 6 decimal places | BR-001, BR-010 | — | — |
| Compute the base rate for a class | ClassRateExtensions.BaseRate(Target, inRateTierFactor, inUSLHWFactor, AccidentLimitFactors) (ClassRateExtensions.vb:60-75) |
Called by OP-001, or directly when only the base rate is needed | iAdjustedRateProvider, rate tier factor, USL&HW factor, accident-limit factors |
Decimal base rate rounded to 4 decimal places using arithmetic (not banker's) rounding | BR-002, BR-011, BR-012, BR-029 | USLHW_COMP_FACTOR | SQL-046 |
| Resolve the rate file sequence number for a period | clsManualClassBaseCollection.GetRateFileSeqNum(inDataPortalInfo, inPeriodRatingInfo) (clsManualClassBaseCollection.vb:188-211) |
Rating needs to know which published rate file governs a policy period | IDataPortalInfo, iPeriodRatingInfo (supplies anniversary rating date and rate tier code) |
Decimal rate file sequence number | BR-041 | RATE_FILE_MASTER | SQL-021 |
| Resolve a manual class key (rate lookup) | clsManualClassBase.GetManualClassBaseKey(inDataportal, inPeriodRatingInfo, inClassEffectiveDate, ByRef inoutManualClassNumberAndUsageCode, ByRef outRateFileSeqNum) (clsManualClassBase.vb:1225-1268) |
A class number must be resolved to the rate file and (possibly replaced) class number that actually applies | Class number/usage code (in-out), class effective date, period rating info | Updated class number/usage code and rate file sequence number (both ByRef) |
BR-013, BR-014, BR-034, BR-035, BR-036, BR-037, BR-038, BR-039, BR-040 | RATE_FILE_MASTER, MANUAL_CLASS_BASE | SQL-019 |
| Retrieve a manual class base | clsManualClassBase.GetManualClassBase (4 overloads) / GetDefaultManualClassBase |
Rating or maintenance needs the published attributes of a manual class | Depending on overload: rate file sequence number + class number, or period rating info + class number | A populated clsManualClassBase |
BR-003 | MANUAL_CLASS_BASE | SQL-020, SQL-021, SQL-019 |
| Delete a manual class base with referential guard | clsManualClassBase.CanDeleteManualClassBaseRecord then BeforeDelete/AfterDelete (clsManualClassBase.vb:1341-1383, :889-910) |
Rate-file maintenance wants to remove a manual class from a rate file | Manual class number, WCIS rate file sequence number | Boolean eligibility, then the delete itself | BR-004, BR-005, BR-006 | PREM_HIST_CLASS_COVERAGE, MANUAL_CLASS_BASE | SQL-017, SQL-056 |
| Delete all manual class bases for a rate file | clsManualClassBaseCollection.DeleteManualClassBasebyRateFileSeqNum (clsManualClassBaseCollection.vb:327-365) |
A rate file is being withdrawn or reloaded | WCIS rate file sequence number | Boolean success | BR-007 | MANUAL_CLASS_BASE | SQL-057 |
| Guard a rate file master delete | clsRateFileMaster.CanDeleteRateFileMasterRecord (clsRateFileMaster.vb:494-534) |
Maintenance wants to delete a rate file | WCIS rate file sequence number | Boolean eligibility | BR-005, BR-008 | MANUAL_CLASS_BASE | SQL-032 |
| Retrieve the class description paragraph | clsManualClassBase.GetClassParagraph(inDPI, ManualClassNumberAndUsageCode, inParagraphEffectiveDate, inMarketType) (clsManualClassBase.vb:848-884) |
Documents or screens need the printed description paragraph for a class | Class number/usage code, paragraph effective date, market type | Paragraph text, trimmed; empty string when none | BR-009 | MANUAL_CLASS_PARAGRAPH_USAGE, MANUAL_CLASS_PARAGRAPH | SQL-018 |
| Retrieve period rating information | clsPeriodRatingInfo.GetPeriodRatingInfo and .GetCurrentPeriodRatingInfo (clsPeriodRatingInfo.vb:197-243) |
Any rating call that needs the period context (ARD, market type, rate tier, dates) | Policy number, and (for the dated overload) policy period effective date | A clsPeriodRatingInfo — empty when no row matches |
BR-015, BR-016, BR-017 | POLICY, POLICY_PERIOD, POLICY_PERIOD_NON_WCIS | SQL-027 |
| Select the applicable rate tier factor | RateTierFactorExtensions.AppliesTo(target, inRiskTypeCode, inDate) + clsRateTierFactor.IsApplicableTo (clsRateTierFactorCollection.vb:356-361) |
Base rate computation needs the risk-type factor in force | A sequence of clsRateTierFactor, a risk type code, a date |
The first matching factor, or Nothing |
BR-018, BR-026 | RISK_TYPE_DESCRIPTION | SQL-037 |
| Select rating plan factors in force | RatingPlanFactorExtensions.AsOfDate and .RatingPlan (clsRatingPlanFactorCollection.vb:434-444) |
Validating or applying a rating plan modification factor | A sequence of clsRatingPlanFactor, a date and/or a Enums.RatingPlans value |
Filtered sequence | BR-019, BR-020, BR-027 | RATING_PLAN_CODE, RATING_PLAN_FACTOR | SQL-038, SQL-039, SQL-040 |
| Select active prepay frequencies | PrepayFrequencyExtensions.ActiveAsOf(Target, inAsOfDate) (clsPrepayFrequencyCollection.vb:426-431) |
Presenting the prepay options available on a given date | A sequence of clsPrepayFrequency, a date |
Filtered sequence | BR-021, BR-025, BR-032 | PREPAY_DISCOUNT_FACTOR, PREPAY_FREQUENCY_CODE | SQL-029, SQL-030, SQL-031 |
Process flow diagram¶
The following diagram visualizes the primary operational flow across the library.
flowchart TD
Start([Caller requests rating data]) --> Period[Retrieve period rating info]
Period --> Filing[Resolve rate file sequence number]
Filing --> ClassKey[Retrieve manual class key and rate]
ClassKey --> ManualClass[Retrieve manual class base]
ManualClass --> Factors[Select dated factors]
Factors --> Rate[Base and adjusted rate computation]
Inherited operations and processes¶
From clsBusinessBase (SAIF.Framework.Core)¶
| Operation | Intent | Provided by | Origin | Embedded in |
|---|---|---|---|---|
| Manage edit session | Open, commit, or roll back an in-memory edit scope for a BOF business object.† | clsBusinessBase |
SAIF.Framework.Core |
Retrieve a manual class base |
| Evaluate business object rules | Execute registered BOF rules and surface broken-rule state.† | clsBusinessBase |
SAIF.Framework.Core |
Retrieve a manual class base |
Database interactions¶
Failure and edge-case behavior¶
RateTierFactorExtensions.AppliesTocan returnNothing, so callers must guard the result before dereferencing it.**- Bulk delete suppresses exception detail and returns only
Falseon failure.
Stored procedure operations¶
| Operation | Description | Source | Link |
|---|---|---|---|
| Determine applicable ARD | Computes the anniversary-rating date that governs class lookup. | pk73059_prem_hist_summary.get_applicable_ard |
Details |
| Resolve class rate in current filing | Resolves class, replacement-class, and outstanding-filing logic. | pk73059_prem_hist_summary.sp62005_retrieve_rate |
Details |
| Return active rate-file sequence number | Returns the active non-outstanding filing for an ARD and risk type. | PK73193_submission.get_rate_file_seq_num |
Details |
Related documentation¶
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.vbBusiness\SAIF.Business.Policy.Rating\clsManualClassBase.vbBusiness\SAIF.Business.Policy.Rating\clsManualClassBaseCollection.vbBusiness\SAIF.Business.Policy.Rating\clsPeriodRatingInfo.vbBusiness\SAIF.Business.Policy.Rating\clsPrepayFrequencyCollection.vbBusiness\SAIF.Business.Policy.Rating\clsRateFileMaster.vb