Skip to content

CEFR Explained

The Certainty-Equivalent Funded Ratio (CEFR) is a metric that measures how well-funded your retirement is after accounting for real-world frictions.

What CEFR Measures

Unlike simple asset-to-liability ratios, CEFR applies three "haircuts" to your assets:

1. Tax Haircut

Different account types have different tax implications:

Account Type Tax Rate Example
Tax-Exempt 0% Roth IRA, Roth 401(k)
Taxable 15% Brokerage accounts (capital gains)
Tax-Deferred 25% Traditional IRA, 401(k)

2. Liquidity Haircut

How easily can you access your money?

Liquidity Class Factor Example
Cash 100% Savings, checking
Near-Cash 98% Money market, CDs
Marketable 95% Stocks, bonds
Retirement 90% IRAs before 59.5
Illiquid 80% Real estate, private equity

3. Reliability Haircut

Concentrated positions carry additional risk:

Concentration Factor Example
Diversified 100% Index funds
Moderate 95% Sector funds
Concentrated 85% Single stock
Highly Concentrated 70% Company stock, single property

The CEFR Formula

CEFR = Σ(Asset × (1-τ) × λ × ρ) / PV(Liabilities)

Where:

  • τ = tax rate for the account type
  • λ = liquidity factor
  • ρ = reliability factor
  • PV(Liabilities) = present value of future spending

Interpreting Your CEFR

CEFR Range Status Interpretation
≥ 2.0 Excellent Very well-funded, significant margin
1.5 - 2.0 Strong Well-funded with comfortable margin
1.0 - 1.5 Adequate Fully funded for expected needs
0.8 - 1.0 Marginal Some shortfall risk
< 0.8 Underfunded Action needed

Example Calculation

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

assets = [
    Asset(
        name="401(k)",
        value=500_000,
        account_type=AccountType.TAX_DEFERRED,  # 25% tax
        liquidity_class=LiquidityClass.RETIREMENT,  # 90% liquidity
        concentration_level=ConcentrationLevel.DIVERSIFIED,  # 100% reliable
    ),
]

# Effective value: $500k × 0.75 × 0.90 × 1.00 = $337,500

liabilities = [
    Liability(name="Expenses", annual_amount=50_000, is_essential=True),
]

result = compute_cefr(
    balance_sheet=BalanceSheet(assets=assets),
    liabilities=liabilities,
    planning_horizon=30,
)

Why CEFR Matters

Traditional metrics like net worth or simple asset ratios can be misleading:

  • A $1M 401(k) isn't really $1M after taxes
  • Illiquid assets can't easily fund retirement spending
  • Concentrated positions carry sequence risk

CEFR gives you a more realistic picture of your retirement readiness.