Policy, Section, Asset model
The heart of the OpenQuote model is the Policy/Section/Asset model (or PSA for short). This is the basis for all of the structures you will encounter during the process of quotations. Whether you are designing PageFlows, coding rules or laying out documents you will always be working against the PSA model.
At the very top level, PSA defines three entities: Policy, Section, and Asset. There are many more entities involved in a full policy, but these are the basics.
A Policy will be pretty familiar to anyone in insurance, or anyone who ever insured anything. It is the contract between the insured and the insurer. A Section represents a section within the policy, for example a motor policy might include a section for "comprehensive cover". An Asset is the thing that is insured, or a thing about which information is needed in order to insure something. In the case of a motor policy, you would expect to see Assets which represent the Drivers covered by the policy and the Vehicles they are covered to drive.
The processes covered by OpenQuote are all specific to the quotation processes, so an additional Quotation object extends Policy to include Quotation specific fields.
During the quotation processes within OpenQuote, you always have access to the current Quotation. In Model View Controller parlance the Quotation object is your model.
As OpenQuote is all about the Quotation object, we'll run through the detail of that object here rather than the Policy object. Quotation extends Policy, so we won't be missing anything.
The Quotation object is the root of quite a rich model, as you can see below. Most of these will be familiar concepts to those involved in insurance, but some are specific to OpenQuote. We'll cover each of them in summary in the sections below.
- AssessmentSheet This is the key to risk assessment and premium calculation, and is covered in detail later.
- Asset This is covered in detail below
- Clause A clause indicates some condition associated with the Policy. Clauses may be attached to a Policy or a Section and describe some special condition which has been applied above and beyond whatever conditions are defined by the associated Wording. Clauses may also indicate a change to cover which is applied within the lifetime of the Policy it is attached to (i.e. a Mid Term Adjustment Endorsement); for example, a change of address endorsement.
- Coverage Coverages define or constrain the types of cover offered. Coverages may exist within a policy or a section, and may exist but not be in effect ('enabled' indicator). They may also be optional - selected at the policy holders discretion ('optional' flag).
- Exceptions Any and all errors which the system generated while processing the quotation. This is of most use during product development. If, for example, the system found an error in your rating spreadsheet, or couldn't find the definition of an Asset which it needed the details of those errors would be held here. They are associated with the Quotations (rather than being dumped into a hidden log somewhere) because the errors found during processing are generally specific to the quotation and don't make much sense if not associated with the data that caused them.
- Excess An Excess represents the amount for which the policy holder is liable before a claim can be made. It my be either "standard" or "deductible".
- PageVisits A list of the pages (from a PageFlow) that this Quotation has passed through. Each time a page is visited, it's details are added. If a page is visited more than one, it will appear more than once in this list. The list also details when the page was visited.
- PaymentOptions The product may present a number of payment options to the user. For example: A single credit card payment of Y, or, 12 direct debit payments of X. All of the valid options that the system identified are held here.
- PaymentSchedule The payment option which the user selected (from the options defined by PaymentOptions).
- Section This is covered in detail below.
- Status Defines where the quotation is in the process. Possible values are: Application, Quotation, OnRisk, Referred, Declined, Submitted.
- Wording The wording (or wordings) associated with this Quotation. Note that other wordings may appear within sections. A Wording may just define an ID, or it may define the entire wording text.
A Section represents a section within the policy, for example a motor policy might include a section for "comprehensive cover". A section describes the cover that the policy offers to specific assets.
The cover offered by a section can be constrained using Coverages, Clauses and Excesses. Coverages apply limits to the cover, e.g. a motor policy section might limit the cover it offers for in car entertainment systems to £500. The coverage may also define a "deductible" - which is the amount the policy holder would be expected to make up - much like an excess. Clauses apply wording restrictions, taking motor as an example again, a clause like "Driving of other vehicles is prohibited." is not uncommon. An Excess may be applied to a Section to define the amount of any claim that the policy holder is liable for, much like a Coverage's deductible, but the Excess is applicable to the whole section not just to a specific coverage.
The Assets attached to a section are typically real-world objects, Cars, Ships, Houses, Oil Rigs etc. The Assets associated with a section aren't necessarily insured by that section however; they may just be associated because they contain information which is relevant to that section. For example, A household insurance policy might have a section to cover "specified items" - objects in the house of significant value. The "specified items" section would certainly point at the Assets describing the items themselves - the items it covers, but it might also point at the "House" asset in order have access to information about how the house is constructed, or where it is geographically.
There are a lot of similarities between a Policy and a Section. They both have Clauses, Wordings, Coverages and Excesses, and they both have an AssessmentSheet. This similarity allows the model to be easily used for simple products, but also powerful enough to handle complex products.
At the very simple end of the spectrum, a policy might not have a section at all. In business terms, this doesn't make much sense; but if you just need to quote a simple product, like Pet insurance for example, multiple sections are rather an overkill. You can comfortably capture all the information that you need in one Asset, and you can rate it in a single assessment sheet. When the product is more complex, maybe Medical Malpractice or Commercial Combined, the ability to break the policy into sections becomes essential. The ability to rate at section level as well as policy level also make the rating rules far easier to manage.
As you may guess from the above, an Asset is a container for all kinds of information. In a motor policy, you would find Assets describing drivers and vehicles, in a life insurance policy you would find assets describing the people who are covered. In a professional indemnity policy you would find Assets describing the company insured.
Not only are Assets highly variable across products, the information used to describe an Asset varies enormously. And not just between products, different insurance companies will describe Assets differently and, quite likley, those descriptions will vary over time.
For these reasons, OpenQuote doesn't have a model object describing a Vehicle, or a House, or Insured Life or Oil Rig. Instead it allows them to be described totally dynamically. This description is done in terms of Attributes.
Taking a Vehicle Asset as an example; it would probably contain a license plate number Attribute, an engine size Attribute, maybe a year of manufacture Attribute and almost certainly a make and model Attribute.
Attributes can also contain sub-attributes. So, the Vehicle Asset might define a Alarm Attribute which itself contain make and model Attributes and a CAT rating Attribute. Or, maybe an In Car Entertainment Attribute containing make model and value Attributes.
The model supports this structuring of data, but does not constrain how it is used.