The USERV Auto insurance use case was developed in 2006 as a standard business rule use case that all the vendors could implement so that prospects would have a common example to use when evaluating business rules engines. Back in 2006 this was a prominent feature of the Business Rules Forum. Each vendor would present their solution to the entire conference. Corticon’s solution was originally implemented using Corticon 4.3.
The original USERV Use Case Specification is in the appendix.
The Decision Modeling Community has decided to revive this example so that vendors can highlight the new rule modeling features they have added to their products since 2006.
I’d appreciate everyone’s help in reviewing the model to do a number of things:
I’ve upgraded the rules from 2006 and added natural language expressions for all the condition. I also organized the rule sheets into folders of related rules.
Back in 2006 we used a custom C application to interface with the rules.
Today we have an opportunity to make use of the Telerik products to produce a nice interface for executing the rules (although that’s not really a feature of the rules engine)
Below is a walk though of the rule sheets that make up the solution.
Each of the sub components is described in detail below.
The rule statements in each of the rule sheets were taken (copy/paste) directly from the original spec (and may be supplemented by embedded variables to make the messages more meaningful)
Rule Flow as Drawn manually by the rule author
Rule Sheet Dependency Diagram As Generated Automatically by Corticon
Attribute Dependencies (as generated by Corticon)
HighTheftProbabilityAuto is a lookup table read from a database.
Shouldn’t the conditions be ‘OR’d together? Or would it be clearer to split up the exists statement? Or is there a better way of representing this?
Actions are set up as check boxes with the intent that if users will maintain these rules in the web console they will be unable to change the values of the risk rating text strings. This reduces the risk of a user entering an incorrect value.
Check rule 5
How it’s implemented
Note the use of the more specific alias “driver” to make the expression more readable than “ServiceParticipant”. Same idea with policyOwner, except that we add a filter that ensures that we only select the “BusinessParty” that is identified as the policyOwner. Similarly Vehicle is filtered to only those of type=’car’ and the alias reflect that.
The Corticon generated diagram reveals that there are actually TWO independent decisions inside this flow – one for isEligible and one for isHighRisk
Would it be helpful to show a different color or symbol to distinguish input attributes (like gender) from intermediate ones (like driver age classification)? How about distinguishing transient from base attributes?
Perhaps we should be calculating the age from the date of birth? Why are the filters disabled?
Decision context is productType=’Vehicle Insurance’
Long Term Client Scoring
This sheet combines a number of unrelated attributes. Eg vehicle eligibility score is independent of driver eligibility score and client score (any or all may get added). Should these be split on to separate sheets? i.e rules 1,2,3 are mutually exclusive and 4,5,6 are also mutually exclusive.
Should the eligibility scores be kept separate (for vehicle, and driver and client) and totaled at the end?
If we did this we’d have visibility of the contribution of each factor and this could be displayed in the bill (or audit report)
Manually created rule flow diagram
Currently there is a sequence dependency between airbags and alarms since the airbag rules initialize the discount percent to zero. If they should be dropped on the rule flow in the wrong order then the rules will not work correctly. The alarm discount would get lost. This can be eliminated if we keep the discounts in separate attributes and add them together at the point where we apply the discount. This may be a better approach anyway since having the discount values stored separately allows us to itemize the discounts on the bill. It also allows for future possible rules that might only allow the greater of the two discounts, not the sum of them. If there were to be an arbitrary number of possible discounts then we would be better modeling it as a one-to-many association between Vehicle and Discount. This involves a little more design work but provides a more extensible solution
In order to navigate from driver to driver details we make use of the reverse direction of the association.
How it works
Columns zero is a non-conditional rule and gets executed first to calculate the sum of the vehicle premiums and driver premiums. Then rules 1 and 2 make deductions from that total premium.
The alias “car” refers to ALL of the vehicles on a specific policy belonging to a particular
Orange indicates still to be implemented (was an extended operator in 4.3 – long since lost) – maybe should be implemented with a rule sheet to make the rule model more transportable.
The alias “services” refers to ALL the services associated with a client. The ->sum operator adds up all the servicePremiums (and balances) for all the services.
Manually drawn rule flow
Auto generated rule flow
Dependencies between the attributes and the rule sheets across the entire decision service
Idea: hide the red rule sheets and only show the inter-attribute dependencies – this will make the diagram less cluttered. Can be done by replacing attr1->sheet1, sheet1->attr2 with attr1->attr2
The we can enable tracing that starts (or ends) with a specific attribute to see all the specific dependencies.
Rule Sheet Dependency
UServ Financial Services provides a full service portfolio of financial products, including:
UServ’s objective is to satisfy the complete financial services of its clients including their families, their businesses and their business colleagues. With this focus on complete relationship services, clients are rewarded for their loyalty as they deepen their relationship with UServ by increasing their financial portfolio.
UServ plays a balancing act between rewarding their best clients and managing the risk inherent in providing on-going service to clients whose portfolios are profitable, but violate the eligibility rules of individual products.
UServ’s business rules are an essential component for managing this risk. The business rules address eligibility, pricing and cancellation policies at both the individual product and portfolio level.
This case study focuses on UServ’s vehicle insurance products, but differentiates the basic business rules from those that apply to preferred and elite clients.
A Preferred Client has a portfolio that includes at least three products. For example, a Preferred Client may have a portfolio that includes vehicle and life insurance policies and an Individual Retirement Account (IRA). A client is not a Preferred Client if their portfolio includes only three life insurance policies or four IRAs.
An Elite Client has a combined balance of over $250,000. The annual insurance policy premiums are included when calculating the combined balance.
A Family Portfolio can contain the portfolios of related clients. They do not have to live together, but must be in the same family.
The market segment applies to all of the portfolios within Family Portfolios. For example, if any of the portfolios achieve a Preferred or Elite status, all the portfolios within that Family Portfolio achieve that client status.
The balances and years as a client of all the Family Portfolios are combined to determine the Client Status.
The base business rules are dependent on the type of vehicle being insured and the characteristics of the people covered by the policy.
Potential Theft Category
If the car is a convertible, then the car’s potential theft rating is high.
If the car’s price is greater than $45,000, then the car’s potential theft rating is high.
If the car model is on the list of “High Theft Probability Auto”, then the car’s potential theft rating is high.
If all of the following are true, then the car’s potential theft rating is moderate.
If all of the following are true, then the car’s potential theft rating is low:
High Theft Probability Auto List
Make and Model
1964 – 1970
The “High Theft Probability Auto” list is maintained by Risk Management and provided as input to the eligibility rating process.
Potential Occupant Injury Category
If the car has no airbags, then the car’s potential occupant injury rating is extremely high.
If the car only has driver’s air bag, then the car’s potential occupant injury rating is high.
If the car has driver’s and front passenger air bags, then the car’s potential occupant injury rating is moderate.
If the car has driver’s front passenger and side panel air bags, then the car’s potential occupant injury is low.
If the car is a convertible and has no roll bar, then the potential occupant injury is extremely high.
If the Potential Occupant Injury Rating is extremely high, then the auto eligibility is “not eligible”.
If the Potential Occupant Injury Rating is high, then the auto eligibility is “provisional”.
If the Potential Theft Rating is high, then the auto eligibility is “provisional”.
If the car is not housed in the same State as where the policy owner lives and
the driver of the car is a young driver and not a Preferred Client, then the auto eligibility is "provisional".
If none of the following is true, then the auto eligibility is “eligible”
(applied to each driver covered by the application or policy)
Driver Age Category
If the driver is male and is under the age of 25, then young driver.
If the driver is female and is under the age of 20, then young driver.
If young driver and driver has training certification, then eligible driver.
If the driver is over the age of 70, then senior driver.
If senior driver and driver has training certification, then eligible driver.
If the following are not true, then eligible driver
If driver has taken driver’s training from school then driver has training certification.
If driver has taken driver’s training from a licensed driver training company, then driver has training certification.
If driver had taken a senior citizen driver’s refresher course, then driver has training certification.
Driving Record Category
If the driver has been convicted of a DUI, then the driver qualifies as a High Risk Driver
If the number of accidents the applicant has been involved in is greater than 2, then the driver qualifies as a High Risk Driver.
If the driver has had more that 3 moving violations in the last two years, then the driver qualifies as a High Risk Driver.
A client’s eligibility for auto insurance is determined by a scoring system based on the risk ratings for various categories. The lower the score, the better the eligibility rating.
For each Car:
If the Auto Eligibility is Eligible then increase the Vehicle Policy Eligibility Score by 100.
If the Auto Eligibility is Provisional then increase the Vehicle Policy Eligibility Score by 50.
If the Auto Eligibility is Eligible then the Vehicle Policy Eligibility Score is unchanged.
For each Driver:
If a Young Driver and the Driver is not an Eligible Driver then increase the Vehicle Policy Eligibility Score by 30.
If a Senior Driver and the Driver is not an Eligible Driver then increase the Vehicle Policy Eligibility Score by 20.
If Eligible Driver then the Vehicle Policy Eligibility Score is unchanged.
If a High Risk Driver then increase the Vehicle Policy Eligibility Score by 100.
If Preferred Client then decrease the Vehicle Policy Eligibility Score by 50.
If Elite Client then decrease the Vehicle Policy Eligibility Score by 100.
If eligibility score is less that 100, then client is eligible for insurance
If eligibility score is between 100 and 250 inclusive, then the client’s application/policy renewal must be reviewed by underwriting manager who will determine whether the client is eligible for auto insurance.
If eligibility score is greater than 250, the client is not eligible for auto insurance.
If a long term client, the client is always eligible for auto insurance, as is every person and car directly covered by a long term client’s auto policy.
A long term client has maintained a UServ portfolio for 15 years.
If the client is eligible for auto insurance, then the annual premium must be determined.
For each car on the policy:
If compact car, then base premium is $250.
If sedan, then base premium is $400.
If luxury car, then base premium is $500.
If car is new, then increase premium by $400.
If the model year is the same as the current year, then new car.
If the model year is the same as next year, then the car is new.
If car is not new and less than 5 years old, then increase premium by $300.
If car is between 5 and 10 years old, then increase premium by $250.
If uninsured motorist coverage is included, then increase premium by $300
If medical coverage is included, then increase premium by $600.
If Potential Occupant Injury is Extremely High, then increase premium by $1,000.
If Potential Occupant Injury is High, then increase premium by $500.
If Potential Theft is High, then increase premium by $500.
If the car is not housed in the same State as where the policy owner lives, then increase the premium by $1,000.
If the car only has Driver airbags then lower the premium by 12 %.
If the car has Driver and Passenger airbags then lower the premium by 15 %.
If the car has Driver, Passenger and Side airbags then lower the premium by 18 %.
If the car’s potential theft rating is high and the car is equipped with an alarm system, then lower the premium by 10%.
Percentages are accumulated. Add up all the percentages that apply to the car and apply as a total discount.
For each driver on the policy:
If young driver and married and located in CA, NY or VA, then increase premium by $700.
If young driver and single and located in CA, NY or VA, then increase premium by $720.
If young driver and married and not located in CA, NY or VA, then increase premium by $300.
If young driver and single and not located in CA, NY or VA, then increase premium by $300.
If senior driver and located in CA, NY or VA, then increase premium by $500.
If senior driver and not located in CA, NY or VA, then increase premium by $200.
Driver is a Typical Driver is all of the following are true:
If a Typical Driver, then increase premium by $0.
If a High Risk Driver, then increase premium by $1,000.
Raise the premium by $ 150 per accident
These discounts are applied after all the individual car and driver premiums with discounts have been calculated. Total those premiums and then apply the market segment discounts.
If a preferred client, lower the premium by $250.
If an elite client, then lower the premium by $500.
After all discounts have been applied, the annual premium must be greater than or equal to the sum of the base premium for all the cars on the policy.
Facts are business rules that describe a relationship that can occur between business concepts. They are expressed as English statements in the form of Subject – Verb – Object. For example, Vehicle Insurance is a type of Insurance, Insurance is a type of Product, Vehicle Insurance Policy covers Vehicle and Vehicle Insurance Policy has Vehicle Policy Eligibility Score.
Facts are expressed unconstrained. For example, the default statement for the fact “Vehicle Insurance Policy covers Vehicle” is “A Vehicle Insurance Policy covers some Vehicles” or “A Vehicle Insurance Policy covers zero to many Vehicles”. Validation rules are used to place constraints on facts. For example, the validation rule “Every Vehicle Insurance Policy covers at least one Vehicle” states that a Vehicle Insurance Policy is incomplete and, therefore invalid, until at least one vehicle has been assigned to it.
UServ’s facts are provided in the following table and represented in the business concepts diagram (Business Concepts (Fact) Model).
Subject Business Concept
Object Business Concept
"Business Liability Insurance"
is a type of
is involved as
"Client Portfolio Participant"
"Average Rolling 12 Month Product Type Count"
"High Risk Driver"
"Individual Retirement Account"
"Licensed Driver Training Company Certificate"
"Line of Credit"
"Long Term Client"
"Product Option Price"
"Senior Refresher Course"
"Vehicle Coverage Option"
"Vehicle Insurance Policy"
"Vehicle Policy Eligibility Score"
"Potential Occupant Injury Rating"
"Potential Theft Rating"
"Number of Moving Violations in Last Two Years"
"Number of Accidents"
is covered by
"High Theft Probability"
sets the rules for
is provided through
Following are a subset of UServ’s validation rules.
Every Product must include at least one Product Option.
Every Product Option must have exactly one Product Option Price.
Product Option Price must be US Currency.
Every Service must have its rules set by exactly one Product.
Every Insurance Policy must have exactly one Premium.
Every Service must select at least one Product Option.
Every Vehicle Insurance Policy must cover at least one Driver.
Every Vehicle Insurance Policy must cover at least one Vehicle.
A Vehicle may be covered by at most one Vehicle Insurance Policy.
Every Driver must be a Person.
Every Car must have exactly one Model.
Every Car must have exactly one Model Year.
Every Car must have exactly one Potential Theft Rating.
Every Car must have exactly one Auto Eligibility.
Every Model must have exactly one Style.
Every Style must have exactly one Base Premium.
Base Premium must be US Currency.
Car Configuration Rules
If a Car has a Side Airbag then the Car must have a Passenger Airbag.
If a Car has a Passenger Airbag then the Car must have a Driver Airbag.
An Airbag must be a Factory Installed Item.
The purpose of this scenario, besides exercising the auto insurance eligibility and pricing business rules, is to establish business rules for determining preferred clients, apply them and then change the business rules to be more stringent. The original set of rules continues to apply to clients who qualified as premium clients under those rules. The new ruleset applies to new clients.
Preferred Client Business Rule V1
A Preferred Client has a portfolio that includes at least three products families. For example, a Preferred Client may have a portfolio that includes vehicle and life insurance policies and an Individual Retirement Account (IRA). A client is not a Preferred Client if their portfolio includes only three vehicle insurance policies or four IRAs.
Sara Klaus is a new customer establishing a portfolio of financial services:
She qualifies for a Preferred Client because she is establishing accounts and policies in more that three product families.
Policy Effective Date: 1/1/2006
2006 Honda OdysseyFull AirbagsAlarm SystemPrice $39,000Type: Luxury
2003 Toyota CamryDriver and Passenger AirbagsPrice: $12,000Type: Compact
Female38 years oldSingleLives in ArizonaNo Accidents1 Moving ViolationNo DUIs
Sara’s SonMale17 years oldSingleLives in ArizonaNo AccidentsNo Moving ViolationsNo DUIsHas a Driver’s Training Certificate from schoolHas a Good Student Certificate
Options for each car: Uninsured Motorist, Medical Coverage
Preferred Client Business Rule V2
Rule Change on 4/1/2006
Management wants to reward longevity as well as depth of a client’s portfolio. They have decided to change the Preferred Client eligibility rules to include a measure of longevity.
A Preferred Client has a portfolio that includes an average of three products families over the prior rolling 12 month period. The configuration of the portfolio families can change over the period, so long as the average is three product families. New clients must maintain this average for a year before they are eligible.
To ensure that the existing preferred clients are not upset over the change in these eligibility rules, they will continue to maintain their preferred client status until their portfolio configuration falls below the 3 family limit.
In this scenario, a new client with the exact same profile as Sara does not qualify for the preferred customer. Sara is re-rated at her six month anniversary and continues to qualify as a preferred client.
Policy Effective Date: 7/1/2006
Mark Houston purchases a new auto policy to cover both his and his daughter's car. He has the same profile as Sara's.
Male38 years oldSingleLives in ArizonaNo Accidents1 Moving ViolationNo DUIs
Mark’s DaughterFemale17 years oldSingleLives in ArizonaNo AccidentsNo Moving ViolationsNo DUIsHas a Driver’s Training Certificate from schoolHas a Good Student Certificate
Options: Uninsured Motorist, Medical Coverage
When Sara is re-rated, everything is the same because she falls under the grandfather clause.
Angie goes to college at UCLA and takes her 2003 Toyota. the car garaged outside the state rule now applies. In addition, Angie has had problems adjusting to driving in Los Angeles and has had three accidents.
When Mark's policy is re-rated, his eligibility score now required review.
The underwriter decides to allow Mark to continue insuring Angie and her car under the current policy.
Determine the new annual premium.
UServ allows clients who are related to combine their portfolios into a Family Portfolio. This allows a family to attain a higher client market segment as a group.
Mark's parents, Harry and Susan Houston, are UServ Financial Services clients. Their portfolio includes:
Mark's Portfolio includes:
Property Insurance Annual Premium
Auto Insurance Annual Premium
Total Combined Family Portfolio Balance: $270,679
By combining their portfolios, they qualify as Elite clients. Mark receives a discount for his elite status.
Re-price Mark's Auto Insurance Policy.
Business Concepts Model Key
Read fact in the direction of the small arrow.
Identify states that the primary business concept (in this case the Driver) can be in.
Read fact in the direction of the triangle arrow:
The above facts are mutually exclusive.
These states can co-exist.
Reading the fact from the primary business concept:
The business concept of the arrow head side of the fact is a piece of knowledge (knowledge property) of the other business concept.
Read in the direction of the arrow head:
Facts are unconstrained. For example, the default statement for Service selects Product Option is A Service may select some Product Options. Business rules must be stated to constrain the fact, such as:
The business rules that constrain the facts are not provided in this case study.
The fact model is not intended to dictate the application’s object class model or database design. It represents the knowledge that must be available to support the business rules. The developer is free to choose how to represent this knowledge in the solution.
The solution does not need to determine whether the Client is an Elite Client. Assume that this information is provided to the application.
The solution does not need to calculate the rolling 12 month average product count. Assume that this information is provided to the application.