Skip to content

fix: suspend dividends when equity falls below capital floor #1557

@AlexFiliakov

Description

@AlexFiliakov

Problem

The simulation engine pays dividends (30% of after-tax income) whenever gross >= 0, even when the company has nearly zero equity. A firm with $100 in equity and $50 of operating income still pays $7.88 in dividends, accelerating ruin.

This is unrealistic: real boards suspend dividends well before insolvency and redirect all earnings to rebuilding the capital base.

Impact

  • Overstates ruin probability across all deductible levels
  • Artificially penalises high-deductible strategies (which are more likely to enter distress)
  • Biases the optimal deductible downward

Proposed Fix

Add a capital adequacy floor (e.g., 10% of starting assets). When equity falls below this floor, set the effective retention ratio to 1.0 (retain all earnings, pay no dividends):

RUIN_CAPITAL_FLOOR = INITIAL_ASSETS * 0.10

capital_adequate = assets > RUIN_CAPITAL_FLOOR
effective_retention = np.where(capital_adequate, RETENTION_RATIO, 1.0)

delta = np.where(gross >= 0,
                 after_tax * effective_retention,
                 after_tax)

This should be applied in:

  • Simulation engine (ergodic_insurance/simulation.py)
  • MonteCarloEngine (ergodic_insurance/monte_carlo.py)
  • Any notebook simulation loops

Scope

  • The floor percentage (10%) could be configurable via ManufacturerConfig or a simulation parameter
  • Consider a graduated scale (e.g., linear taper from 100% retention at 5% capital to normal retention at 20% capital)
  • Already implemented locally in notebook 12_vol_drag_vs_prem_drag.ipynb as a proof-of-concept

References

  • Notebook 12: Volatility Drag vs Premium Drag experiment
  • IRC §162 (dividend deductibility limitations under financial distress)

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions