Signature
P = sum_(i=1)^I [n_i * c_i] / sum_(i=1)^I [n_i]
| Inputs | Definition | Unit |
|---|---|---|
n_i | Number of members in risk group i of the pool or rating cell | people |
c_i | Expected annual cost of care for a member of risk group i | £ per member per year |
P | Community-rated premium per member per year, before loadings for administration and profit | £ per member per year |
|---|
Function
Community-rated premium, cross-subsidy and risk equalisation function
Maps the number of members and the expected annual cost of each risk group in a community-rated pool to the single premium every member pays, the implicit cross-subsidy each group gives or receives, the risk equalisation transfers that offset those cross-subsidies for insurers, and the late-entry loadings that Ireland and Australia add to the premium of people who first buy cover when older. The same difference between payment and expected cost, read from the insurer's side, is the expected profit per member on the Cream Skimming page (HE-FM-CSKM-001).
Computational function
Computational function: community-rated pool from group counts and expected costs to premium, cross-subsidies and fund balance
Takes the inputs a regulator or insurer usually holds for a community-rated pool, the number of members and the expected annual cost in each risk group, and returns the community-rated premium, the cross-subsidy per member of each group, the risk equalisation transfer per member of each group and the balance of the equalisation fund. It applies HE-FM-CRAT-001 and then HE-FM-CRAT-002 and HE-FM-CRAT-003 with the premium it has just computed, so the later steps use the result of the first. Running it again with changed counts shows how the premium and the cross-subsidies move when low-risk members leave.
Inputs and outputs:
n_i: Number of members in each risk group; required, zero or above, with at least one member in total. Unit: people.;c_i: Expected annual cost per member of each group, in the same order; required. Unit: £ per member per year.;P: Community-rated premium before loadings. Unit: £ per member per year.;s_i: Cross-subsidy per member of each group, positive when paid and negative when received. Unit: £ per member per year.;T_i: Risk equalisation transfer to the insurer per member of each group, negative when paid into the fund. Unit: £ per member per year.;B: Balance of the equalisation fund, the transfers summed over all members, which is zero up to rounding. Unit: £ per year.Assumption: All members belong to one pool or rating cell, the premium carries no loadings, and the fund uses the same risk groups, counts and premium as the pool. The counts are those who buy at the resulting premium; the function does not model who leaves.
Worked example (The article's pool of 1,000 members): 800 low-risk members at £1,000 and 200 high-risk members at £6,000 give the article's premium of £2,000, cross-subsidies of £1,000 paid and £4,000 received, matching transfers, and a balanced fund.
n_i = [800,200]; c_i = [1000,6000]; P = 2000; s_i = [1000,-4000]; T_i = [-1000,4000]; B = 0Worked example (After 500 low-risk members leave): The remaining 300 low-risk and 200 high-risk members give the article's premium of £3,000; the cross-subsidies and transfers of £2,000 and £3,000 are computed here for illustration.
n_i = [300,200]; c_i = [1000,6000]; P = 3000; s_i = [2000,-3000]; T_i = [-2000,3000]; B = 0Worked example (Equal expected costs in every group): When every group has the same expected cost there is no cross-subsidy and no transfer, a limiting case that checks the implementation.
n_i = [800,200]; c_i = [1000,1000]; P = 1000; s_i = [0,0]; T_i = [0,0]; B = 0Excel:
=SUMPRODUCT(Members,ExpectedCost)/SUM(Members)in a cell named Premium returns the premium;=Premium-ExpectedCostfilled down beside each group gives the cross-subsidies,=ExpectedCost-Premiumthe transfers, and=SUMPRODUCT(Members,ExpectedCost-Premium)the fund balance.R:
community_pool <- function(n, cost) { P <- sum(n*cost)/sum(n); s <- P-cost; tr <- cost-P; list(premium = P, cross_subsidy = s, transfer = tr, fund_balance = sum(n*tr)) }Vectorised over the risk groups;community_pool(c(800, 200), c(1000, 6000))returns the article's pool.Python:
def community_pool(n, cost): P = sum(a*b for a, b in zip(n, cost))/sum(n); s = [P-c for c in cost]; tr = [c-P for c in cost]; return {'premium': P, 'cross_subsidy': s, 'transfer': tr, 'fund_balance': sum(a*b for a, b in zip(n, tr))}Plain Python with no imports; lists hold one value per risk group.Test (Equalisation fund balances): The transfers weighted by the number of members sum to zero. Expected result: TRUE. Excel check:
=ABS(SUMPRODUCT(Members,ExpectedCost-Premium))<1E-6Test (Premium rises when low-risk members leave): The article's pool after the exit has a higher premium than before it. Expected result: TRUE. Excel check:
=SUMPRODUCT({300,200},{1000,6000})/SUM({300,200})>SUMPRODUCT({800,200},{1000,6000})/SUM({800,200})Common error (Keeping the old premium after members leave): If the fund keeps the £2,000 premium after 500 low-risk members leave, it collects £300,000 from the remaining low-risk members and pays out £800,000 for the high-risk members, a deficit of £500,000, computed here for illustration. The premium and transfers are recomputed from the new counts.
Source: van de Ven WPMM, Hamstra G, van Kleef RC, Reuser M, Stam PJA. The goal of risk equalization in regulated competitive health insurance markets. European Journal of Health Economics. 2023;24(1):111-123. Sections on regulation-induced problems and on risk selection, on the implicit cross-subsidies from low risks to high risks under community rating, and the abstract on removing the predictable over- and undercompensations of subgroups through risk equalisation.
P = sum_(i=1)^I [n_i * c_i] / sum_(i=1)^I [n_i]; s_i = P - c_i; T_i = c_i - P; B = sum_(i=1)^I [n_i * T_i]
Try this function
Implementations
Excel
Community-rated premium from group counts and costs in one Excel cell
With the number of members in each risk group in a range named Members and the expected cost per member in a range named ExpectedCost, in the same order, Excel returns the premium before loadings.
=SUMPRODUCT(Members,ExpectedCost)/SUM(Members)
Assumptions
No loading for administration or profit in the community-rated premium
The formula gives the premium before loadings. A gross premium adds loadings for administration and profit, as on the Actuarial Analysis page (HE-FM-ACTA-002).
One community-rated pool or rating cell
Every member in the calculation is charged the same price. Under adjusted community rating each permitted rating cell has its own premium, computed in the same way from the members in that cell.
Membership taken as given in the community-rated premium
The counts n_i are the people who buy at the resulting premium. If buying cover is voluntary, low-risk members may leave when the premium exceeds their expected cost, which changes the counts and therefore the premium, so the formula is applied again with the new counts.
Worked examples
Community-rated premium for the article's pool of 1,000 members
In the article's illustrative market, 800 low-risk members expected to cost £1,000 a year and 200 high-risk members expected to cost £6,000 have total expected costs of £2,000,000. The premium is 2,000,000 ÷ 1,000 = 2,000, or £2,000 a year for everyone.
n_i = [800,200]; c_i = [1000,6000]; P = 2000
Community-rated premium after 500 low-risk members leave
If 500 low-risk members leave, the remaining 300 low-risk and 200 high-risk members have expected costs of £1,500,000, and dividing by 500 members gives the article's premium of £3,000.
n_i = [300,200]; c_i = [1000,6000]; P = 3000
Community-rated premium when every risk group has the same expected cost
If both groups were expected to cost £1,000, the premium would equal that cost and nobody would pay more than their expected cost, a limiting case computed here for illustration.
n_i = [800,200]; c_i = [1000,1000]; P = 1000
Common errors
Averaging risk group costs without weighting by membership
The unweighted mean of £1,000 and £6,000 is £3,500, computed here for illustration, which overstates the article's premium of £2,000 because only a fifth of members are high risk.
Holding the community-rated premium fixed after low-risk members leave
After 500 low-risk members leave, the article's pool expects £1,500,000 in costs from 500 members. Charging the old £2,000 would raise £1,000,000 and leave a shortfall of £500,000, computed here for illustration; the community rate for the remaining pool is £3,000.
Sources
Mandatory community rating and implicit cross-subsidies in regulated competition
van de Ven WPMM, Hamstra G, van Kleef RC, Reuser M, Stam PJA. The goal of risk equalization in regulated competitive health insurance markets. European Journal of Health Economics. 2023;24(1):111-123. Sections on regulation to guarantee access and on regulation-induced problems, which describe mandatory community rating as a ban on premium differentiation, per product where different versions of the basic cover are allowed, whose goal is to enforce implicit cross-subsidies from low risks to high risks.
Irish Health Insurance Authority description of community rating as an average-cost premium
Health Insurance Authority. Lifetime community rating (LCR). Dublin: HIA. Section on why Lifetime Community Rating was introduced, which states that community rating generally bases premiums on the average cost of the risk to insure all persons on a policy rather than on the risk of insuring each individual person.
Canonical Identity
Stable URI · Machine-readable · Resolvable · CC BY 4.0