Workers’ compensation rating
Rating in workers’ compensation is different from other lines of business. One reason is that the algorithm used varies by state. Another is that users need the ability to evaluate and adjust the premium basis, payroll, of the entire policy term even when a change is initiated midterm. PolicyCenter accomplishes this in the user interface by displaying the entire policy term information even when affecting a midterm change (window mode). When a rating element or factor changes midterm, you may the adjust payroll details into separate rating periods within the window of the policy term.
Sometimes an insurance company must rate the period as a split period, which means a requirement to rate an annual policy split into two or more periods. For example, a policy must be rated midterm to give the insured new rates mandated by the state. Each of these reasons to split the period causes the following operations.
- PolicyCenter creates a new RatingPeriodSplitDate object, sometimes called an RPSD.
- PolicyCenter makes the
CoveredEmployeeexposures (class code, basis amount) split on that date. - Modifiers also sometimes split, depending on a setting for the modifier pattern in the product model.
Fundamentally, worker’s compensation rating performs the following operations.
- Calculate manual premium – Manual premium means applying the standard rates as published in
the manual to each covered employee. This is standard for all states. The
rating engine iterates across the exposure rows in the database. PolicyCenter applies the
following calculation.
premium = calc_basis * rate * factorThe code statement contains the following elements.
calc_basisis usually the payroll amountfactoris the multiplication factor. Typically this is1/100since rates typically represent every $100 of payroll.
This number is non-prorated (does not use effective time) because PolicyCenter already adjusted the basis for the length of time represented by the row. This is the meaning of the PolicyCenter term basis scalable costs. PolicyCenter scales the basis itself, and in this case does not use any time-based proration or scaling factor.
- Calculate additional premium amounts by state and rating period – The rating engine iterates across each state and rating period. For each, the rating engine calculates additional premiums for increased limits factor, experience modifier, and many other things. These steps vary by state, and frequently change over time.
- Calculate premiums that apply to the entire period – Final pass calculations that apply to the entire period might include premium discounts based on the total annual premium. An annual premium must apply to the policy as a whole, not for any given rating period.
The implementation for the built-in workers’ compensation rating algorithm is the class gw.lob.wc.rating.WCRatingEngine. Look at the code for the rateOnly method to see the fundamental split between the manual premium and the remaining non-manual-premium calculations.
- Manual premium calculations – The manual premium costs create WCCovEmpCostData objects linked to exposures (the WCCoveredEmployee objects).
- Additional premiums calculations – The other calculations create
WCJurisdictionCostData objects at the state level. The by-rating period logic is clear
within this step.
- First, the engine iterates across all combinations of state and rating period.
- For each one of these combinations, the rating engine gets the subtotal of all manual premiums within that state and rating period.
Note that WCCoveredEmployee objects can never span more than one rating period. PolicyCenter enforces this at the application level. If necessary, PolicyCenter splits the object, one for each period. This means that as the rating engine iterates by state and rating period, the premium for each
WCCoveredEmployee(theWCCovEmpCostData) falls into exactly one combination.
The manual premium rating for each exposure is simple. The rating engine uses a system table (rates_workers_comp.xml) to look up the class code of an exposure. The table returns a rate and minimum premium for each class code by effective dates, state, and so on. The rating engine tracks the largest minimum premium for each state. The rating engine later uses the largest one as the required minimum premium.
There is also some extra logic to handle rating overrides. The rating engine calculates the amount ignoring overrides. It uses a previous override if one exists.
Refer to the Gosu class gw.lob.wc.rating.WCCoveredEmployeeRater for more details.
