Quick Start Guide
This guide will help you get started with insurance optimization analysis in under 30 minutes. We’ll walk through setting up your company profile, understanding your risks, and running your first simulation.
Prerequisites
Before starting, ensure you have:
Python environment with the ergodic_insurance package installed
Access to Jupyter notebooks or Python IDE
Basic company financial information:
Current assets/capital
Annual revenue
Operating margin
Historical loss data (if available)
Step 1: Understanding Your Company Profile
First, let’s define your company using our configuration system. Create a YAML file describing your business:
company:
name: "My Manufacturing Co"
starting_assets: 10_000_000 # Current asset base in dollars
financial:
base_revenue: 15_000_000 # Annual revenue
base_operating_margin: 0.08 # 8% profit margin
tax_rate: 0.25 # 25% corporate tax
working_capital_pct: 0.20 # 20% of revenue tied up in working capital
growth:
base_growth_rate: 0.06 # 6% organic growth
growth_volatility: 0.15 # 15% standard deviation
Key Parameters Explained
Starting Assets: Your company’s current capital base. This is what you’re protecting with insurance.
Operating Margin: Your profit margin before extraordinary items. Higher margins provide more buffer against losses.
Growth Volatility: How much your revenue varies year-to-year. Tech companies might be 30-40%, utilities 5-10%.
Step 2: Defining Your Risk Profile
Next, characterize your loss exposure. We categorize losses into three buckets:
losses:
attritional:
frequency: 5.0 # Average 5 small losses per year
severity_mean: 50_000 # Average $50K per loss
severity_cv: 0.8 # Coefficient of variation
large:
frequency: 0.3 # One large loss every ~3 years
severity_mean: 2_000_000 # Average $2M when occurs
severity_cv: 1.2
catastrophic:
frequency: 0.02 # One catastrophic loss every ~50 years
severity_mean: 15_000_000 # Average $15M when occurs
severity_cv: 0.5
Understanding Loss Categories
- Attritional Losses (High Frequency, Low Severity)
Equipment breakdowns
Minor accidents
Small liability claims
Typically retained by company
- Large Losses (Medium Frequency, Medium Severity)
Major equipment failure
Significant liability event
Supply chain disruption
Primary insurance layer target
- Catastrophic Losses (Low Frequency, High Severity)
Natural disasters
Major product recall
Cyber attack
Excess insurance layer target
Step 3: Exploring Insurance Structures
Our framework models multi-layer insurance programs. Here’s a typical structure:
insurance_program:
retention: 100_000 # You pay first $100K of any loss
layers:
- name: "Primary"
limit: 5_000_000 # Covers $100K to $5.1M
base_premium_rate: 0.015 # 1.5% of limit = $75K/year
- name: "First Excess"
limit: 20_000_000 # Covers $5.1M to $25.1M
base_premium_rate: 0.008 # 0.8% of limit = $160K/year
- name: "Second Excess"
limit: 25_000_000 # Covers $25.1M to $50.1M
base_premium_rate: 0.004 # 0.4% of limit = $100K/year
Visualizing Your Insurance Tower
Loss Amount Coverage Annual Premium
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
$50M ┌─────────────────────┐
│ Second Excess │ $100K
$25M ├─────────────────────┤
│ First Excess │ $160K
$5M ├─────────────────────┤
│ Primary Layer │ $75K
$100K├─────────────────────┤
│ Retention │ You Pay
$0 └─────────────────────┘
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Total Premium: $335K/year
Step 4: Running Your First Simulation
Now let’s run a basic simulation using Python:
from ergodic_insurance.config_loader import load_config
from ergodic_insurance.manufacturer import WidgetManufacturer
from ergodic_insurance.insurance_program import InsuranceProgram
from ergodic_insurance.monte_carlo import MonteCarloEngine
from ergodic_insurance.ergodic_analyzer import ErgodicAnalyzer
# Load your configuration
config = load_config('my_company.yaml')
# Create manufacturer with your parameters
manufacturer = WidgetManufacturer(
starting_assets=10_000_000,
base_revenue=15_000_000,
base_operating_margin=0.08
)
# Define insurance program
insurance = InsuranceProgram(
retention=100_000,
layers=[
{'limit': 5_000_000, 'attachment': 100_000, 'base_premium_rate': 0.015},
{'limit': 20_000_000, 'attachment': 5_100_000, 'base_premium_rate': 0.008}
]
)
# Run Monte Carlo simulation
engine = MonteCarloEngine(n_simulations=1000)
results = engine.run(
manufacturer=manufacturer,
insurance_program=insurance,
n_years=10
)
# Analyze results
analyzer = ErgodicAnalyzer()
metrics = analyzer.calculate_metrics(results)
print(f"10-Year Survival Probability: {metrics['survival_rate']:.1%}")
print(f"Time-Average Growth Rate: {metrics['time_avg_growth']:.2%}")
print(f"Expected Terminal Wealth: ${metrics['expected_terminal_wealth']:,.0f}")
Step 5: Using Pre-Built Notebooks
For easier analysis, use our pre-configured Jupyter notebooks:
- Basic Analysis (
notebooks/01_basic_manufacturer.ipynb
) Start here to understand the manufacturer model and basic simulations.
- Long-Term Simulations (
notebooks/02_long_term_simulation.ipynb
) Explore 10, 20, and 50-year horizons to see compounding effects.
- Growth Dynamics (
notebooks/03_growth_dynamics.ipynb
) Understand how insurance affects growth trajectories.
- Ergodic Demo (
notebooks/04_ergodic_demo.ipynb
) See the difference between time and ensemble averages.
- Risk Metrics (
notebooks/05_risk_metrics.ipynb
) Calculate VaR, CVaR, and other risk measures.
To run a notebook:
cd ergodic_insurance/notebooks
jupyter notebook 01_basic_manufacturer.ipynb
Step 6: Interpreting Initial Results
Your first simulation will produce metrics like:
===== Simulation Results =====
Scenarios Run: 1,000
Time Horizon: 10 years
Without Insurance:
- Survival Rate: 72.3%
- Mean Growth (survivors): 5.8%/year
- Median Terminal Wealth: $14.2M
- 5% VaR: -$3.1M (ruin)
With Insurance ($100K retention, $25M limit):
- Survival Rate: 94.7%
- Mean Growth: 7.2%/year
- Median Terminal Wealth: $17.8M
- 5% VaR: $8.9M
- Total Premiums Paid: $3.35M
- Net Benefit: +$3.6M
Key Metrics to Focus On
Survival Rate: Percentage of scenarios avoiding ruin
Time-Average Growth: Your actual experienced growth rate
Terminal Wealth Distribution: Range of possible outcomes
Value at Risk (VaR): Worst-case scenarios (5th percentile)
Quick Decision Rules
Based on thousands of simulations, here are rules of thumb:
- When to Buy More Insurance:
Survival rate < 90% over 10 years
VaR shows negative terminal wealth
Growth volatility > 20%
Correlation between revenue and losses > 0.3
- Optimal Retention Level:
Start with 1-2% of assets
Lower if: High volatility, thin margins
Higher if: Stable revenue, strong balance sheet
- Limit Selection:
Minimum: 99th percentile annual loss
Recommended: 99.5th percentile
Consider: Largest historical loss × 2
Next Steps
Now that you’ve run your first simulation:
Proceed to Running Your Analysis for detailed analysis procedures
Use Decision Framework to interpret results
Review Model Cases for similar companies
Explore Advanced Topics for customization
Common Issues
- “My survival rate is very low”
Your retention might be too high. Try reducing it by 50%.
- “Insurance seems too expensive”
Check if you’re modeling correlation between losses and revenue correctly.
- “Results vary significantly between runs”
Increase simulations to 10,000 for more stable results.
- “How do I model my specific industry?”
See Advanced Topics for customizing loss distributions.
Ready for More?
You’ve successfully: ✓ Set up your company profile ✓ Defined your risk parameters ✓ Configured insurance structures ✓ Run your first simulation ✓ Interpreted basic results
Continue to Running Your Analysis to dive deeper into optimization techniques.