AISA v2.0 / Technical documentation / insprem_pc_v1_1_extract.txt
insprem_pc_v1_1_extract.txt
text · 2012 lines · 46,475 bytes · wiki path 90 Reference/insprem_pc_v1_1_extract.txt · download the raw file · cited from Premium vocabulary
Same folder: pc_agent_9951_artifact_extract.txt
AISA Next reference extract
===========================
Source document : InsPrem_PC.docx - "Premium P&C (V1.1)", the premium-calculation specification
the Product Configurator is built against (title page dated 08.09.2026).
Extracted : 08.09.2026, from word/document.xml - paragraphs and table cells in document
order, heading levels kept as markdown hashes. Tables lose their column
boundaries: a table reads as one cell per line, in row order.
Images : 3 figures in the source are NOT in this extract; open the .docx for those.
Why it is here : the wiki cites this document for the premium vocabulary
(10 Architecture/20 Configuration/Premium Vocabulary.md). tmp/ is not tracked,
so the citation needs a tracked artefact - this file is it.
Status : a specification of how premium SHOULD work. It carries recorded defects and
contradicts the live database in at least two places - see 90 Reference/
Schema Quirks.md section 8. Take the words from it; verify every column.
----------------------------------------------------------------------------------------------
Premium P&C
(V1.1)
September 8, 2026
September 8, 2026
9/8/26
Table of Content
1. Introduction4
2. Premium definitions4
3. Premium components5
3.1. Base premium5
3.2. Base premium example – Casco6
3.3. Loading and Discounts7
3.4. Discounts and loadings example Casco9
3.5. Taxes and fees10
3.6. Written premium after taxes and fees – example10
4. Calculation11
4.1. Premium factors11
4.2. Intermediate calculations11
4.3. Short rates11
4.3.1 Short Rate Table Method11
4.3.2 Short Rate Pro Rata Method11
4.4. Written-off premiums and refunds12
4.4.1 Written-off examples12
4.5. Renewal premium rules14
4.6. Seasonal premiums14
4.7. Policy payment plan calculations14
4.7.1 Payment plan for policy – first annex14
4.7.2 Payment plan for annex – premium increase15
4.7.3 Payment plan for annex – premium decrease17
4.7.4 Payment plan for annex – policy cancellation19
4.8. Rounding21
5. Calculation results21
5.1. Policy tables21
5.2. Mapping21
5.3. Pol_prem_rate21
5.3.1 Base premium21
5.3.2 Loadings, discounts, taxes and fees23
5.4. Pol_prem23
5.4.1 Pol_prem_rate update23
5.4.2 Pol_prem filling up24
6. Annex premiums - pol_prem data25
6.1. Inherited from previous annex25
6.1. New premium25
7. Policy payment plan28
7.1. generate records in POL_PPLAN – policy (first annex) SR_ANNEX_ID_PREV IS NULL29
7.2. generate records in POL_PPLAN – annexes - SR_ANNEX_ID_PREV IS NOT NULL32
8. Annex premium calculation35
8.1. New covers35
8.2. Discontinued covers35
8.3. Changed covers35
8.4. Write off and Annex premium36
9. Appendix A – Examples39
9.1. Bulstrad Rating – Casco (Bonus casco)39
9.1.1 Base Premium39
9.1.2 Loadings40
9.1.3 Discounts43
9.1.4 Limitations43
September 8, 2026
September 8, 2026
# Introduction
Тhe document describes an algorithm for calculating a non-life insurance premium. The specifics of health and life insurance calculations are not described in this document.
# Premium definitions
Written premium - A written premium is the total amount customers are required to pay for insurance coverage on policies issued by a insurance company(IC) during a specific period of time.
Net premiums written is the sum of premiums written by an insurance company over the course of a period, less premiums ceded to reinsurance companies, plus any reinsurance assumed. Written premiums can be measured as net, a figure that considers associated costs linked to a policy. Net premiums written represents how much of the premiums the company gets to keep for assuming risk.
Gross written premium (GWP) - The net premium value of a policy differs from the policy’s gross premium value, which takes into account the expenses. Types of expenses that a company must take into account include commissions paid to agents, legal expenses associated with settlements, salaries, taxes, acquisition expenses, claim expenses and other general expenses. The amount that PAS algorithm calculates is GWP.
Modal premium (installment) - The policy owner can choose the frequency of paying the premium. Generally, the choices are monthly, quarterly, semi-annually, or annually. Typically, the more frequently PH opt to pay, the greater the total amount will be that is due for the year. The modal premium is increased with so-called modal loading i.e. 12*monthly premium > annual premium. However this is not the usual case in non-life where often 12*monthly premium = annual premium, but the frequency is not limited to monthly, quarterly, semi-annually, or annually only.
Policy payment plan - payment plan or installment plan defines the amount of the premium instalment and the date when the installment is due.
Written off premium – premium that cannot be recognized as revenue because the policy is lapsed, or cancelled. (don't confuse it with Insurance write offs can happen because of a car crash - car write-off - mentioned in our Bot)
Earned premium (EP) - earned premium refers to the premium for the portion of a policy that has expired. It is what the insured party has paid for a portion of time in which the insurance policy was in effect, but has since expired.
Unearned Premium (UPR) - Unearned premium is the premium corresponding to the time period remaining on an insurance policy.
UPR = GWP – EP;
Refund - The most common type of premium refund occurs when the insurance is purchased for a specific time frame but the policyholder cancels it before that time period is up. If the insurance has gone unused, a refund is issued. Refunds are still possible if some money has been paid through the policy, but it is more difficult to acquire one.
Monthly anniversary: Policy begin is 03-Jan then monthly anniversary is 03-feb, or-mar,etc.
Anniversary: Policy begin is 03-Jan-2020 then policy anniversary is 03-Jan-2021, 03-Jan-2022, 03-Jan-2023, etc
Payment anniversary: Policy begins is 03-Jan with quarterly payments then payment anniversary is 03-jan, 03-apr, o3-jul; 03-oct
# Premium components
## Base premium
The amount of premium for an insurance is impacted by several very different factors. Premium calculates for each cover separately, as the factors for the different covers are different. Some of the factors can be used for definition of the so-called base premium, while some are just considered as discounts or loadings on top of the base premium. For example, the premium for car insurance is impacted by:
Driving record – The better the record is, the lower your premium. If PH had accidents or serious traffic violations, the premium is much bigger. PH pays more if he/she is a new driver without an insurance track record.
How much the car is used – The more miles the PH drive, the more chance for accidents so PH pays more.
Location– Due to different rates of vandalism, theft and accidents between big cities and small towns the rate can be very different for a different locations. Parking area: (on the street or in a secure garage). An anti-theft features can be considered for a discount.
Driver age – In general, mature drivers have fewer accidents than less experienced drivers, particularly teenagers. Insurers generally charge more if teenagers or young people below age 25 drive your car.
Gender – Statistically, women tend to get into fewer accidents, have fewer driver-under-the-influence accidents (DUIs) and—most importantly—have less serious accidents than men. So women often pay less for auto insurance.
The car – The cost of the car is a major factor in the cost to insure it. Other variables include the likelihood of theft, the cost of repairs, its engine size and the overall safety record of the car.
Different companies use different factors for one and the same coverage, and also one company may have one factor included in the base premium while another company may have the same factor defined as a discount.
Consider the case when base premium includes: ‘How much the car is used’, ‘The car engine size’,
The rate can be defined as:
Percent
Promille
Lumpsum
Per day (travel)
Per-mile (car insurance)
The premium rate (when it is percent/ promille) can be applied on:
Insured value
Object Market value
Revenue from previous year (not applicable for personal insurance)
Sum of some other covers premium (for life only)
others
## Base premium example – Casco
Annual Mileage
Engine power (HP)
Rate IV%
Up to 10000
Up to 100
5.5
10000 - 20000
Up to 100
6
Above 20000
Up to 100
6.5
Up to 10000
101 - 200
5.7
10000 - 20000
101 - 200
6.2
Above 20000
101 - 200
6.7
Up to 10000
201 - 300
5.9
10000 - 20000
201 - 300
6.4
Above 20000
201 - 300
6.9
Up to 10000
Above 300
6.1
10000 - 20000
Above 300
6.5
Above 20000
Above 300
7.1
Car definition: The car is 2010 Hyundai Genesis – 306 HP
Mileage is 20000
Therefore, the rate is 6.5
Car Market value is: 20,000 EUR and this will be the Insured Value
Base Premium = IV * rate/100 = 20,000*6.5/100 = 1300 EUR
## Loading and Discounts
The amounts of discounts / loadings are kept separately. The way of calculation and the order of calculation is defined for each product. Loadings can be:
Percent of the base premium
Promille of the part of IV which is above a certain amount (applicable for group life and health)
A formula that defines an amount (life insurance)
Lump sum
Discounts for P&C are usually percent of the base premium.
Discounts and loadings can be calculated automatically or can be given by the underwriter manually. Agents also can give some manual discounts – usually at the expense of the commission.
Discounts can have limits like:
Maximum discount value for a given discount
Maximum total discount value for a cover
Maximum total discount value for an object
Maximum total discount value for the policy
Typically, there are no limitations for loadings, but is better to have the possibility to restrict them too.
The discounts that have to be processed differently and need to be marked as such kind of discounts are:
No claim bonus (NCB) – there are 3 types
NCB – applicable on renewal if PH has no claims in the preceding years – i.e. clean claim record
NCB – that can be granted to a new a client, but the discount becomes payable on first claim
NCB – the discount amount is refunded to the client at the end policy if no claims are registered during the policy period.
Commercial discount – Given by underwriter or sales person for a non-risk reason – for example ‘Volume Discount’ given if the PH purchases more than one policy – let’s say Casco and property
Discount at expense of the commission – there should be a check that this discount is not bigger than commission and this discount should not participate in restrictions for the total discount value
Discounts and loadings can be defined at level on:
Policy
Insured object
Cover
There are two basic approaches for applying the discounts and loadings to the base premium:
Multiple: Тhe discounts are multiplied
If there are 2 discounts 10% and 5 % the calculation is: P = {BP-(BP x 0.1)}( 1 - 0.05) = (1 – 0.1) * (1 – 0.05) * BP
Sum: the discounts are added up
If there are 2 discounts 10% and 5 % the calculation is: P = BP-((BPx0.1) + (BPx0.05)) = (1 – 0.1 – 0.05) * BP
The order of applying is important when especially when both types are combined.
## Discounts and loadings example Casco
#### Driver age (DrAge)
Age
Loading
Up to 25
20
26 -30
10
Above 30
0
#### Driving record (DrRec)
Claims in prev. year
Loading
3
25
2
15
1
5
0
0
#### Location – parking (LPr)
Parking area
Discount
Secure garage
15
Home garage
10
On the street
0
#### Location - driving area (LDrA)
Parking area
Discount
Village
15
Small town
10
City
0
#### Written premium after discounts and loadings
Calculation parameters:
Base premium: 1300 EUR
Driver age: 29 – DrAge Loading = 30% (0.3) (calculation way multiply) Gale’s note: isn’t it 10%
Driving record: 1 claim DrRec Loading = 5% (0.05) (calculation way multiply)
Location parking – Home garage LPr discount = 10% (0.1) (calculation way sum)
Location driving – Village LDrA discount = 10% (0.1) (calculation way multiply) Gale’s note: isn’t it 15%
Variant (A) where the order of calculation is: DrRec, DrAge, LDrA, LPr
Written premium = BP * (1+ DrRec) * (1+ DrAge) * (1 - LDrA) - (BP*LPr)
Written premium = 1300 * 1.05 * 1.3 * 0.9 - (1300*0.1) = 1467 Georgi: It should be 1597.05?
Variant (B) where the order of calculation is: LPr, DrRec, DrAge, LDrA,
Written premium = BP * (1+ DrRec) * (1+ DrAge) * (1- LDrA) * (1- LPr)
Written premium = 1300 *0.9* 1.05 * 1.3 * 0.9 = 1437
## Taxes and fees
The amounts of taxes and fees are kept separately. Some of them are not refundable, which is considered during calculation of premiums for annexes or policy cancellation. Some of them are payable with the first installment – i.e., cannot be paid on installments.
Taxes and fees can be defined at level on:
Policy
Insured object
Cover
Premium fees and taxes can be many and varied. Only the more common ones are described here.
A lump sum tax/fee at policy level
Tax defined as percent on written premium
## Written premium after taxes and fees – example
Written premium before taxes is 1437.
In the example taxes are:
10 EUR stamp tax – nonrefundable – payable with the first instalment
20 EUR policy fee – refundable payable with the first installment
2% insurance premium tax where the tax base is the total policy premium – payable on instalments
Final written premium is 1437*1.02 + 10 + 20 = 1495.74
# Calculation
## Premium factors
The factors that affect the premium can be found in any table that is part of the policy definition. In addition, it may be necessary to calculate, for example, the number of claims paid in the previous year or to calculate the ratio between the premium paid and the claims paid. The factors cannot be defined in advance. Each company uses a different set of them to determine their premiums. This set can be changed frequently enough and at least once a year.
## Intermediate calculations
There are premium calculations that are made in stages. Then an intermediate rounding is usually done. For such a cases, a specific program for the corresponding product is made.
## Short rates
Short rates always reduce the amount of refund if policy is cancelled early and increase the premium for policies purchased for a period less than one year.
### Short Rate Table Method
Short rates are defined for a periods less than one year for products that are purchased for a such a small periods – travel insurance, MTPL for regions where local MTPL is valid, etc.
On example for such rates is:
Period
Premium
1 month
200
3 months
600
6 months
800
12 months
1200
If the customer has policy for one year and cancel it at the end of the third month, the refund will be 600 instead of 900 if the calculation is proportional.
### Short Rate Pro Rata Method
Insurers may use a pro rata short rate by calculating the premium for part of a year and reducing any refund by a set proportion such as 10 percent. For example if the annual premium is 1200 and policy is cancelled in the middle, the refund will be 540 instead of 600.
## Written-off premiums and refunds
Upon termination of the policy and / or coverage, the insurer may only retain the premium earned. The unearned premium is returned to the customer. The calculation of the premium earned may vary depending on the policy change. When the whole policy is cancelled the cases could be:
Proportional monthly
Proportional daily
According to short rates
When the calculation is because of a policy change the cases are:
Proportional monthly
Proportional daily
### Written-off examples
The examples below explain the different calculation methods
Policy data:
From 01-01-2020 to 31-12-2020
Cancellation date: 01-06-2020 - i.e. the policy is in force for 5 months
Annual premium: 1495.74
Where
10 EUR stamp tax – non refundable
20 EUR policy fee – refundable
Payments are as follows:
Due date
Instalment
Description
01-01-2020
396.45
paid
01-04-2020
366.43
paid
01-07-2020
366.43
not paid
01-10-2020
366.43
not paid
Stamp tax should be excluded from calculation, because it is not refundable and paid with the first installment
Two values should be calculated:
Written-off premium – i.e. unearned premium, where base of calculation is:
Annual premium – stamp tax: 1495.74 - 10 = 1485.74
Refund – i.e. unearned paid premium, where base of calculation is:
Installment 1 + installment 2 – stamp tax – policy fee : 396.45 + 366.43 – 10 -11.70 = 732,88
policy fee (20) is calculated separately, because is fully paid.
#### Proportional daily calculation
Earned period is: 152 days (‘31-12-2020’+1 – ‘01-06-2020’) Cancellation date - policy begin
Unearned period is: 214 days (‘31-12-2020’+1 – ‘01-06-2020’) Policy end date – cancellation date
Policy duration: 366 days (‘31-12-2020’+1 – ‘01-01-2020’) Policy end date – policy begin
Unearned paid period is: 30 days (’01-07-2020’+1 – ‘01-06-2020’) Next due date – cancellation date
Paid period is: 182 days (’01-07-2020’+1 – ‘01-01-2020’) Next due date – begin date
Write-off = 1485.74 * 214/366 = 868,7114
Refund without the policy fee = 732,88 *30/182 = 120.80
Refund for the policy fee = 20 * 214/366 = 11.70
Premium refund is: 132.50
#### Proportional monthly calculation
Earned period is: 5 months - months between (Cancellation date, policy begin)
Unearned period is: 7 month between (Policy end date, cancellation date)
Policy duration is: 12 months between (Policy end date, policy begin)
Unearned paid period is: 1 month between (Next due date, cancellation date)
Paid period is: 6 months between (Next due date, begin date)
Write-off = 1485.74 * 7/12 = 866,6817
Refund without policy fee = 732,88 *1/6 = 122.15
Refund policy fee = 20 * 7/12 = 11.66
Premium refund is: 133.81
#### Short rates
Earned period is: 5 months - months between (Cancellation date, policy begin)
Unearned period is: 7 months between (Policy end date, cancellation date)
Policy duration is: 12 months between (Policy end date, policy begin)
Unearned paid period is: 1 month between (Next due date, cancellation date)
Paid period is: 6 months between (Next due date, begin date)
Let’s say that according to the short rate the premium for 6 months 900. (150/month)
Write-off = 1485.74 -900 = 585.74
Refund without policy fee = 0
Refund policy fee = 0
Premium refund is: 0
## Renewal premium rules
The IC might (and usually do annually) change the rates. Therefore, on renewal the base premium is usually bigger. Therefore, when renewed, the base premium is usually higher. In some countries, the renewal policy premium may not be higher by more than 10% (just an example) than the previous year's premium. In addition to a certain percentage, they can also define a cap - for example, not more than 300 Euros.
However, this rule does not apply if the premium is increased because the risk has changed due to the customer's fault - for example, she has moved to a more risky neighborhood.
Therefore, the algorithm for calculating the premium on renewal must first determine the reason for the increase, and if it is due only to the rates raised, only then to apply the restrictions.
## Seasonal premiums
The approach is used for insured objects that have different risk in different seasons of the year. For example, boats, snowboards, leisure house, etc. Two approaches are used:
the premium for the corresponding cover has different rates for different periods;
the premium is flat, but the earned premium is not calculated proportionally.
Both approaches affect the calculation of the written-off premium in the annexes. This approach is not used with Casco insurance. However in Casco insurance, there is another case (for example in Russia) that is similar to seasonal premium - a declaration for not using the car for a certain period. In this case, the collision coverage is not charged for this period. In both cases there are periods that have different premiums. Those periods are defined on object level and might affect premiums of all covers or some covers. For seasonal premiums the periods are predefined and can be loaded in policy automatically, while for the second case the periods are defined by policy holder. The data for such periods is defined in pol_object_values
## Policy payment plan calculations
### Payment plan for policy – first annex
For quarterly payments and policy effective date on 01-JAN-2020 the policy payment plan is:
Due date
Instalment
Description
01-01-2020
396.45
366.45 + 10+20 where 366.45= 1437*1.02/4 + rounding difference
01-04-2020
366.43
1437*1.02/4
01-07-2020
366.43
1437*1.02/4
01-10-2020
366.43
1437*1.02/4
### Payment plan for annex – premium increase
Consider the case:
Policy premium (first annex) is 1250 where 50 is tax payable with the first instalment), payable on 4 installments; policy begin is 1-1-2020
Initial payment plan is:
Due date
Instalment
annex
01-01-2020
350
1
01-04-2020
300
1
01-07-2020
300
1
01-10-2020
300
1
#### Option a: annex begin 01-07-2020 premium increase is 600
Due date
Instalment
annex
01-01-2020
350
1
01-04-2020
300
1
01-07-2020
300
1
01-07-2020
300
2
01-10-2020
300
1
01-10-2020
300
2
#### Option b: annex begin 01-06-2020 premium increase is 700
700/7 – 100 installment for one month
Due date
Instalment
annex
01-01-2020
350
1
01-04-2020
300
1
01-06-2020
100
2
01-07-2020
300
1
01-07-2020
300
2
01-10-2020
300
1
01-10-2020
300
2
#### Option c: annex begin 01-06-2020 premium increase is 200
200/7 – 28.6 installment for one month
Due date
Instalment
annex
01-01-2020
350
1
01-04-2020
300
1
01-06-2020
28.60
2
01-07-2020
300
1
01-07-2020
85.70
2
01-10-2020
300
1
01-10-2020
85.70
2
#### Option d: annex begin 01-06-2020 premium increase is 200
200/7 – 28.6 installment for one month
Due date
Instalment
annex
01-01-2020
350
1
01-04-2020
300
1
01-06-2020
28.60
2
01-07-2020
300
1
01-07-2020
85.70
2
01-10-2020
300
1
01-10-2020
85.70
2
#### Option f annex begin 15-06-2020 premium increase is 200
200/200 – 1 installment for a day
01-01-2021 – 15-06-2020 = 200 days
Due date
Instalment
annex
01-01-2020
350
1
01-04-2020
300
1
15-06-2020
15
2 (15 days in June)
01-07-2020
300
1
01-07-2020
92.5
2 (200-15)/2
01-10-2020
300
1
01-10-2020
92.5
2
### Payment plan for annex – premium decrease
Consider the case :
Policy premium (first annex) is 1250 where 50 is tax payable with the first instalment) , payable on 4 installments; policy begin is 1-1-2020
Initial payment plan is:
Due date
Instalment
annex
01-01-2020
350
1
01-04-2020
300
1
01-07-2020
300
1
01-10-2020
300
1
#### Option a: annex begin 01-07-2020 premium decrease is 600
Due date
Instalment
annex
01-01-2020
350
1
01-04-2020
300
1
01-07-2020
300
1
01-07-2020
-300
2
01-10-2020
300
1
01-10-2020
-300
2
#### Option b: annex begin 01-06-2020 premium decrease is 700
Due date
Instalment
annex
01-01-2020
350
1
01-04-2020
300
1
01-06-2020
-100
2 refund
01-07-2020
300
1
01-07-2020
-300
2
01-10-2020
300
1
01-10-2020
-300
2
#### Option c: annex begin 01-06-2020 premium decrease is 200
Due date
Instalment
annex
01-01-2020
350
1
01-04-2020
300
1
01-07-2020
300
1
01-07-2020
-100
2
01-10-2020
300
1
01-10-2020
-100
2
#### Option d: annex begin 01-06-2020 premium decrease is 200
Due date
Instalment
annex
01-01-2020
350
1
01-04-2020
300
1
01-07-2020
300
1
01-07-2020
-100
2
01-10-2020
300
1
01-10-2020
-100
2
#### Option f annex begin 15-06-2020 premium decrease is 200
Due date
Instalment
annex
01-01-2020
350
1
01-04-2020
300
1
01-07-2020
300
1
01-07-2020
-100
2
01-10-2020
300
1
01-10-2020
-100
2
### Payment plan for annex – policy cancellation
Consider the case :
Policy premium (first annex) is 1250 where 50 is tax payable with the first instalment) , payable on 4 installments; policy begin is 1-1-2020
Initial payment plan is:
Due date
Instalment
annex
01-01-2020
350
1
01-04-2020
300
1
01-07-2020
300
1
01-10-2020
300
1
#### Option a) cancellation form effective date 01-01-2020
Due date
Instalment
annex
01-01-2020
350
1
01-01-2020
-300
2
01-04-2020
300
1
01-04-2020
-300
2
01-07-2020
300
1
01-07-2020
-300
2
01-10-2020
300
1
01-10-2020
-300
2
#### Option a) cancellation form 01-07-2020
Due date
Instalment
annex
01-01-2020
350
1
01-04-2020
300
1
01-07-2020
300
1
01-07-2020
-300
2
01-10-2020
300
1
01-10-2020
-300
2
#### Option a) cancellation form 01-06-2020
Due date
Instalment
annex
01-01-2020
350
1
01-04-2020
300
1
01-07-2020
300
1
01-06-2020
-100
2
01-07-2020
-300
2
01-10-2020
300
1
01-10-2020
-300
2
## Rounding
All calculations can be without rounding and kept in the database without rounding (this is applicable for items that never appear on policy) . Rounding can be applied at the end of the calculation phase (base premium, loadings and discounts, taxes) where the difference due to rounding is added to one of the premium items (taxes and fees cannot be used for those differences). For policy payment plan the difference is applied on the first or on the last installment.
# Calculation results
## Policy tables
The tables to be filled in
Pol_prem_rate – premium rating service
Pol_prem – premium calculation service
Pol_pplan – policy plan generation service
## Mapping
## Pol_prem_rate
Policy currency is currency of the object insured value:
Select prm_nvalue, currency
From pol_object_values
Where Prm_code=’IV’ and pol_object_id = <in_object_id>
### Base premium
Base premium is always one record per cover and if the record is there due to previous calculations the service should either delete and create new or should update the record with PREM_TYPE=”BASEPREM’
Pol_prem_rate
Comment
fields coming from policy
POL_PREM_RATE_ID
PK – sequence
POL_COVER_ID
Pol_covers.pol_cover_id
SR_POLICY_ID
Pol_covers.pol_policy_id
SR_ANNEX_ID
Pol_covers.pol_annex_id
VALID_FROM
Pol_covers.begin_date
VALID_TO
Pol_covers.end_date
CURRENCY_RATE
Get rate to valid_from date
To local currency
CURRENCY
Policy currency (*)
If premium rate is defined as a lump sum, then the field is filled by rating service
Default values for base premium
SELECTED
‘Y’
CHANGEABLE
‘N’
PREM_TYPE
‘BASEPREM’
PREM_CODE
‘BP’
SEPARATE_ACCOUNT
‘N’
NCB
‘N’
FINST
‘N’
fields coming from rating
RATE
RATE_DIM
AMNT
CURRENCY
Policy currency or rate currency
It is the rate currency when the rate is defined as a lump sum
### Loadings, discounts, taxes and fees
All loadings, discounts, taxes and fees are inserted into Pol_prem_rate by ‘Offering” service.
Тhis service should set up premium corrections (PREM_TYPE <> ‘BASEPREM’ ) values
Pol_prem_rate
Comment
fields to be updated
RATE
Rating service
RATE_DIM
Rating service
AMNT
Premium calculation service
AMNT = RATE_DIM
when the rate is defined as a lump sum
CURRENCY
Policy currency or rate currency
It is the rate currency when the rate is defined as a lump sum
## Pol_prem
### Pol_prem_rate update
The premium calculation service practically generates records in to pol_prem according to pol_prem_rate data.
Before that the service should calculate properly Pol_prem_rate.amnt field. This field contains the annual value for each premium fraction.
Pol_prem_rate
Comment
fields to be updated
AMNT
Premium calculation service
AMNT = RATE_DIM
when the rate is defined as a lump sum
The base premium amount is usually calculated by rating service. The calculation here applies for loadings, discounts and taxes defined as percentage
### Pol_prem filling up
Pol_prem
Comment
fields coming from policy
POL_PREM_ID
PK – sequence
POL_COVER_ID
Pol_covers.pol_cover_id
SR_POLICY_ID
Pol_covers.pol_policy_id
SR_ANNEX_ID
Pol_covers.pol_annex_id
VALID_FROM
Pol_covers.begin_date
VALID_TO
Pol_covers.end_date
CURRENCY_RATE (*)
Get rate to valid_from date
To local currency
From pol_prem_rate
PREM_TYPE
Pol_prem_rate.prem_type
PREM_CODE
Pol_prem_rate.prem_code
AMNT
Pol_prem_rate.amnt
Calculated according to cover period
CURRENCY
Pol_prem_rate.currency
FINST
‘Pol_prem_rate.finst
Constant values
PPINCL
‘N’
The fields are updated by a batch, which transfers to core PAS/Accounting system. When creating new record, the value is ‘N’
ACCINCL
‘N’
# Annex premiums - pol_prem data
## Inherited from previous annex
Before starting any change, the pol_prem table contains all records from previous annex. This is a result of service ‘Open Policy for change’
Case: policy ID = 55 with one object 2 covers (Cover A, Cover B) , begin_date = 01-01-2020, end 31-12-2020
previous annex ID = 1 begin_date = 01-01-2020, end 31-12-2020
Current annex ID = 2 begin_date = 01-07-2020, end 31-12-2020
Pol_Prem before ‘Open Policy for change’
SR_Policy_ID
SR_ANNEX_ID
Cover ID/Code
Prem type
Prem_code
Amnt
Valid From
Valid to
55
1
5511/A
BP
BASEPREM
1200
01-01-2020
31-12-2020
55
1
5511/A
LD
POV_MILEAGE
120
01-01-2020
31-12-2020
55
1
5512/B
BP
BASEPREM
600
01-01-2020
31-12-2020
Policy premium = select sum(amnt) from Pol_Prem where sr_policy_id = 55 and sr_annex_id=1;
Result is: 1920.00
## New premium
Pol_Prem AFTER ‘Open Policy for change’
SR_Policy_ID
SR_ANNEX_ID
Cover ID/Code
Prem type
Prem_code
Amnt
Valid From
Valid to
55
2
5521/A
BP
BASEPREM
1200
01-01-2020
31-12-2020
55
2
5521/A
LD
POV_MILEAGE
120
01-01-2020
31-12-2020
55
2
5522/B
BP
BASEPREM
600
01-01-2020
31-12-2020
55
1
5511/A
BP
BASEPREM
1200
01-01-2020
31-12-2020
55
1
5511/A
LD
POV_MILEAGE
120
01-01-2020
31-12-2020
55
1
5512/B
BP
BASEPREM
600
01-01-2020
31-12-2020
Pol_Prem AFTER premium calculation – case cover B is discontinued – i.e. pure write off
SR_Policy_ID
SR_ANNEX_ID
Cover ID/Code
Prem type
Prem_code
Amnt
Valid From
Valid to
55
2
5521/A
BP
BASEPREM
1200
01-01-2020
31-12-2020
55
2
5521/A
LD
POV_MILEAGE
120
01-01-2020
31-12-2020
55
2
5522/B
BP
BASEPREM
600
01-01-2020
31-12-2020
55
2
5522/B
BP
BASEPREM
-300
01-07-2020
31-12-2020
55
1
5511/A
BP
BASEPREM
1200
01-01-2020
31-12-2020
55
1
5511/A
LD
POV_MILEAGE
120
01-01-2020
31-12-2020
55
1
5512/B
BP
BASEPREM
600
01-01-2020
31-12-2020
Policy premium = select sum(amnt) from Pol_Prem where sr_policy_id = 55 and sr_annex_id=2;
Result is: 1620.00
Annex 1 – Annex 2 = -300
Pol_Prem AFTER premium calculation – case policy cancellation – i.e. pure write off
SR_Policy_ID
SR_ANNEX_ID
Cover ID/Code
Prem type
Prem_code
Amnt
Valid From
Valid to
55
2
5521/A
BP
BASEPREM
1200
01-01-2020
31-12-2020
55
2
5521/A
LD
POV_MILEAGE
120
01-01-2020
31-12-2020
55
2
5522/B
BP
BASEPREM
600
01-01-2020
31-12-2020
55
2
5522/B
BP
BASEPREM
-300
01-07-2020
31-12-2020
55
2
5521/A
BP
BASEPREM
-600
01-07-2020
31-12-2020
55
2
5521/A
LD
POV_MILEAGE
-60
01-07-2020
31-12-2020
55
1
5511/A
BP
BASEPREM
1200
01-01-2020
31-12-2020
55
1
5511/A
LD
POV_MILEAGE
120
01-01-2020
31-12-2020
55
1
5512/B
BP
BASEPREM
600
01-01-2020
31-12-2020
Policy premium = select sum(amnt) from Pol_Prem where sr_policy_id = 55 and sr_annex_id=2;
Result is: 960
Annex 1 – Annex 2 = -960
Pol_Prem AFTER premium calculation – case cover C is added– i.e. pure premium increase
SR_Policy_ID
SR_ANNEX_ID
Cover ID/Code
Prem type
Prem_code
Amnt
Valid From
Valid to
55
2
5521/A
BP
BASEPREM
1200
01-01-2020
31-12-2020
55
2
5521/A
LD
POV_MILEAGE
120
01-01-2020
31-12-2020
55
2
5522/B
BP
BASEPREM
600
01-01-2020
31-12-2020
55
2
5523/C
BP
BASEPREM
500
01-07-2020
31-12-2020
55
1
5511/A
BP
BASEPREM
1200
01-01-2020
31-12-2020
55
1
5511/A
LD
POV_MILEAGE
120
01-01-2020
31-12-2020
55
1
5512/B
BP
BASEPREM
600
01-01-2020
31-12-2020
Policy premium = select sum(amnt) from Pol_Prem where sr_policy_id = 55 and sr_annex_id=2;
Result is: 2420.00
Annex 1 – Annex 2 = 500
Pol_Prem AFTER premium calculation – case cover C is added and B is discontinued – mix – overall the premium is increase
SR_Policy_ID
SR_ANNEX_ID
Cover ID/Code
Prem type
Prem_code
Amnt
Valid From
Valid to
55
2
5521/A
BP
BASEPREM
1200
01-01-2020
31-12-2020
55
2
5521/A
LD
POV_MILEAGE
120
01-01-2020
31-12-2020
55
2
5522/B
BP
BASEPREM
600
01-01-2020
31-12-2020
55
2
5522/B
BP
BASEPREM
-300
01-07-2020
31-12-2020
55
2
5523/C
BP
BASEPREM
500
01-07-2020
31-12-2020
55
1
5511/A
BP
BASEPREM
1200
01-01-2020
31-12-2020
55
1
5511/A
LD
POV_MILEAGE
120
01-01-2020
31-12-2020
55
1
5512/B
BP
BASEPREM
600
01-01-2020
31-12-2020
Policy premium = select sum(amnt) from Pol_Prem where sr_policy_id = 55 and sr_annex_id=2;
Result is: 2120.00
Annex 1 – Annex 2 = 200
Pol_Prem AFTER premium calculation – case cover C is added and B is discontinued – mix – overall the premium is decrease
SR_Policy_ID
SR_ANNEX_ID
Cover ID/Code
Prem type
Prem_code
Amnt
Valid From
Valid to
55
2
5521/A
BP
BASEPREM
1200
01-01-2020
31-12-2020
55
2
5521/A
LD
POV_MILEAGE
120
01-01-2020
31-12-2020
55
2
5522/B
BP
BASEPREM
600
01-01-2020
31-12-2020
55
2
5522/B
BP
BASEPREM
-300
01-07-2020
31-12-2020
55
2
5523/C
BP
BASEPREM
200
01-07-2020
31-12-2020
55
1
5511/A
BP
BASEPREM
1200
01-01-2020
31-12-2020
55
1
5511/A
LD
POV_MILEAGE
120
01-01-2020
31-12-2020
55
1
5512/B
BP
BASEPREM
600
01-01-2020
31-12-2020
Policy premium = select sum(amnt) from Pol_Prem where sr_policy_id = 55 and sr_annex_id=2;
Result is: 1820.00
Annex 1 – Annex 2 = -100
After new premium calculation we can have 2 options:
a) to make a premium for premium increase
b) to make a premium plan for premium decrease
# Policy payment plan
The service works after the premium for the policy (annex) is calculated. There are two cases that need to be considered:
a) payment plan for policy (in our case this is premium for the first annex)
b) premium plan for each subsequent annex after the first one
## generate records in POL_PPLAN – policy (first annex) SR_ANNEX_ID_PREV IS NULL
Input Parameters:
SR_POLICY_ID
SR_ANNEX_ID
1. Delete POL_PPLAN where sr_annex_id = <in_annex_id> and sr_policy_id = <in_policy_id> - to clean from previous calculation
2. Select sr_annex_id_prev, begin_date, end_date, p_frequency
from pol_anexes where policy_id = <in_policy_id> and sr_annex_id = <in_annex_id>
How to get all necessary variables by SR_POLICY_ID and SR_ANNEX_ID:
In_First_Due_Date -
In_Policy end date
In_First_Install_AMNT
In_AMNT
In_CURRENCY
In_Installments
Flag – policy plan or annex plan – when sr_annex_id_prev is NULL - it is policy
Select SELECT
begin_date, -- = In_First_Due_Date
end_date, -- = In_Policy end date
sr_annex_id_prev, -- if is null this is the first annex – algorithm A
p_frequency -- = In_Installments
FROM pol_annexes
Where sr_policy_id = SR_POLICY_ID
And sr_annex_id = SR_ANNEX_ID
Premium:
Policy with one currency – select distinct currency =1
Or
select sum(amnt), currency , group by currency = one retrieved record
Policy with more than one currency : select distinct currency > 1
Or select sum(amnt), currency , group by currency – more than one retrieved record
The policy has one currency
Get amount and currency
The policy has more than one currency
The currency is local currency
Get amount only
In_AMNT
Select sum (amnt), currency
From pol_prem
Where sr_policy_id = SR_POLICY_ID
And sr_annex_id = SR_ANNEX_ID
And NVL(finst,N) = N
Group by currency
Select sum (amnt*currency_rate)
From pol_prem
Where sr_policy_id = SR_POLICY_ID
And sr_annex_id = SR_ANNEX_ID
And NVL(finst,N) = N
In_First_Install_AMNT
Select sum (amnt), currency
From pol_prem
Where sr_policy_id = SR_POLICY_ID
And sr_annex_id = SR_ANNEX_ID
And NVL(finst,N) = Y
Group by currency
Select sum (amnt*currency_rate)
From pol_prem
Where sr_policy_id = SR_POLICY_ID
And sr_annex_id = SR_ANNEX_ID
And NVL(finst,N) = Y
IF sr_annex_id_prev is not NULL
THEN
Get Local_prev_annex_amnt:
Select sum (amnt), currency
From pol_prem
Where sr_policy_id = SR_POLICY_ID-
And sr_annex_id = sr_annex_id_prev
And NVL(finst,N) = N
Group by currency
Get Local_prev_annex_fInst_amnt:
Select sum (amnt), currency
From pol_prem
Where sr_policy_id = SR_POLICY_ID
And sr_annex_id = sr_annex_id_prev
And NVL(finst,N) = Y
Group by currency
Else
Local_prev_annex_amnt := 0;
Local_prev_annex_fInst_amnt := 0;
END IF;
In_AMNT := In_AMNT - Local_prev_annex_amnt;
In_First_Install_AMNT := In_First_Install_AMNT - Local_prev_annex_fInst_amnt;
If < in_Installments = 1
Then
Insert into pop_pplan:
POL_PLAN_ID
Sequence
SR_POLICY_ID
<In_policy_id>
SR_ANNEX_ID
<In_Annex_id>
Amnt_type
‘DUE’
Due_date
<In_due_date>
amnt
In_amnt+in_first_install
Currency
In_currency
Else
If it is policy plan (i.e. no records in Pol_pplan for this policy) sr_annex_id_prev IS NULL
Then
– algorithm (A)
Else
– algorithm (B)
End if;
End if;
Algorithm (A for policy – i.e. first annex):
duration = ROUND(months between (in_Policy end date , in_first_due_date),0)
If duration <=1
Then
Make one record same as when installments = 1
Else
Installment duration = trunc (duration /in_ installments, 0) ;i.e if not an integer, remove the fraction
Installment amount = round( in_amnt / in_installments,2); -- 2 should be a parameter depend on currency
Difference = in_amnt - Installment amount * in_installments;
First_instalment_amnt = Installment amount + Difference + in_First_Install_AMNT;
Any_other_instalmnet = Installment amount;
Plan_instalment_amnt = First_instalment_amnt;
Plan_due_date = in_First_Due_Date
For i = 1 (1) .. installments
Loop
Insert into pop_pplan:
POL_PLAN_ID
Sequence
SR_POLICY_ID
<In_policy_id>
SR_ANNEX_ID
<In_Annex_id>
Amnt_type
‘DUE’
Due_date
Plan_due_date
amnt
Plan_instalment_amnt
Currency
In_currency
Plan_instalment_amnt = Any_other_instalmnet;
Plan_due_date = add months (Plan_due_date , Installment duration);
End loop;
End if;
End of algorithm (A):
## generate records in POL_PPLAN – annexes - SR_ANNEX_ID_PREV IS NOT NULL
Algorithm (B for annexes ):
1. get next due date
Next_due_date = select due_date
from pol_plan
where sr_policy_id = in_policy_id
and due_date >= in_first_due_date
and sr_annex_id = previous annex ID
order by due_date
If Next_due_date is null
Then
Make one installment with due date first_due_date
POL_PLAN_ID
Sequence
SR_POLICY_ID
<In_policy_id>
SR_ANNEX_ID
<In_Annex_id>
Amnt_type
‘DUE’
Due_date
<In_due_date>
amnt
In_amnt+in_first_install
Currency
In_currency
Else
--Local_fisrt_inatall = 0;
If in_due_date < Next_due_date
Then
Days_upTo_NextDueDate = Next_due_date – in_due_date (i.e. annex begin date)
Days_upTo_PolicyEnd = Policy_end_date - in_due_date;
FirstAmntInstall =ROUND( <In_Amnt >* Days_upTo_NextDueDate/ Days_upTo_PolicyEnd,2);
Make first install
POL_PLAN_ID
Sequence
SR_POLICY_ID
<In_policy_id>
SR_ANNEX_ID
<In_Annex_id>
Amnt_type
‘DUE’
Due_date
<In_due_date>
amnt
In_FirstAmntInstall + in_first_install
Currency
In_currency
Local_fisrt_inatall = 0;
Else
FirstAmntInstall = 0;
Local_fisrt_inatall = in_first_install;
End if;
RestAmnt = in_amnt – FirstAmntInstall;
Number of installments = number of previous annex installments from in_due_date
Num_instalmnets = select count(1)
from pol_plan
where sr_policy_id = in_policy_id
and due_date >= in_first_due_date
and sr_annex_id = previous annex ID;
Installment amount = round( (RestAmnt) - / Num_instalmnets 2); -- 2 should be a parameter depend on currency
Difference = RestAmnt - Installment amount * installments;
First_instalment_amnt = RestAmnt + Difference + Local_fisrt_inatall ;
Any_other_instalmnet = Installment amount;
Loopinstalmnet = First_instalment_amnt;
LOOP for all due dates
Select due_date -
from pol_plan
where sr_policy_id = in_policy_id
and due_date >= in_first_due_date
and sr_annex_id = previous annex ID
order by due_date desc;
POL_PLAN_ID
Sequence
SR_POLICY_ID
<In_policy_id>
SR_ANNEX_ID
<In_Annex_id>
Amnt_type
‘DUE’
Due_date
Selected due date
amnt
LoopINstalmnet
Currency
In_currency
Loopinstalmnet = Any_other_instalmnet;
END LOOP;
End if;
End of algorithm (B):
# Annex premium calculation
Input parameters:
SR_POLICY_ID,
SR_ANNEX_ID;
Necessary variables: Annex begin (New_Begin_date) and previous annex ID (Prev_Annex_id)
Select SELECT
begin_date, -- = New_Begin_date
sr_annex_id_prev, -- Prev_Annex_id
FROM pol_annexes
Where sr_policy_id = SR_POLICY_ID
And sr_annex_id = SR_ANNEX_ID
## New covers
New covers are:
Select pol_cover_id
from pol_covers
Where sr_policy_id = SR_POLICY_ID
And sr_annex_id = SR_ANNEX_ID
And selected = ‘Y’
And prev_cover_id is null
## Discontinued covers
Discontinued covers are:
Select pol_cover_id
from pol_covers
Where sr_policy_id = SR_POLICY_ID
And sr_annex_id = SR_ANNEX_ID
And selected = ‘N’
And prev_cover_id is NOT null
And selected of the previous cover is ‘Y’
## Changed covers
Select pol_cover_id
from pol_covers
Where sr_policy_id = SR_POLICY_ID
And sr_annex_id = SR_ANNEX_ID
And selected = ‘Y’
And prev_cover_id is NOT null
And cover_substatus = ‘CHANGED’ (*)
(*) update in pol_object_values should update all related
covers and to Set cover_sub_status=’CHANGED’
Update in pol_cover_def, pol_cover_benefits,
should update the cover – Set cover_sub_status=’CHANGED’
## Write off and Annex premium
Loop for all covers
CASE (CoverType, new or discontinued or changed)
WHEN New Cover :
do the same as policy premium calculation where valid_from=pol_annex.begin_date;
WHEN Discontinued:
LOOP for all records in pol_prem for that cover except non refundable
where pol_cover_id= main.loop.cover_id
and nvl(refundable ,’Y’)=’N’
Add record in pol_prem – Table (A);
END LOOP;
WHEN CHANGED: /* actually it is ‘New Cover’+ ‘Discontinued but with non refundable too’*/
do the same as policy premium calculation where valid_from=pol_annex.begin_date
LOOP for all records in pol_prem for that cover
where pol_cover_id= main.loop.cover_id
Add record in pol_prem – Table (A);
End loop;
END CASE;
End loop;
Table (A)
Pol_prem_id
Sequence
Pol_cover_id
Same cover ID
Sr_policy_id
Same policy ID
Sr_annex_id
Same annex ID
Prem_type
Same Prem Type
Prem_code
Same Prem Code
amnt
(-)Amnt *( Valid_to – annex begin date)/ (valid_to – valid_from))
If annex is on payment anniversary better to do monthly adjustment:
(-)Amnt *(months_between( Valid_to, annex begin date)/ months_between (valid_to, valid_from))
Currency_rate
Same currency rate
Valid_from
Annex begin date
Valid_to
Same end date
Currency
Same currency
# List of plugins, where customization can be enabled
Functionality
Options
Short rates calculation
Proportional - Monthly rounding
Proportional - Daily rounding
Special short rate table
Write-offs calculation
Proportional - Monthly rounding
Proportional - Daily rounding
Special short rate table
Rounding differences
First install
Last install
How to apply discounts and loadings
Sum, multiple, mix
How to apply taxes
Very specific especially in Lat Am
Payment plan after an annex
Too may options. We will have just one out of the box (described above)
# Appendix A – Examples
## Bulstrad Rating – Casco (Bonus casco)
### Base Premium
(agricultural and construction are not included)
Car Type
Car Age
Seats
Tonnage
Rate
% IV
Car
0-3
0-16
6.42
Car
Above 3 up to 5
0-16
7.59
Car
Above 5 up to 7
0-16
8.54
Car
Above 7 up to 10
0-16
9.64
Car
Above 10 up to 13
0-16
11.76
Car
Above 13
0-16
10.7
jeep
0-3
0-16
6.42
jeep
Above 3 up to 5
0-16
7.59
jeep
Above 5 up to 7
0-16
8.54
jeep
Above 7 up to 10
0-16
9.64
jeep
Above 10 up to 13
0-16
11.76
jeep
Above 13
0-16
10.7
truck
0-3
0-3 up to 3.5
6.42
truck
Above 3 up to 5
0-3 up to 3.5
7.59
truck
Above 5 up to 7
0-3 up to 3.5
8.54
truck
Above 7 up to 10
0-3 up to 3.5
9.64
truck
Above 10 up to 13
0-3 up to 3.5
11.76
truck
Above 13
0-3 up to 3.5
10.7
bus
0-3
Above 16
2.46
bus
Above 3 up to 5
Above 16
2.77
bus
Above 5 up to 7
Above 16
3.10
bus
Above 7 up to 10
Above 16
3.43
bus
Above 10 up to 13
Above 16
4.27
bus
Above 13
Above 16
3.68
truck
0-3
Above 3.5
2.46
truck
Above 3 up to 5
Above 3.5
2.77
truck
Above 5 up to 7
Above 3.5
3.10
truck
Above 7 up to 10
Above 3.5
3.43
truck
Above 10 up to 13
Above 3.5
4.27
truck
Above 13
Above 3.5
3.68
### Loadings
Driver are:
Age
Loading (%)
18-25
10
26-30
5
31-100
0
Claim history:
Claim Number
Claim Amount
Loading (%)
2
Sum (paid Indemnity – subrogation) > IV
5
3-4
Sum (paid Indemnity – subrogation) > IV
35
5-6
Sum (paid Indemnity – subrogation) > IV
75
6-99 (above 6)
Sum (paid Indemnity – subrogation) > IV
100
Car Usage:
Usage
Loading (%)
Rent
50
Taxi reg C,CA,CB,PB,B (*)
100
Taxi all the rest registrations (*)
50
Training
40
Car brand:
Brand
Insured value
Loading (%)
BMW
0-20000
7.5
AUDI
0-20000
7.5
Volkswagen
0-200000
5
Car brand repair shop option: - 30%
For car, jeep, truck up to 3.5t
brand repair shop loading = Max (Base premium,450)*1.3 + MAX( (450 - Base premium),0);
For trucks above 3.5
brand repair shop loading = Max (Base premium,500)*1.3 + MAX( (500 - Base premium),0);
Road assistance option
Car Type
Car Age
Seats
Tonnage
Loading in BGN
Car
0-3
0-16
25
Car
Above 3 up to 5
0-16
25
Car
Above 5 up to 7
0-16
25
Car
Above 7 up to 10
0-16
30
Car
Above 10 up to 13
0-16
30
Car
Above 13
0-16
36
jeep
0-3
0-16
25
jeep
Above 3 up to 5
0-16
25
jeep
Above 5 up to 7
0-16
25
jeep
Above 7 up to 10
0-16
30
jeep
Above 10 up to 13
0-16
30
jeep
Above 13
0-16
36
truck
0-3
0-3 up to 3.5
25
truck
Above 3 up to 5
0-3 up to 3.5
25
truck
Above 5 up to 7
0-3 up to 3.5
25
truck
Above 7 up to 10
0-3 up to 3.5
30
truck
Above 10 up to 13
0-3 up to 3.5
30
truck
Above 13
0-3 up to 3.5
36
bus
The option is not offered
bus
bus
bus
bus
bus
truck
truck
truck
truck
truck
truck
Options for additional coverage:
Option
Loading
strike and war
20
supersonic shock wave
10
competitions
Manual loading
### Discounts
Driver are:
Age
Discount (%)
40-50
5
51-100
10
Repair shop:
Repair type
Discount (%)
Repair expenses in trusted shop
10
Indemnity based on evaluation
15
Other discounts
Discount type
Condition
Discount (%)
Claims prev year
0
10
Payment Frequency
Annually
5
New business
Not a renewal
5
Cross-selling (volume discount)
Property, MTPL
5
No claim bonus (NCB)
Manual – the client can select it
18%
### Limitations
Minimum written premium – 240 BGN
Maximum total discount – 20% - new business; 35% on renewal
NCB can be combined with Payment Frequency and Cross-selling only. The other discounts are not applicable when NCB is selected by PH.