AgentSkillsCN

Calculate Pension Liability

计算养老金负债

SKILL.md

Skill: Calculate Pension Liability

Domain

financial_services

Description

Calculates defined benefit pension plan liabilities using actuarial methods including PBO, ABO, and funding status assessment.

Tags

pension, actuarial, benefits, liability, funding, ERISA

Use Cases

  • Pension obligation calculation
  • Funding status assessment
  • Actuarial assumption validation
  • Regulatory reporting

Proprietary Business Rules

Rule 1: PBO Calculation

Projected benefit obligation using projected salary growth.

Rule 2: Discount Rate Selection

Appropriate discount rate determination.

Rule 3: Mortality Table Application

Life expectancy assumptions for benefit payments.

Rule 4: Funding Status Assessment

Comparison of plan assets to liabilities.

Input Parameters

  • plan_id (string): Plan identifier
  • participant_data (list): Plan participant census
  • plan_provisions (dict): Benefit formula details
  • actuarial_assumptions (dict): Valuation assumptions
  • asset_values (dict): Plan asset data
  • valuation_date (string): Valuation date

Output

  • pbo (float): Projected benefit obligation
  • abo (float): Accumulated benefit obligation
  • funding_status (dict): Funded percentage and shortfall
  • expense_components (dict): Pension expense breakdown
  • sensitivity_analysis (dict): Assumption sensitivity

Implementation

The calculation logic is implemented in pension_calculator.py and references data from CSV files:

  • default_assumptions.csv - Reference data
  • discount_rate_guidance.csv - Reference data
  • mortality_tables.csv - Reference data
  • benefit_formulas.csv - Reference data
  • erisa_requirements.csv - Reference data
  • accounting_standards.csv - Reference data
  • asset_allocation_benchmarks.csv - Reference data
  • parameters.csv - Reference data.

Usage Example

python
from pension_calculator import calculate_pension

result = calculate_pension(
    plan_id="PEN-001",
    participant_data=[{"id": "EMP-001", "age": 55, "service_years": 25, "salary": 100000}],
    plan_provisions={"formula": "final_average", "benefit_pct": 0.015},
    actuarial_assumptions={"discount_rate": 0.055, "salary_growth": 0.03},
    asset_values={"market_value": 50000000, "expected_return": 0.07},
    valuation_date="2025-12-31"
)

print(f"PBO: ${result['pbo']:,.0f}")

Test Execution

python
from pension_calculator import calculate_pension

result = calculate_pension(
    plan_id=input_data.get('plan_id'),
    participant_data=input_data.get('participant_data', []),
    plan_provisions=input_data.get('plan_provisions', {}),
    actuarial_assumptions=input_data.get('actuarial_assumptions', {}),
    asset_values=input_data.get('asset_values', {}),
    valuation_date=input_data.get('valuation_date')
)