Skip to content

Tutorials

Interactive Jupyter notebooks to learn the Financial Health Calculator.

Colab Notebooks

These notebooks run in Google Colab - no installation required!

1. CEFR Basics

Open In Colab

Learn the fundamentals of CEFR:

  • What CEFR measures
  • Defining assets with tax and liquidity characteristics
  • Defining liabilities and spending needs
  • Calculating and interpreting your CEFR
  • Visualizing the haircut breakdown

2. Time Distribution Analysis

Open In Colab

Explore Monte Carlo simulations:

  • Running basic simulations
  • Understanding success rates
  • Interpreting percentile bands
  • Visualizing portfolio trajectories
  • Sensitivity analysis

3. Withdrawal Strategy Comparison

Open In Colab

Compare withdrawal approaches:

  • Fixed SWR (4% rule)
  • Guardrails strategy
  • Variable Percentage Withdrawal
  • RMD-style withdrawals
  • Trade-offs between stability and spending

Running Locally

Clone the repo and run notebooks locally:

git clone https://github.com/engineerinvestor/financial-health-calculator.git
cd financial-health-calculator
pip install -e ".[dev]"
jupyter notebook examples/

Example Code

Quick CEFR Check

from fundedness import Asset, BalanceSheet, Liability, compute_cefr
from fundedness.models.assets import AccountType, LiquidityClass, ConcentrationLevel

# Simple example
result = compute_cefr(
    balance_sheet=BalanceSheet(assets=[
        Asset(
            name="Portfolio",
            value=1_000_000,
            account_type=AccountType.TAXABLE,
            liquidity_class=LiquidityClass.MARKETABLE,
            concentration_level=ConcentrationLevel.DIVERSIFIED,
        ),
    ]),
    liabilities=[
        Liability(name="Spending", annual_amount=40_000, is_essential=True),
    ],
    planning_horizon=30,
)

print(f"CEFR: {result.cefr:.2f} - {result.get_interpretation()}")

Quick Simulation

from fundedness import run_simulation

results = run_simulation(
    initial_portfolio=1_000_000,
    annual_spending=40_000,
    years=30,
)

print(f"Success Rate: {results.success_rate:.1%}")

Quick Visualization

from fundedness import run_simulation
from fundedness.viz import plot_simulation_fan_chart

results = run_simulation(
    initial_portfolio=1_000_000,
    annual_spending=40_000,
    years=30,
)

fig = plot_simulation_fan_chart(results)
fig.show()