Arte SheetsLearn. Try. Understand.

Actuarial Science & Credibility Pricing

Bühlmann-Straub Credibility Factor Z and Pure Premium Formula

Blend policyholder loss experience X_bar with manual class rate mu using Bühlmann-Straub credibility weight Z = (m * a) / (m * a + v) without division-by-zero traps.

Balance noisy small-fleet claim experience against collective class heterogeneity

In Bühlmann-Straub (1970) empirical Bayes ratemaking, a risk with exposure volume m_exp > 0 (such as vehicle-years) and observed loss cost X_bar >= 0 is blended with class manual pure premium mu_manual > 0 using Expected Value of Process Variance v = EPV >= 0 (within-risk random claim noise per unit exposure) and Variance of Hypothetical Means a = VHM >= 0 (true between-risk heterogeneity across insureds). Textbook formulas write Z = m_exp / (m_exp + v / a) with Bühlmann constant k = v / a, which crashes with #DIV/0! whenever a rating class is homogeneous (a = 0)!

Multiplying numerator and denominator by a yields the division-free algebraic identity Z = (m_exp * a) / (m_exp * a + v), which handles BOTH edge cases smoothly: a = 0 -> Z = 0 (100% manual rate) and v = 0 -> Z = 1 (100% self-rating)! Test on a commercial fleet with m_exp = 150 vehicle-years (B2), observed loss cost X_bar = 720 (B3), manual rate mu_manual = 500 (B4), EPV v = 100,000 (B5), and VHM a = 1,000 (B6): Bühlmann’s half-credibility threshold is k = 100,000 / 1,000 = 100 vehicle-years, Z = 150,000 / 250,000 = 0.6000, and credibility pure premium is 0.60 * 720 + 0.40 * 500 = 632.00!

Bühlmann-Straub Metric (m=150, v=100k, a=1k)FormulaVerified Output
Bühlmann Half-Credibility Exposure (k)IF(a = 0, "Infinite (Z=0)", v / a)100.00 exposures
Credibility Factor (Z)(m_exp * a) / (m_exp * a + v)0.6000 (60.00%)
Complement of Credibility (1 - Z)v / (m_exp * a + v)0.4000 (40.00%)
Credibility Pure Premium (P_cred)Z * X_bar + (1 - Z) * mu_manual632.00

Singularity-Free Bühlmann-Straub Credibility Factor Z = (m * a) / (m * a + v) Formula

Validate m_exp > 0, v >= 0, a >= 0, and v + a > 0 before computing Z without dividing v / a.

=LET(m_ex, B2, v_epv, B5, a_vhm, B6, IF(OR(m_ex <= 0, v_epv < 0, a_vhm < 0, v_epv + a_vhm <= 0), "Invalid Credibility Input", ROUND((m_ex * a_vhm) / (m_ex * a_vhm + v_epv), 4)))

Credibility-Weighted Pure Premium Z * X_bar + (1 - Z) * mu_manual Formula

Shrink extreme small-sample experience X_bar smoothly toward collective manual pure premium mu_manual.

=LET(m_ex, B2, x_br, B3, mu_m, B4, v_epv, B5, a_vhm, B6, IF(OR(m_ex <= 0, x_br < 0, mu_m <= 0, v_epv < 0, a_vhm < 0, v_epv + a_vhm <= 0), "Invalid Credibility Input", LET(z_cr, (m_ex * a_vhm) / (m_ex * a_vhm + v_epv), ROUND(z_cr * x_br + (1 - z_cr) * mu_m, 2))))

Try the example

Use the original values or change them to test your understanding.

Further reading