These study notes are based on the Exam 9 syllabus readings The Underwriting Profit Provision and IRR, ROE, and PVI/PVE by Dr. Ira Robbin. The papers describe various notions of “underwriting profit” and present seven methods for determining an underwriting profit provision to be used in calculating rates. This paper corresponds to learning objectives D4 and D5 on the syllabus.
easypackages::packages("dplyr", "ggplot2")
## Loading required package: dplyr
## Warning: package 'dplyr' was built under R version 3.4.2
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
## Loading required package: ggplot2
## All packages loaded successfully
The underwriting profit provision is a prospective component of the actuarial rate. It is distinct from actual underwriting profit, which is the after-the-fact difference between the premium and losses and expenses, and generally differs from the UW profit provision.
The UW profit provision has evolved over time:
Early on (i.e. up to the 1960’s), a fixed UW profit provision was considered appropriate, despite a lack of theoretical justification. Typically a 5% profit provision was used, with the exception of Workers’ Compensation which had a 2.5% profit load.
In the 1970’s and early 80’s, investment income and income taxes became increasingly important; companies could even operate at an underwriting loss. Negative underwriting profits could reduce income taxes on otherwise-taxable investment income.
Around the same time, there was increasing pressure to make more affordable by lowering the rates. This typically involved regulation of the UW profit provision.
There are a variety of algorithms for calculating the UW profit provision depending on the jurisdiction.
Broadly speaking, the problem of setting a UW profit provision could be accomplished by setting it such that the total profit (UW profit plus investment income less taxes) is adequate. However, there are several challenges with this approach:
It requires an answer to the question of what an adequate total return is.
Ratemaking is typically done on a prospective policy year basis, but total return is assessed on a calendar year basis (e.g. GAAP ROE). A single calendar year result can be impacted by many prior policy years.
There is a need to make a distinction between investment income on policyholder-supplied funds and stockholder-supplied funds (surplus and amounts needed to offset the portion of costs not covered by premiums). Generally, only the investment income from policyholder-supplied funds should be credited to the policyholders when determing the UW profit provision.
The readings make a distinction between five types of underwriting profit:
Underwriting profit rates are included in the manual rates.
Corporate target UW profit provisions which, for a stock company, are sufficient to yield an expected return comparable to similar risks.
Breakeven UW profit provisions generate an expeted return to stockholders equal to the risk-free rate. In this case, the stockholder receives no compensation for taking on risk.
Charged UW profit provisions may differ from the manual rates, because they are obtained following experience rating and schedule rating.
Actual UW profits generally differ from the provisions charged because estimates of prospective losses seldom match actual losses. If the actual UW profits are consistently below the charged provisions, then the methods used to estimate losses and expenses should be examined.
The following notation is used:
\(P\) is the amount of earned premium
\(L\) is the amount of incurred loss and ALAE
\(c\) is the loss-proportional expense ratio
\(F\) is the fixed expense per policy
\(V\) is the variable expense ratio (expenses proportional to premium)
\(X\) is the total expense
\(C\) is the combined ratio
\(U\) is the underwriting profit provision
\(j\) is the time period, with the convention that values indexed by \(j\) are as of the end of the time period. \(j=0\) corresponds to policy inception. The assumption is that all income payments are made at the end of the period, and balance sheet items are constant over the period.
\(S_j\) is the required surplus at the end of the \(j\)th period
\(Q_j\) is the equity; it is generally equal to the surplus with the exception of \(Q_0\) which is equal to \(S_0\) plus deferred acquisition costs (also known as equity in the unearned premium reserve) under GAAP accounting. DAC can be calculated as the amount of expenses that have been incurred under statutory rules but not yet under GAAP rules; under GAAP rules expenses are incurred as premium is earned.
\(A_j\) is the assets; it is the sum of all reserves (unearned premium, loss, expense) and the surplus.
\(IA_j\) are the investable assets, equal to \(A_j\) less any receivables
\(I_j\) is the investment income during period \(j\). For an investment rate \(i\), \(I_j = i IA_{j-1}\).
\(N_j\) is the net income after tax. Taxes are assumed to be paid when income is declared, and there may be separate rates for underwriting income and investment income.
The fundamental relationship between these quantities is \[ P = (1 + c)L + F + VP + UP \] which is equivalent to \[ P = \frac{(1+c)L + F}{1 - V - U} \] Solving for \(U\) instead, we obtain \[ U = 1 - \left(V + \frac{(1+c)L + F}{P}\right) = 1 - C \] In the reading, the factor \((1+c)\) applied to losses is generally ignored for simplicity.
The model used is called a single policy company model, which assesses profitability based on the underwriting and equity cash flows of a single policy. The company is assumed to be liquidated after the last claim payment is made.
The underwriting cash flow at the end of the \(j\)th time period is: \[ U_i = P_i - L_i - X_i \] and the pre-tax income is \[ U_i + I_i \]
The following parameters are used in the examples in the reading:
loss = 65
fixed.expense = 15
variable.expense.ratio = 0.25
premium.payment.pattern.pct = c(0.4, 0.15, 0.15, 0.15, 0.15, rep(0, 16))
loss.payment.pattern.dollars = c(0, 2, 4, 7, 8, 8.5, 8, 6, 5, 4, 3, 2, 2, 1, 1, 1, 1, 0.5, 0.5, 0.5, 0)
loss.payment.pattern.pct = loss.payment.pattern.dollars / loss
expense.payment.pattern.pct = c(0.3, 0.175, 0.175, 0.175, 0.175, rep(0, 16))
after.tax.portfolio.yield = 0.0668
This involves adjusting a “traditional” underwriting profit provision downward based on interest on policy-holder supplied funds. The method relies on calendar year information, and generally works well when growth and reserving patterns have been stable over time. Define the following notation:
\(U_0\) is the traditional underwriting profit provision
\(i\) is the after-tax calendar year investment yield
\(A_p\) is the ratio of funds supplied by policy holders to premium
Then the UW profit provision calculated by this method is \[ U = U_0 - iA_p \]
The key part of the method is determining what exactly constitutes “policy-holder supplied funds”. This can be calculated as follows based on information available in the annual statement:
Begin with the unearned premium reserve
Deduct pre-paid acquisition expenses (commissions, premium taxes, other acquisition expenses, company overhead) on the unearned premium since these expenses have already been paid, and are not available for investment
Deduct premium receivables since this cash has not yet been received, so it is not available for investment
Add the product of permissible losses (from the prospective rate) and the ratio of calendar year loss reserves to calendar year incurred losses
Divide by premium
Alternately, the above calculations may be performed using ratios to premium (and then step 5 is not needed). Multi-year averages may also be used for greater stability, especially for the ratio of loss reserves to incurred losses.
The example in the reading uses the following assumptions:
unearned.premium = 50000
pre.paid.expense.ratio = 0.18
premiums.receivable = 28000
earned.premium = 160000
loss.res.to.loss.incurred = 1.20
permissible.loss.ratio = 0.60
after.tax.portfolio.yield = 0.0668
traditional.UW.profit = 0.05
The policyholder-supplied funds, as a ratio to premium, are:
ph.supplied.funds = (unearned.premium * (1 - pre.paid.expense.ratio) - premiums.receivable + permissible.loss.ratio * earned.premium * loss.res.to.loss.incurred) / earned.premium
ph.supplied.funds
## [1] 0.80125
The offset is:
profit.offset = after.tax.portfolio.yield * ph.supplied.funds
profit.offset
## [1] 0.0535235
The resulting UW profit provision is:
CY.offset.provision = traditional.UW.profit - profit.offset
CY.offset.provision
## [1] -0.0035235
Because the method relies on the selection of a permissible loss ratio, and the profit provision is used to select the loss ratio, this method should be iterated until there is convergence. The new permissible loss ratio \(L_1\) can be quickly calculated as \[ L_1 = L_0 + U_0 - U \] In this example, the new permissible loss ratio is
plr.2 = permissible.loss.ratio + traditional.UW.profit - CY.offset.provision
plr.2
## [1] 0.6535235
This changes the policyholder-supplied funds to
phsf.2 = (unearned.premium * (1 - pre.paid.expense.ratio) - premiums.receivable + plr.2 * earned.premium * loss.res.to.loss.incurred) / earned.premium
phsf.2
## [1] 0.8654782
The new UW profit provision is
CY.offset.provision.2 = traditional.UW.profit - after.tax.portfolio.yield * phsf.2
CY.offset.provision.2
## [1] -0.007813944
Note that this is still offset from the original UW profit margin, not the revised one calculated in the first iteration.
Advantages of this method include:
Calendar year investment information is readily available, and transparent.
Calendar year investment yields tend to be relatively stable.
The method is very practical: inputs are readily available and calculations are easy.
Disadvantages of this method include:
Calendar year results are retrospective, and may not be appropriate for a prospective ratemaking task. This is particularly problematic if the line has experinced rapid growth or decline, or there have been significant changes in loss reserve adequacy.
A challenge is that the permissible loss ratio depends on the UW profit provision, which in turn depends on the permissible loss ratio. There may be a need to iterate the method until the UW profit provision converges.
There is a lack of a general economic theory to support the calculation.
In this approach, an offset \(D\) is calculated by comparing the cash flows of the line being analyzed to a reference line, for which the traditional profit provision is assumed to be correct. The adjusted UW profit provision is then \[ U = U_0 - D \] The approach for calculating \(D\) is:
Calculate the present value of the loss payout pattern for the reference line
Calculate the present value of the loss payout pattern for the line being analyzed, then subtract from the present value of losses for the reference line
Multiply the above by the permissible loss ratio.
The method can be illustrated using the following reference line payment pattern and discount rate:
reference.line.payout.pct = c(0, 0.1, 0.15, 0.2, 0.25, 0.15, 0.10, 0.05, rep(0, 13))
discount.rate = 0.0528
permissible.loss.ratio = 0.65
pvo.data = data.frame(quarter = 0:20, reference_pattern = reference.line.payout.pct, subject_pattern = loss.payment.pattern.pct)
pvo.data
## quarter reference_pattern subject_pattern
## 1 0 0.00 0.000000000
## 2 1 0.10 0.030769231
## 3 2 0.15 0.061538462
## 4 3 0.20 0.107692308
## 5 4 0.25 0.123076923
## 6 5 0.15 0.130769231
## 7 6 0.10 0.123076923
## 8 7 0.05 0.092307692
## 9 8 0.00 0.076923077
## 10 9 0.00 0.061538462
## 11 10 0.00 0.046153846
## 12 11 0.00 0.030769231
## 13 12 0.00 0.030769231
## 14 13 0.00 0.015384615
## 15 14 0.00 0.015384615
## 16 15 0.00 0.015384615
## 17 16 0.00 0.015384615
## 18 17 0.00 0.007692308
## 19 18 0.00 0.007692308
## 20 19 0.00 0.007692308
## 21 20 0.00 0.000000000
Discount all percentages to time 0:
pvo.data = pvo.data %>% mutate(discount_factor = 1 / (1 + discount.rate)^(quarter / 4), pv_reference_pottern = discount_factor * reference_pattern, pv_subject_pattern = discount_factor * subject_pattern)
pvo.data
## quarter reference_pattern subject_pattern discount_factor
## 1 0 0.00 0.000000000 1.0000000
## 2 1 0.10 0.030769231 0.9872191
## 3 2 0.15 0.061538462 0.9746015
## 4 3 0.20 0.107692308 0.9621451
## 5 4 0.25 0.123076923 0.9498480
## 6 5 0.15 0.130769231 0.9377081
## 7 6 0.10 0.123076923 0.9257233
## 8 7 0.05 0.092307692 0.9138917
## 9 8 0.00 0.076923077 0.9022113
## 10 9 0.00 0.061538462 0.8906802
## 11 10 0.00 0.046153846 0.8792964
## 12 11 0.00 0.030769231 0.8680582
## 13 12 0.00 0.030769231 0.8569636
## 14 13 0.00 0.015384615 0.8460108
## 15 14 0.00 0.015384615 0.8351980
## 16 15 0.00 0.015384615 0.8245234
## 17 16 0.00 0.015384615 0.8139852
## 18 17 0.00 0.007692308 0.8035817
## 19 18 0.00 0.007692308 0.7933111
## 20 19 0.00 0.007692308 0.7831719
## 21 20 0.00 0.000000000 0.7731622
## pv_reference_pottern pv_subject_pattern
## 1 0.00000000 0.000000000
## 2 0.09872191 0.030375971
## 3 0.14619022 0.059975475
## 4 0.19242903 0.103615631
## 5 0.23746201 0.116904372
## 6 0.14065621 0.122623363
## 7 0.09257233 0.113935173
## 8 0.04569458 0.084359231
## 9 0.00000000 0.069400867
## 10 0.00000000 0.054811087
## 11 0.00000000 0.040582912
## 12 0.00000000 0.026709483
## 13 0.00000000 0.026368111
## 14 0.00000000 0.013015551
## 15 0.00000000 0.012849200
## 16 0.00000000 0.012684975
## 17 0.00000000 0.012522849
## 18 0.00000000 0.006181398
## 19 0.00000000 0.006102393
## 20 0.00000000 0.006024399
## 21 0.00000000 0.000000000
Calculate \(D\) by summing the present values, taking their difference, and multiplying by the permissible loss ratio:
D = permissible.loss.ratio * (sum(pvo.data$pv_reference_pottern) - sum(pvo.data$pv_subject_pattern))
D
## [1] 0.0225445
The UW profit provision is:
pvo.profit.provision = traditional.UW.profit - D
pvo.profit.provision
## [1] 0.0274555
The justification for the method is that, for the reference line, if \(V_0\) is the present value of losses for that line, then the premium equation can be re-written as \[ P = V_0 + F + PV + PU_0 + (L - V_0) \] Due to the investment income on the loss reserves, we only need to collect \(V_0\) at policy inception to cover the losses, rather than \(L\). Therefore, \(L - V_0\) can be viewed as part of the underwriting profit. The Present Value Offset method essetially replaces \(L - V_0\) for the reference line with the corresponding value for the line being analyzed.
Advantages of this approach include:
It is not distorted by rapid growth or decline, as the calendar year offset method is.
There is no need to select a target return or to set a surplus requirement.
Disadvantages of this approach include:
A key assumption in this method is the selection of a discount rate. Some considerations in making this selection:
New money rates are more consistent with the prospective nature of ratemaking
Portfolio yields are more easily verifiable
Using an after-tax rate for discounting accounts for the effect of income taxes; however, this would only account for income tax associated with the present value of loss provision.
A key consideration in determining after-tax rates retrospectively vs. prospectively is whether past underwriting losses have impacted the income tax rate.
This method is based setting the profit provision such that the present value of equity flows, discounted at the target rate of return, should equal the present value of total cash flows, discounted at the investment rate. The steps in this approach are:
Calculate the pre-tax total cash flow in each time period, which is equal to the underwriting cash flow plus investment income on investible equity (typically this is the statutory surplus).
Discount the total cash flows at the pre-tax investment rate. (Note that this implicitly incorporates investment income on policyholder-supplied funds.)
Reduce the present value of cash flows based on the tax rate.
Calculate the equity flow, from the perspective of the insurer, in each time period, without consideration of changes in equity due to underwriting activity. Note that a key distinction between this method and others is that the equity flow does not include underwriting cash flows – these are accounted for on the other side of the equation.
Discount the equity flow using the target rate of return.
Adjust premium so that the two present values are equal. The UW profit provision can then be determined by subtracting losses and expenses as a percentage of premium.
The example in the reading starts with a given premium and validates that it produces an underwriting cash flow whose present value equals that of equity. Here are the assumptions used in the example:
initial.premium = 106.20
premium.to.surplus = 3
equity.to.surplus = 1.2
investment.rate = 0.08
discount.rate = 0.08
tax.rate = 0.34
target.return = 0.15
Set up a data frame with the UW cash flows:
UW.cash.flows = data.frame(quarter = 0:20, premium = initial.premium * premium.payment.pattern.pct, loss = loss.payment.pattern.dollars, expense = (initial.premium * variable.expense.ratio + fixed.expense) * expense.payment.pattern.pct)
UW.cash.flows
## quarter premium loss expense
## 1 0 42.48 0.0 12.46500
## 2 1 15.93 2.0 7.27125
## 3 2 15.93 4.0 7.27125
## 4 3 15.93 7.0 7.27125
## 5 4 15.93 8.0 7.27125
## 6 5 0.00 8.5 0.00000
## 7 6 0.00 8.0 0.00000
## 8 7 0.00 6.0 0.00000
## 9 8 0.00 5.0 0.00000
## 10 9 0.00 4.0 0.00000
## 11 10 0.00 3.0 0.00000
## 12 11 0.00 2.0 0.00000
## 13 12 0.00 2.0 0.00000
## 14 13 0.00 1.0 0.00000
## 15 14 0.00 1.0 0.00000
## 16 15 0.00 1.0 0.00000
## 17 16 0.00 1.0 0.00000
## 18 17 0.00 0.5 0.00000
## 19 18 0.00 0.5 0.00000
## 20 19 0.00 0.5 0.00000
## 21 20 0.00 0.0 0.00000
Assuming the above values are paid at the end of each quarter, calculate the net UW cash flow and discount it to the beginning of the first quarter.
UW.cash.flows = UW.cash.flows %>% mutate(net_UW_cash_flow = premium - loss - expense, discount_factor = 1 / (1 + discount.rate) ^(quarter / 4), PV_UW_cash_flow = net_UW_cash_flow * discount_factor)
UW.cash.flows
## quarter premium loss expense net_UW_cash_flow discount_factor
## 1 0 42.48 0.0 12.46500 30.01500 1.0000000
## 2 1 15.93 2.0 7.27125 6.65875 0.9809437
## 3 2 15.93 4.0 7.27125 4.65875 0.9622504
## 4 3 15.93 7.0 7.27125 1.65875 0.9439135
## 5 4 15.93 8.0 7.27125 0.65875 0.9259259
## 6 5 0.00 8.5 0.00000 -8.50000 0.9082812
## 7 6 0.00 8.0 0.00000 -8.00000 0.8909726
## 8 7 0.00 6.0 0.00000 -6.00000 0.8739940
## 9 8 0.00 5.0 0.00000 -5.00000 0.8573388
## 10 9 0.00 4.0 0.00000 -4.00000 0.8410011
## 11 10 0.00 3.0 0.00000 -3.00000 0.8249747
## 12 11 0.00 2.0 0.00000 -2.00000 0.8092537
## 13 12 0.00 2.0 0.00000 -2.00000 0.7938322
## 14 13 0.00 1.0 0.00000 -1.00000 0.7787047
## 15 14 0.00 1.0 0.00000 -1.00000 0.7638654
## 16 15 0.00 1.0 0.00000 -1.00000 0.7493089
## 17 16 0.00 1.0 0.00000 -1.00000 0.7350299
## 18 17 0.00 0.5 0.00000 -0.50000 0.7210229
## 19 18 0.00 0.5 0.00000 -0.50000 0.7072828
## 20 19 0.00 0.5 0.00000 -0.50000 0.6938046
## 21 20 0.00 0.0 0.00000 0.00000 0.6805832
## PV_UW_cash_flow
## 1 30.0150000
## 2 6.5318585
## 3 4.4828843
## 4 1.5657165
## 5 0.6099537
## 6 -7.7203899
## 7 -7.1277811
## 8 -5.2439637
## 9 -4.2866941
## 10 -3.3640043
## 11 -2.4749240
## 12 -1.6185073
## 13 -1.5876645
## 14 -0.7787047
## 15 -0.7638654
## 16 -0.7493089
## 17 -0.7350299
## 18 -0.3605114
## 19 -0.3536414
## 20 -0.3469023
## 21 0.0000000
The present value of UW cash flows is:
PV.UW.cash.flow.total = sum(UW.cash.flows$PV_UW_cash_flow)
PV.UW.cash.flow.total
## [1] 5.69352
Investment income is calculated based on the surplus. Assume that the surplus is committed when the policy is written and released when it exprires — therefore, the surplus generates investment income at the ends of quarters 1 through 4.
UW.cash.flows = UW.cash.flows %>% mutate(investment_income = ifelse(quarter %in% c(1, 2, 3, 4), initial.premium / premium.to.surplus * investment.rate / 4, 0), PV_investment_income = investment_income * discount_factor)
UW.cash.flows
## quarter premium loss expense net_UW_cash_flow discount_factor
## 1 0 42.48 0.0 12.46500 30.01500 1.0000000
## 2 1 15.93 2.0 7.27125 6.65875 0.9809437
## 3 2 15.93 4.0 7.27125 4.65875 0.9622504
## 4 3 15.93 7.0 7.27125 1.65875 0.9439135
## 5 4 15.93 8.0 7.27125 0.65875 0.9259259
## 6 5 0.00 8.5 0.00000 -8.50000 0.9082812
## 7 6 0.00 8.0 0.00000 -8.00000 0.8909726
## 8 7 0.00 6.0 0.00000 -6.00000 0.8739940
## 9 8 0.00 5.0 0.00000 -5.00000 0.8573388
## 10 9 0.00 4.0 0.00000 -4.00000 0.8410011
## 11 10 0.00 3.0 0.00000 -3.00000 0.8249747
## 12 11 0.00 2.0 0.00000 -2.00000 0.8092537
## 13 12 0.00 2.0 0.00000 -2.00000 0.7938322
## 14 13 0.00 1.0 0.00000 -1.00000 0.7787047
## 15 14 0.00 1.0 0.00000 -1.00000 0.7638654
## 16 15 0.00 1.0 0.00000 -1.00000 0.7493089
## 17 16 0.00 1.0 0.00000 -1.00000 0.7350299
## 18 17 0.00 0.5 0.00000 -0.50000 0.7210229
## 19 18 0.00 0.5 0.00000 -0.50000 0.7072828
## 20 19 0.00 0.5 0.00000 -0.50000 0.6938046
## 21 20 0.00 0.0 0.00000 0.00000 0.6805832
## PV_UW_cash_flow investment_income PV_investment_income
## 1 30.0150000 0.000 0.0000000
## 2 6.5318585 0.708 0.6945081
## 3 4.4828843 0.708 0.6812733
## 4 1.5657165 0.708 0.6682907
## 5 0.6099537 0.708 0.6555556
## 6 -7.7203899 0.000 0.0000000
## 7 -7.1277811 0.000 0.0000000
## 8 -5.2439637 0.000 0.0000000
## 9 -4.2866941 0.000 0.0000000
## 10 -3.3640043 0.000 0.0000000
## 11 -2.4749240 0.000 0.0000000
## 12 -1.6185073 0.000 0.0000000
## 13 -1.5876645 0.000 0.0000000
## 14 -0.7787047 0.000 0.0000000
## 15 -0.7638654 0.000 0.0000000
## 16 -0.7493089 0.000 0.0000000
## 17 -0.7350299 0.000 0.0000000
## 18 -0.3605114 0.000 0.0000000
## 19 -0.3536414 0.000 0.0000000
## 20 -0.3469023 0.000 0.0000000
## 21 0.0000000 0.000 0.0000000
The present value of investment income is:
PV.investment.total = sum(UW.cash.flows$PV_investment_income)
PV.investment.total
## [1] 2.699628
Accounting for taxes, the present value of total cash flow is:
PV.total.cash.flow = (PV.UW.cash.flow.total + PV.investment.total) * (1 - tax.rate)
PV.total.cash.flow
## [1] 5.539478
Assume that equity is committed at the beginning of the policy and released at the end of it. Note that I am using a different notational convention than in the reading; I am interpreting the values as of the end of the quarter, so surplus and equity should be 0 for quarter 4. Discount the equity flows at the target rate of return:
equity.flows = data.frame(quarter = 0:20, surplus = initial.premium / premium.to.surplus * c(rep(1, 4), rep(0, 17)))
equity.flows = equity.flows %>% mutate(equity = surplus * equity.to.surplus, equity_flow = equity - lag(equity, default = 0), equity_discount_factor = 1 / (1 + target.return) ^(quarter / 4), PV_equity_flow = equity_flow * equity_discount_factor)
equity.flows
## quarter surplus equity equity_flow equity_discount_factor
## 1 0 35.4 42.48 42.48 1.0000000
## 2 1 35.4 42.48 0.00 0.9656629
## 3 2 35.4 42.48 0.00 0.9325048
## 4 3 35.4 42.48 0.00 0.9004853
## 5 4 0.0 0.00 -42.48 0.8695652
## 6 5 0.0 0.00 0.00 0.8397069
## 7 6 0.0 0.00 0.00 0.8108737
## 8 7 0.0 0.00 0.00 0.7830307
## 9 8 0.0 0.00 0.00 0.7561437
## 10 9 0.0 0.00 0.00 0.7301799
## 11 10 0.0 0.00 0.00 0.7051076
## 12 11 0.0 0.00 0.00 0.6808962
## 13 12 0.0 0.00 0.00 0.6575162
## 14 13 0.0 0.00 0.00 0.6349390
## 15 14 0.0 0.00 0.00 0.6131370
## 16 15 0.0 0.00 0.00 0.5920837
## 17 16 0.0 0.00 0.00 0.5717532
## 18 17 0.0 0.00 0.00 0.5521209
## 19 18 0.0 0.00 0.00 0.5331627
## 20 19 0.0 0.00 0.00 0.5148554
## 21 20 0.0 0.00 0.00 0.4971767
## PV_equity_flow
## 1 42.48000
## 2 0.00000
## 3 0.00000
## 4 0.00000
## 5 -36.93913
## 6 0.00000
## 7 0.00000
## 8 0.00000
## 9 0.00000
## 10 0.00000
## 11 0.00000
## 12 0.00000
## 13 0.00000
## 14 0.00000
## 15 0.00000
## 16 0.00000
## 17 0.00000
## 18 0.00000
## 19 0.00000
## 20 0.00000
## 21 0.00000
The total present value of the equity flows is:
PV.equity.flow = sum(equity.flows$PV_equity_flow)
PV.equity.flow
## [1] 5.54087
The difference between the two, as a percentage of premium, is:
(PV.equity.flow - PV.total.cash.flow) / initial.premium
## [1] 1.310757e-05
The two values do not differ materially, so this premium achieves the target profit provision. This provision is:
1 - loss / initial.premium - fixed.expense / initial.premium - variable.expense.ratio
## [1] -0.003295669
Advantages of the method include:
Disadvantages of the method include:
This approach involves calculating a fair premium directly by discounting all cash flows to the end of the first year, with losses discounted at a rate that reflects the risk associated with them. The steps in this approach are:
Calculate the value of expenses and income taxes on investment income at the risk-free rate, discounted to the end of the first year.
Calculate the risk-adjusted rate using the CAPM formula, \(i_r = i_f + \beta(i_m - i_f)\). Note that for liabilities, \(\beta\) values are generally negative – this results in present values that are higher than the risk-free present value, representing the risk associated with them.
Calculate the discounted value of losses using \(i_r\) as of the end of the first year.
Discount the premium payment pattern to the end of year one using the risk-free rate.
Calculate the tax on underwriting income, as of the end of year one, by multiplying the tax rate by the discounted UW income calculated above.
The fair premium is the sum of the results of steps 1, 3, and 5, divided by the present value of premium factor calculated in step 4.
Determine the UW profit provision by subtracting losses and expenses from the premium.
It is challenging to estimate \(\beta\) since there is no open market for liabilites that could be used as a basis for estimating it. An indirect way would be to subtract the \(\beta\) for the insurer’s investment portfolio from the \(\beta\) for the insurer’s stock, giving an implicit market valuation of the insurer’s liabilities.
The following assumptions are used in the example in the reading:
risk.free.rate = 0.08
market.return = 0.105
beta = -0.75
The rate used to discount losses is:
risk.adjusted.rate = risk.free.rate + beta * (market.return - risk.free.rate)
risk.adjusted.rate
## [1] 0.06125
Based on the cash flow patterns for premium, losses, expenses, and income tax, calculate the discount factor associated with each.
risk.adjustment.data = data.frame(quarter = 0:20, premium_payment = premium.payment.pattern.pct, loss_payment = loss.payment.pattern.pct, expense_payment = expense.payment.pattern.pct, inv_tax_payment = 0.25 * c(0, rep(1, 4), rep(0, 16)))
risk.adjustment.data
## quarter premium_payment loss_payment expense_payment inv_tax_payment
## 1 0 0.40 0.000000000 0.300 0.00
## 2 1 0.15 0.030769231 0.175 0.25
## 3 2 0.15 0.061538462 0.175 0.25
## 4 3 0.15 0.107692308 0.175 0.25
## 5 4 0.15 0.123076923 0.175 0.25
## 6 5 0.00 0.130769231 0.000 0.00
## 7 6 0.00 0.123076923 0.000 0.00
## 8 7 0.00 0.092307692 0.000 0.00
## 9 8 0.00 0.076923077 0.000 0.00
## 10 9 0.00 0.061538462 0.000 0.00
## 11 10 0.00 0.046153846 0.000 0.00
## 12 11 0.00 0.030769231 0.000 0.00
## 13 12 0.00 0.030769231 0.000 0.00
## 14 13 0.00 0.015384615 0.000 0.00
## 15 14 0.00 0.015384615 0.000 0.00
## 16 15 0.00 0.015384615 0.000 0.00
## 17 16 0.00 0.015384615 0.000 0.00
## 18 17 0.00 0.007692308 0.000 0.00
## 19 18 0.00 0.007692308 0.000 0.00
## 20 19 0.00 0.007692308 0.000 0.00
## 21 20 0.00 0.000000000 0.000 0.00
Calculate discount factors at both the risk-free rate and the risk-adjusted rate:
risk.adjustment.data = risk.adjustment.data %>% mutate(risk_free_discount = 1 / (1 + risk.free.rate)^((quarter - 4) / 4), risk_adjusted_discount = 1 / (1 + risk.adjusted.rate)^((quarter - 4) / 4), premium_discount = premium_payment * risk_free_discount, loss_discount = loss_payment * risk_adjusted_discount, expense_discount = expense_payment * risk_free_discount, inv_tax_discount = inv_tax_payment * risk_free_discount )
risk.adjustment.data
## quarter premium_payment loss_payment expense_payment inv_tax_payment
## 1 0 0.40 0.000000000 0.300 0.00
## 2 1 0.15 0.030769231 0.175 0.25
## 3 2 0.15 0.061538462 0.175 0.25
## 4 3 0.15 0.107692308 0.175 0.25
## 5 4 0.15 0.123076923 0.175 0.25
## 6 5 0.00 0.130769231 0.000 0.00
## 7 6 0.00 0.123076923 0.000 0.00
## 8 7 0.00 0.092307692 0.000 0.00
## 9 8 0.00 0.076923077 0.000 0.00
## 10 9 0.00 0.061538462 0.000 0.00
## 11 10 0.00 0.046153846 0.000 0.00
## 12 11 0.00 0.030769231 0.000 0.00
## 13 12 0.00 0.030769231 0.000 0.00
## 14 13 0.00 0.015384615 0.000 0.00
## 15 14 0.00 0.015384615 0.000 0.00
## 16 15 0.00 0.015384615 0.000 0.00
## 17 16 0.00 0.015384615 0.000 0.00
## 18 17 0.00 0.007692308 0.000 0.00
## 19 18 0.00 0.007692308 0.000 0.00
## 20 19 0.00 0.007692308 0.000 0.00
## 21 20 0.00 0.000000000 0.000 0.00
## risk_free_discount risk_adjusted_discount premium_discount
## 1 1.0800000 1.0612500 0.4320000
## 2 1.0594191 1.0455945 0.1589129
## 3 1.0392305 1.0301699 0.1558846
## 4 1.0194265 1.0149729 0.1529140
## 5 1.0000000 1.0000000 0.1500000
## 6 0.9809437 0.9852480 0.0000000
## 7 0.9622504 0.9707137 0.0000000
## 8 0.9439135 0.9563937 0.0000000
## 9 0.9259259 0.9422850 0.0000000
## 10 0.9082812 0.9283845 0.0000000
## 11 0.8909726 0.9146890 0.0000000
## 12 0.8739940 0.9011955 0.0000000
## 13 0.8573388 0.8879011 0.0000000
## 14 0.8410011 0.8748028 0.0000000
## 15 0.8249747 0.8618977 0.0000000
## 16 0.8092537 0.8491830 0.0000000
## 17 0.7938322 0.8366559 0.0000000
## 18 0.7787047 0.8243136 0.0000000
## 19 0.7638654 0.8121533 0.0000000
## 20 0.7493089 0.8001725 0.0000000
## 21 0.7350299 0.7883684 0.0000000
## loss_discount expense_discount inv_tax_discount
## 1 0.000000000 0.3240000 0.0000000
## 2 0.032172138 0.1853984 0.2648548
## 3 0.063395070 0.1818653 0.2598076
## 4 0.109304769 0.1783996 0.2548566
## 5 0.123076923 0.1750000 0.2500000
## 6 0.128840127 0.0000000 0.0000000
## 7 0.119472452 0.0000000 0.0000000
## 8 0.088282499 0.0000000 0.0000000
## 9 0.072483465 0.0000000 0.0000000
## 10 0.057131353 0.0000000 0.0000000
## 11 0.042216414 0.0000000 0.0000000
## 12 0.027729093 0.0000000 0.0000000
## 13 0.027320034 0.0000000 0.0000000
## 14 0.013458505 0.0000000 0.0000000
## 15 0.013259965 0.0000000 0.0000000
## 16 0.013064355 0.0000000 0.0000000
## 17 0.012871630 0.0000000 0.0000000
## 18 0.006340874 0.0000000 0.0000000
## 19 0.006247333 0.0000000 0.0000000
## 20 0.006155173 0.0000000 0.0000000
## 21 0.000000000 0.0000000 0.0000000
The discounted value of each quantity is as follows:
premium.discount = sum(risk.adjustment.data$premium_discount)
premium.discount
## [1] 1.049711
loss.discount = sum(risk.adjustment.data$loss_discount)
loss.discount
## [1] 0.9628222
expense.discount = sum(risk.adjustment.data$expense_discount)
expense.discount
## [1] 1.044663
inv.tax.discount = sum(risk.adjustment.data$inv_tax_discount)
inv.tax.discount
## [1] 1.029519
A key challenge is that we are attempting to determine the premium, but some costs such as variable expenses and tax on investment income depend on the premium. The equation for premium becomes: \[ d_PP = d_L L + d_EF + d_EPV + d_TTiP/x + T(d_P P - d_L L - d_EF - d_EPV) \] where \(d_X\) is the discount factor applied to cost \(X\), and \(x\) is the premium-to-surplus ratio. Solving for \(P\), we obtain \[ P = \frac{(1 - T) (d_LL + d_EF)}{(1-T)(d_P- d_EV) - d_TTi/x} \]
The premium premium can be calculated as follows:
full.premium = ((1 - tax.rate) * (loss.discount * loss + expense.discount * fixed.expense)) / ((1 - tax.rate) * (premium.discount - expense.discount * variable.expense.ratio) - inv.tax.discount * tax.rate * investment.rate / premium.to.surplus)
full.premium
## [1] 101.05
The corresponding UW profit loading, as a percentage of premium, is:
1 - loss / full.premium - fixed.expense / full.premium - variable.expense.ratio
## [1] -0.04168731
premium.discount * full.premium - loss.discount * loss - expense.discount * (fixed.expense + variable.expense.ratio * full.premium) - inv.tax.discount * tax.rate * full.premium * investment.rate / premium.to.surplus - tax.rate * (premium.discount * full.premium - loss.discount * loss - expense.discount * (fixed.expense + variable.expense.ratio * full.premium))
## [1] -6.661338e-16
Advantages of this approach include:
It is grounded in modern financial theory
There is no need to determine a target rate of return, or an equity / surplus requirement
Disadvantages of this approach include:
Since many companies are multi-line, there isn’t a clear way to estimate \(\beta\) separately for each line of business.
The need to select a risk-adjusted discount rate introduces challenges. Under CAPM, it should be based on correlation with the market; however, insurance loss reserves are unlikely to be correlated with the market and likely have a \(\beta\) near zero. Absent a risk adjusted rate, this is not a risk-sensitive premium calculation.
It does not consider the impact of accounting structures on expenses, or the effect that reserve discounting has on equity.
It does not account for the cost of holding surplus.
The equity flow at time \(j\) is equal to the sum of after-tax net income and the equity released during the period. Initially, there is a negative equity from (i.e. from investors to the company) \[ F_0 = -Q_0 \] and \[ F_j = I_j + (Q_{j-1} - Q_{j}) \]
The IRR on Equity Flows method involves determining a discount factor \(w\) such that \[ \sum_j F_j w^j = 0 \] The discount factor is related to the rate of return \(y\) by \[ w = \frac{1}{1+y} \] In other words, \(y = 1/w - 1\).
A key consideration in this algorithm is the difference between statutory and GAAP accounting. Generally, statutory reserves are used for the purpose of calculating investment income, while GAAP measures are used to calculate the net income and equity. The method can be applied as follows:
Calculate incurred and paid losses and expenses in each period, along with earned and paid premium.
Calculate the unearned premium reserve, the loss reserve (cumulative incurred minus cumulative paid), and expense reserve (cumulative incurred minus cumulative paid) in each period, based on statutory incurred amounts.
Calculate the surplus based on the rule provided. A typical rule is that in a given year, the surplus is equal to the present value (as of that year) of unpaid losses, including unpaid losses that have not yet been incurred.
Determine assets as the sum of all statutory reserves and surplus.
Calculate invested assets by deducting any receivables, e.g. unpaid premium.
Calculate investment income based on the amount of invested assets at the end of the previous period.
Determine GAAP net income after taxes in each period by summing earned premium and investment income, subtracting GAAP incurred losses and expenses, and multiplying by 1 minus the tax rate.
Determine GAAP equity by adding DAC to the statutory surplus. DAC can be calculated as cumulative statutory incurred expenses minus cumulative GAAP incurred expenses. Determine the equity flow in each period as the sum of net income after tax and any equity released.
Exhibit 2 in the IRR reading illustrates the method with the following parameters:
ep.pattern = c(0, 1, 0, 0, 0)
incurred.loss.pattern = c(0, 1, 0, 0, 0)
stat.incurred.expense.pattern = c(0.6, 0.4, 0, 0, 0)
GAAP.incurred.expense.pattern = c(0, 1, 0, 0, 0)
paid.premium.pattern = c(0.75, 0.20, 0.05, 0, 0)
paid.loss.pattern = c(0, 0.25, 0.50, 0.25, 0)
paid.expense.pattern = c(0.3, 0.45, 0.2, 0.05, 0)
receivables = c(25, 5, 0, 0, 0)
DAC = c(18, 0, 0, 0, 0)
premium = 100
loss.amt = 72
expense.amt = 30
interest.rate = 0.06
tax.rate = 0.35
surplus.to.pv.unpaid.loss = 0.315
loss.discount.rate = 0.06
Determine the cash and equity flows in each period as follows:
IRR.example = data.frame(time = 0:4, earned_premium = ep.pattern * premium, incurred_loss = incurred.loss.pattern * loss.amt, paid_loss = paid.loss.pattern * loss.amt, stat_incurred_expense = expense.amt * stat.incurred.expense.pattern, GAAP_incurred_expense = expense.amt * GAAP.incurred.expense.pattern, paid_expense = expense.amt * paid.expense.pattern, paid_premium = paid.premium.pattern * premium, receivables = receivables, DAC = DAC)
paid.loss.PV = sum(IRR.example$paid_loss / (1 + loss.discount.rate)^IRR.example$time)
IRR.example = IRR.example %>% mutate(unearned_premium = premium - cumsum(earned_premium), expense_reserve = cumsum(stat_incurred_expense) - cumsum(paid_expense), unpaid_loss = cumsum(incurred_loss) - cumsum(paid_loss), pv_unpaid_loss = (paid.loss.PV - cumsum(paid_loss / (1 + loss.discount.rate)^time)) * (1 + loss.discount.rate)^time, surplus = pv_unpaid_loss * surplus.to.pv.unpaid.loss, assets = surplus + unearned_premium + unpaid_loss + expense_reserve, investment_income = interest.rate * lag(assets - receivables, default = 0), GAAP_equity = surplus + DAC, net_income = (earned_premium - incurred_loss - GAAP_incurred_expense + investment_income) * (1 - tax.rate), equity_flow = ifelse(time == 0, -GAAP_equity, net_income + lag(GAAP_equity) - GAAP_equity))
IRR.example
## time earned_premium incurred_loss paid_loss stat_incurred_expense
## 1 0 0 0 0 18
## 2 1 100 72 18 12
## 3 2 0 0 36 0
## 4 3 0 0 18 0
## 5 4 0 0 0 0
## GAAP_incurred_expense paid_expense paid_premium receivables DAC
## 1 0 9.0 75 25 18
## 2 30 13.5 20 5 0
## 3 0 6.0 5 0 0
## 4 0 1.5 0 0 0
## 5 0 0.0 0 0 0
## unearned_premium expense_reserve unpaid_loss pv_unpaid_loss surplus
## 1 100 9.0 0 64.13415 20.202258
## 2 0 7.5 54 49.98220 15.744393
## 3 0 1.5 18 16.98113 5.349057
## 4 0 0.0 0 0.00000 0.000000
## 5 0 0.0 0 0.00000 0.000000
## assets investment_income GAAP_equity net_income equity_flow
## 1 129.20226 0.000000 38.202258 0.0000000 -38.20226
## 2 77.24439 6.252135 15.744393 2.7638880 25.22175
## 3 24.84906 4.334664 5.349057 2.8175313 13.21287
## 4 0.00000 1.490943 0.000000 0.9691132 6.31817
## 5 0.00000 0.000000 0.000000 0.0000000 0.00000
Now, find the discount factor:
roots = polyroot(IRR.example$equity_flow)
roots
## [1] 0.9030149+0.000000i -1.4971321+2.110545i -1.4971321-2.110545i
The first root is the real root:
discount.factor = Re(roots[1])
IRR = 1 / discount.factor - 1
print(paste0("The internal rate of return on equity flows is ", IRR))
## [1] "The internal rate of return on equity flows is 0.107401380450173"
Suppose we wanted to derive a profit provision instead. Discount the equity flows using a target rate of return;
target.return = 0.12
PV.equity.at.target = sum(IRR.example$equity_flow / (1 + target.return)^IRR.example$time)
print(paste0("The present value of equity at the target rate is ", PV.equity.at.target))
## [1] "The present value of equity at the target rate is -0.652469865566715"
Since this is negative, additional premium is required. Calculate the profit margin after increasing the premium.
new.premium = premium - PV.equity.at.target
profit.margin = (new.premium - loss.amt - expense.amt) / new.premium
print(paste0("The indicated profit margin is ", profit.margin))
## [1] "The indicated profit margin is -0.0133879490114159"
Note that the above approach isn’t exact because it doesn’t account for investment income on the additional premium, but given the size of the premium change the difference is unlikely to be material.
The method is affected by changes to the surplus rule and interest rates in the following ways:
Higher surplus requirements lead to higher equity requirements, and therefore higher premium.
Higher interest rates lead to greater investment income, and therefore lower premium.
If the surplus rule is based on the present value of unpaid loss, then higher interest rates will lower both the surplus and the premium; as a result, the premium-to-surplus ratio is not highly sensitive to changes in interest rate.
The PVI / PVE method is as follows:
Discount net income after tax to the end of year 1 using specified rate.
Discount equity to the beginning of year 1 using the specified rate. (This is the total equity in each year, not the equity flow.)
Calculate the ratio of Step 1 to Step 2
The same rate is often used in both Steps 1 and 2, and is equal to the company’s cost of capital.
Applying the method to the same data used in the IRR example, we obtain the following:
pvi.pve.discount.rate = 0.12
pvi = (1 + pvi.pve.discount.rate) * sum(IRR.example$net_income / (1 + pvi.pve.discount.rate)^IRR.example$time)
pve = sum(IRR.example$GAAP_equity / (1 + pvi.pve.discount.rate)^IRR.example$time)
pvi.pve = pvi / pve
print(paste0("The PVI-to-PVE ratio is ", pvi.pve))
## [1] "The PVI-to-PVE ratio is 0.107071572716134"
To convert this to a premium loading, determine the additional amount of premium needed to achieve the target rate:
additional.premium = pve * (pvi.pve.discount.rate - pvi.pve)
new.premium = premium + additional.premium
profit.margin = (new.premium - loss.amt - expense.amt) / new.premium
print(paste0("The indicated profit provision is ", profit.margin))
## [1] "The indicated profit provision is -0.0126002590650641"
Suppose instead that we discount at the IRR rate derived above:
pvi.pve.discount.rate = IRR
pvi = (1 + pvi.pve.discount.rate) * sum(IRR.example$net_income / (1 + pvi.pve.discount.rate)^IRR.example$time)
pve = sum(IRR.example$GAAP_equity / (1 + pvi.pve.discount.rate)^IRR.example$time)
pvi.pve = pvi / pve
print(paste0("The PVI-to-PVE ratio is ", pvi.pve))
## [1] "The PVI-to-PVE ratio is 0.107401380450173"
Note that this matches the IRR. This is a general result: assuming that both PVI and PVE are discounted at the internal rate of return \(y\), then the PVI-to-PVE ratio will also equal \(y\). This is because the equity flows in the IRR calculation form a telescoping sum: \[ \sum_{1 \leq j \leq n} I_j w^j= Q_0 + (Q_1 - Q_0)w + (Q_2 - Q_1)w^2 + \cdots + (Q_{n-1} - Q_{n-2})w^{n-1} - Q_{n-1}w^n = (1-w) \sum_{0\leq j \leq n-1} Q_j w^{j} \] Therefore, the PVI-to-PVE ratio is \[ \frac{(1+y)\sum_{1 \leq j \leq n} I_j w^j}{\sum_{0\leq j \leq n-1} Q_j w^{j}} = (1-w)(1+y) = y \]
This approach assumes that the company writes a new policy at the start of the year, that is a scaled version of the “single policy” according to a uniform growth rate \(g\). If the policy involves \(n\) time periods, then after this amount of time the company will be in a steady state referred to as the equilibrium growth phase. In the \(k\)th year of equilibrium, the income from all outstanding policies at the end of the year will be \[ \sum_{1 \leq j \ leq n} N_j (1 + g)^{n + k - j} = (1 + g)^{k+n-1}(1+g) \sum_{j\leq i \leq n} N_j (1+g)^{-j} \] The equity at the beginning of the year will be \[ \sum_{1 \leq j \leq n} Q_j(1+g)^{n+k-j-1} = (1+g)^{n+k-1} \sum_{0 \leq j \leq n-1}Q_j (1+g)^{-j} \] The ratio of the two is \[ \frac{(1+g) \sum_{1\leq j \leq n} N_j (1+g)^{-j}}{ \sum_{0 \leq j \leq n-1}Q_j (1+g)^{-j}} \] This is essentially the same formula as the PVI / PVE method, except that the growth rate is used as the discount rate. Therefore, when the growth rate equals the IRR, this gives the same result as the IRR method. The interpretation of this is that when the growth rate equals IRR, all income is being used to support the growth – so the IRR is the maximum self-sustainable growth rate.
Using the same data as the IRR method, we can apply the growth model as follows:
growth.rate = 0.05
growth.income = (1 + growth.rate) * sum(IRR.example$net_income / (1 + growth.rate)^IRR.example$time)
growth.equity = sum(IRR.example$GAAP_equity / (1 + growth.rate)^IRR.example$time)
growth.roe = growth.income / growth.equity
print(paste0("The ROE based on the growth model is ", growth.roe))
## [1] "The ROE based on the growth model is 0.108982092167559"
Changing the growth rate to the IRR validates that this gives the same result:
growth.rate = IRR
growth.income = (1 + growth.rate) * sum(IRR.example$net_income / (1 + growth.rate)^IRR.example$time)
growth.equity = sum(IRR.example$GAAP_equity / (1 + growth.rate)^IRR.example$time)
growth.roe = growth.income / growth.equity
print(paste0("The ROE based on the growth model is ", growth.roe))
## [1] "The ROE based on the growth model is 0.107401380450173"
The approach can also be used to determine the calendar year ROE during the build-up phase:
First, calculate the net after-tax income and equity in each calendar year for a single policy.
For each subsequent year, multiply the single policy equity and net income pattern by the growth factor, and shift it up one calendar year.
In each calendar year, sum up the total equity and net income. Calculate the calendar year ROE by dividing net income by equity.
Method | Quantity | Discount rate |
---|---|---|
Present Value Offset | Future Losses (both lines) | Interest rate |
Present Value Return on Cash Flow | Equity flows | Target rate of return |
Present Value Return on Cash Flow | Cash flows | Pre-tax investment rate |
Risk-adjusted Discounted Cash Flow | Premium | Risk-free rate |
Risk-adjusted Discounted Cash Flow | Losses | Risk-adjusted rate |
Risk-adjusted Discounted Cash Flow | Expenses | Risk-free rate |
Risk-adjusted Discounted Cash Flow | Taxes on Investment Income | Risk-free rate |