Cost core properties

The Cost entity is the core output of the rating engine. A Cost entity is a delegate not an actual entity. There is no one master database table for all costs. Each line of business defines its own root entity (each with its own database table) for its costs. For example, PACost and BOPCost. Each of these entities implements the Cost delegate. The line then defines further subtypes of that line-specific cost, such as PersonalVehicleCovCost, that include additional properties and links into the policy graph.

The Cost delegate defines the following various core properties that are common to all costs. For those properties, the cost information exists in multiple properties with different prefixes.

  • If the property name has the prefix Standard..., this is the standard value for this cost information from the rating engine, before any overrides. For example, the StandardBaseRate.
  • If the property name has the prefix Actual..., this is the actual value that PolicyCenter uses to calculate the premium. The actual rate is the value PolicyCenter sends to the billing system for this cost. For example, the ActualBaseRate property. This is a different value from the standard column only if overrides exist for that cost.
  • If the property name has the prefix Override..., a user overrode the value with this new value. For example, the OverrideBaseRate property.

The following table includes the core cost properties. Except where noted, these are defined on the core cost delegate for costs entities (the data model delegate file CostDelegate.eti). Note that some properties have default values, whereas some are automatically calculated. Some properties you typically compute and explicitly set the values. See the Description column for details.

Cost information

Property names on costs and cost data objects

Description

Basis

Basis

The size of risk for the cost over the rated term. Usually this is directly from the object being rated, such as a workers’ compensation policy or a general liability exposure.

For owned property, typically the basis is one, such as one car or one building.

For liability risks, the basis measures the amount of risk. For example, the amount of payroll for workers’ compensation or the amount of sales for general liability.

In your rating code, always explicitly set the Basis property.

Base rate

ActualBaseRate StandardBaseRate OverrideBaseRate

The cost rate percentage prior to applying any discounts or adjustments. The base rate typically comes from a rate table.

In your rating code, set the property to one of the following settings.

  • ActualBaseRate – Always set explicitly. If there are overrides, the rating engine might set the actual property to zero to represent that it was unused.
  • OverrideBaseRate, StandardBaseRate – Set explicitly only if the rating line supports overrides. If the user overrides a post-prorated cost, then the base rate may be irrelevant. Set the override property to null if there are no overrides.

Adjusted rate

ActualAdjRate StandardAdjRate OverrideAdjRate

The cost rate percentage after applying modifier factors such as discounts and adjustments.

In your rating code, set the property to one of the following settings.

  • ActualAdjRate – Always set explicitly. If there are overrides, the rating engine might set the actual property to zero to represent that it was unused.
  • OverrideAdjRate, StandardAdjRate – Set these only if the rating line supports overrides. If the user overrides a post-prorated cost, then the adjusted rate may be irrelevant. Set the override property to null if there are no overrides.

Term amount

ActualTermAmount StandardTermAmount OverrideTermAmount

The non-prorated premium amount or other cost for the entire term. This represents the amount if the cost were effective for the entire term. The term length is the value in the property NumDaysInRatedTerm. For the prorated value (using effective and expiration dates), see the row with label “amount”.

In your rating code, set the property to one of the following settings.

  • ActualTermAmount – Always set explicitly.
  • OverrideTermAmount – Set only if the rating line supports overrides.
  • StandardTermAmount – Set if the rating line supports overrides. Otherwise, setting it is optional.

If there are overrides, the rating engine might set any of these to zero to represent that it was unused. For example, if the post-prorated cost is overridden, the base rate may be irrelevant.

Effective date

EffectiveDate

The start date for the date range of this cost. In other words, this is the date that this cost becomes effective. This property is not part of the cost delegate definition, which defines most core cost properties. However, costs are revisioned entities, so this property automatically exists in every Cost entity.

In your rating code, always explicitly set the EffectiveDate property.

Proration method

ProrationMethod

The proration method. The built-in choices are listed below.

  • ProRataByDays – A prorated cost (the default)
  • Flat – A flat cost

With Guidewire Rating Management, you can define and rate flat costs.

If you do not use Guidewire Rating Management, you can define flat costs, but you must configure rating for those flat costs. Define costs as flat costs by setting the ProrationMethod property to Flat on the cost data object.

The system table rating plugin implementation contains built-in behavior to handle flat costs.

  • In the CostData base class, the ProrationMethod property is copied between the cost data object and the cost entity instance.
  • In the CostData base class, the computeAmount protected method checks the value of the ProrationMethod property. If it is set to Flat, the method sets the Amount property to the term amount and does not prorate.

To add a custom proration method, perform the following operations.

  1. Add a new typekey to the ProrationMethod typelist.
  2. In your CostData subclass, override the computeExtendedAmount method. Check the proration method and return the appropriate amount.

In your rating code, always explicitly set the ProrationMethod property.

Expiration date

ExpirationDate

The end date for the date range of this cost.

In your rating code, always explicitly set the ExpirationDate property.

