The Fee Problem in 403(b) Plans

403(b) plans historically attracted insurance companies offering annuity products — which are high-margin and high-fee. The Department of Labor has tightened disclosure rules, but older plans at school districts and small nonprofits still commonly feature total annual costs of 1.5–2.5%. On a $200,000 balance growing for 20 years, a 2% annual fee cost compared to a 0.1% fee costs $152,000 in lost growth.

Common 403(b) fees — where they hide and how to find them

Fee TypeTypical RangeWho Charges ItHow to Find It
Expense ratio0.03%–2.0%+Mutual fund or annuityFund fact sheet or prospectus
Mortality & expense fee (M&E)0.50%–1.50%Variable annuity insurerAnnuity contract disclosures
Administrative fee0.10%–0.50%Plan administrator/employerPlan documents (Form 5500)
Surrender charge5%–10% of withdrawalAnnuity issuerAnnuity contract (often buried)
Advisor fee0.50%–1.50%Financial advisorAdvisor agreement
Sub-transfer agent fee0.15%–0.35%Fund companyFund prospectus

Annuity Products: The Most Common Hidden Cost

Many 403(b) participants are enrolled in variable annuity products without understanding the fee structure. These products combine investment subaccounts with insurance features — and charge for both. A typical variable annuity in a 403(b) carries an expense ratio of 0.70% (the subaccount) plus a mortality and expense fee of 1.20% — for a total annual cost of 1.90% before any administrative fees.

⚠️1.9% vs 0.05%: The 30-Year Damage

A teacher contributing $400/month for 30 years at a 7% gross return earns $452,000 at 0.05% total fees. At 1.9% fees (net 5.1% return), she earns only $337,000. The fee difference costs her $115,000 — more than a quarter of her final balance.

Surrender Charges: The Exit Trap

Variable annuity products commonly include surrender periods — typically 5–10 years — during which you cannot transfer your money to better investments without paying a surrender charge of 5–10% of account value. A $75,000 balance with a 7% surrender charge faces a $5,250 penalty to move to better investments. Many employees are effectively locked into poor-performing, high-fee products for years.

How to Identify Your Plan’s True Costs

  1. Log into your 403(b) account and look at the investment options available
  2. Find the expense ratio for each fund — it should be in a fund fact sheet or the plan prospectus
  3. If your investment is an annuity, request the annuity contract and look for M&E charges and surrender schedule
  4. Check for an administrative or record-keeping fee — often $25–$75/year or 0.10–0.40% of balance
  5. Ask your HR department if there is an advisor fee charged to participant accounts
  6. Compare total cost vs a Vanguard or Fidelity index fund equivalent

What Good vs Bad Fees Look Like

403(b) fee benchmarks — what to target and what to avoid

Best-in-ClassAcceptableExpensiveAvoid
Total annual costUnder 0.15%0.15%–0.50%0.50%–1.0%Above 1.0%
Example fundVanguard VINIX (0.03%)Fidelity 500 Index (0.015%)Active mutual fundVariable annuity with M&E
30-yr impact on $300K-$4,000-$40,000-$100,000-$200,000+

What to Do If Your Plan Has High Fees

If your 403(b) is loaded with high-fee products, you have several options: 1) Switch to the lowest-cost index fund available within the plan. 2) Contribute only enough to capture the employer match, then direct additional savings to a Roth IRA with low-cost options. 3) Petition HR to improve the plan investment lineup — employee pressure has worked at many school districts. 4) If eligible, explore a 403(b)(7) custodial account structure which may offer better fund options than the annuity contract.

💡The 1% Rule of Thumb

If your total 403(b) annual costs exceed 1%, your plan likely needs improvement. File a complaint with HR, request the plan’s Form 5500 to understand total fees, or consult a fee-only financial advisor to evaluate alternatives.

See How Fees Affect Your Retirement Balance

Adjust the expected return input downward by your plan’s fee percentage to see the real impact on your final balance.

Open 403(b) Calculator →