1. 寿险保费计算基础

寿险保费计算基础:净保费与毛保费 学习卡片

任务说明

本案例用一张简化生命表与预定利率,计算 3 年期定期寿险的净保费(只覆盖死亡赔付),再叠加费用附加与利润附加,得到毛保费。核心公式:

  • 净保费现值 = Σ(每年死亡概率 × 保额 × 折现因子)
  • 毛保费 = 净保费 / (1 − 费用附加率 − 利润附加率)

计算流程

生命表 qx + 预定利率 i 逐年死亡赔付 × 折现因子 v^t 净保费 PV(赔付) 毛保费 ÷(1−附加)

完整代码

def net_premium(qx_list, sum_assured, i):
    """计算定期寿险净保费(趸缴)。
    qx_list: 各年死亡概率,如 [q0, q1, q2]
    sum_assured: 保额
    i: 预定利率
    """
    v = 1 / (1 + i)
    pv = 0.0
    for t, q in enumerate(qx_list, start=1):
        pv += q * sum_assured * (v ** t)
    return pv

def gross_premium(net, expense_rate, profit_rate):
    """净保费加费用附加与利润附加得到毛保费。"""
    loading = expense_rate + profit_rate
    if loading >= 1:
        raise ValueError("附加率之和必须小于1")
    return net / (1 - loading)

if __name__ == "__main__":
    # 简化生命表:3年期,各年死亡概率
    qx = [0.01, 0.015, 0.02]
    SA = 100000      # 保额
    i = 0.03         # 预定利率 3%
    expense = 0.10   # 费用附加 10%
    profit = 0.05    # 利润附加 5%

    net = net_premium(qx, SA, i)
    gross = gross_premium(net, expense, profit)

    print(f"净保费 = {net:.2f}")
    print(f"毛保费 = {gross:.2f}")

运行与验证

直接运行脚本:python premium.py。程序会打印净保费与毛保费。

判定标准:

  • 净保费应等于 0.01×100000/1.03 + 0.015×100000/1.03² + 0.02×100000/1.03³ ≈ 4245.66
  • 毛保费 = 净保费 / (1 − 0.10 − 0.05) = 净保费 / 0.85 ≈ 4994.89
  • 若把 expense + profit 调到 ≥1,应抛出 ValueError,验证边界保护生效。

可自行修改 qx、i 或附加率,观察保费变化是否符合预期方向(利率升高净保费下降,附加率升高毛保费上升)。