Number days in rated term

NumDaysInRatedTerm

The number of total days in a standard term, which PolicyCenter uses to determine the term amount. In other words, this value helps PolicyCenter prorate the term amount by comparing the number days in rated term to the effective and expiration dates. For example, 365 for a standard year term.

In your rating code, always explicitly set the NumDaysInRatedTerm property.

Amount

ActualAmount StandardAmount OverrideAmount

The prorated amount of premium (or other cost) for the effective period, prorated to the effective date range defined by EffectiveDate and ExpirationDate properties. This is the term amount multiplied by the total effective days, divided by the number of days in the rated term (the property NumDaysInRatedTerm).

In your rating code, set the property to one of the following settings.

  • ActualAmount – It depends. The default code computes this during proration after cost merging. It is only set if it is not yet set. Always set explicitly for basis-scalable costs that are not prorated. Always set explicitly if cost’s OverrideAmount was set, which means, the ActualAmount was overridden. An external rating engine might set ActualAmount explicitly to prevent merging and proration for some reason.
  • OverrideAmount – Set only if the rating line supports overrides.
  • StandardAmount – It depends. If overrides are supported, then when initial rating completes, StandardAmount must have been set. If StandardTermAmount is set, the default code computes this property during proration after cost merging. The code only sets this property if it is not set. Always set explicitly for basis-scalable costs that are not prorated. An external rating engine might set StandardAmount explicitly to prevent merging and proration for some reason.

If the standard cost amounts (StandardAmount) are supposed to be prorated (derived from the term amount), then do not set the StandardAmount or ActualAmount properties. In the base configuration, the rating engine sets these properties. If null, the rating engine updates these properties in the updateAmountFields method in the gw.rating.CostData class.

The ActualAmount property is very important. The property’s value is what PolicyCenter actually charges the insured for this cost.

Rate amount type

RateAmountType

A typelist value that distinguishes between premium costs and non-premium costs. For example, this classifies a cost as one of the following types.

  • Tax/surcharge
  • Standard premium
  • Non-standard premium

You can optionally set the RateAmountType property. The default value is StdPremium, which represents a standard premium, typically is correct. Only change this for costs on reporting policies.

Subject to reporting

SubjectToReporting

Will this cost be part of premium reporting for this policy if the policy supports premium reporting? If so, this value is true. Otherwise, false. The typical case for a policy is to not use premium reporting. If the policy does not use premium reporting, PolicyCenter ignores this property.

Although much less common, some policies do use premium reporting, such as United States workers’ compensation payroll reporting policies. For such cases, setting this property to true indicates that the given cost is not billed up front, in other words at the time of issuance. Instead, the cost might only contribute to the calculation of a required initial deposit. Later, when the premium reports complete, then PolicyCenter bills premiums for this cost. If the value of this property is false, then PolicyCenter bills this cost up front.

You can optionally set the SubjectToReporting property. The default value false typically is correct. Only change this for costs on reporting policies.

Overridable

Overridable

Can this cost be overridden by editing this cost in the Premium Overrides screen? If this property is false, then PolicyCenter prevents users from editing it.

Prevent overriding in the following cases.

  • Costs that must never be overridden, such as altering a tax rate.
  • Costs for which the value is already configurable by a user somewhere else. For example, the schedule credit is already a discount cost. There is already a place in the application to edit the discount rate. You do not want a user to override that on the general purpose premium overrides page. Instead, it is best to edit that value in the proper more specific place in the user interface.

The default is true.

Explicitly set the Overridable property if you do not want the default value (true). A rating engine can set the value on a specific cost if the line supports overrides but wants a particular cost to disallow overrides.

Charge pattern

ChargePattern

A division that determines how to combine (sum) the transactions that relate to this cost before sending it to billing. The charge pattern often correlates with the rate amount type (RateAmountType) property.

In your rating code, always explicitly set the ChargePattern property.

Charge group

ChargeGroup

Another optional subcategorization for costs.

In your rating code, always explicitly set the ChargeGroup property.

Override reason

OverrideReason

An explanation for why the user overrode this cost. The value is descriptive only. PolicyCenter does not use it to calculate premiums.

Explicitly set the overrideReason property only if the rating line supports overrides.

Merge as basis scalable

MergeAsBasisScalable

Specifies whether during cost merging, whether to prorate the basis value based on the time length.

Never explicitly set the MergeAsBasisScalable property. The property is read-only but non-final. Only override this property in CostData subtypes for basis-scalable costs. By default, it returns false.

Cost key

Key

An internal ID property that PolicyCenter creates on cost objects. Not directly mirrored on cost data objects.

Never explicitly set the Key property. The property is read-only and final. You cannot override it or set it.

Intrinsic type

IntrinsicType

An internal ID property that PolicyCenter creates on cost objects. Not directly mirrored on cost data objects.

Never explicitly set the IntrinsicType property. The property is read-only and final. You cannot override it or set it.