Skip to main content
Measure how a proposed table change affects premiums and competitive position on the same risks. This example raises comprehensive factors by 5% and separates coverage-level changes from changes in the total premium: Install Relativities and download the example data before running this page.
One car in each vehicle age band pays 5% more for comprehensive: 26,26, 20 and 14.Thesyntheticraterbandseachcarbyage,asnew,midorold.Itmultipliesabaserateof14. The synthetic rater bands each car by age, as new, mid or old. It multiplies a base rate of 400 by a factor from VehicleAgeFactor, for liability and for comprehensive.

Read a rating table

List the rater’s tables, and read one as a DataFrame:
Each read returns a new DataFrame, so edits leave the rater the same. Keys are text exactly as filed, and factors are exact Decimal values.

Build the proposed rater

Pass the edited tables to with_tables. RSLC checks each edited table before it exports the new bundle:
  • A table with a gap in a key that a lookup reaches raises BundleError, which names the key.
  • A float raises TypeError. Give each rate as a Decimal.
with_tables writes a new bundle with its own bundle_id, here to proposed.zip. To keep the new bundle in memory only, omit path. Bundles and exact rating describes what the new bundle holds.

Rate a book with both raters

Write one prepare function, and give each rater a Program with that function: This rater’s inputs are the effective year and each vehicle’s model year. Add model years to the synthetic book’s vehicles:
Rate the book with a Market, and compare the two programs:
with_rater keeps prepare and the schema, and replaces the rater. This rater charges comprehensive on each vehicle, so each submission pays 2.19% to 2.83% more. S4, with a 2008 car, moves least.

Summarize by segment

Join submissions for the household_id, then households for the region, and group the change:
To measure the change on several versions of a book, rate a study with scenarios or draws. See Price a deductible change and Fill unknown facts.

Compare current and proposed positions against a competitor

Add competing programs to the same market and keep their inputs, coverage scope, and premium term aligned. For this synthetic example, create a competing plan with comprehensive factors 2% above the current factors:
This competing plan is an illustrative benchmark derived from synthetic tables. For a market study, load the actual competing program and validate its mapping. Compare all three programs on the same matched population:
The current plan costs less than this benchmark on all six submissions. The proposed plan costs more on all six. A positive gap means our plan’s premium exceeds the competitor’s on the stated basis. Retain each unmatched submission and its status separately when applying this method to your own book.

Interpret the impact

For the aggregate premium impact, compare summed current and proposed premiums on the same population:
The aggregate change is 2.53%. The segment exhibit above reports the arithmetic mean of submission-level percentage changes; label those statistics separately. Apply consistent exposure weights when the study requires them. Premium movement measures price impact. Claims and expense evidence are needed to assess profitability; quote and bind evidence are needed to assess conversion. Retain the input book, bundle IDs, edited factors, comparison basis, and analysis code so reviewers can reproduce the exhibit.

Close the raters