DIY Form 5500 Deep Dive: Pull Your Employer’s 2024 Filing in 10 Minutes and Benchmark Hidden Fees

July 20, 2025

Introduction

Every year, your employer files a Form 5500 with the Department of Labor, revealing exactly how much your 401(k) plan pays in fees—and who's getting paid. The 2024 Form 5500 must be electronically filed in the ERISA Filing Acceptance System (EFAST2), making this data more accessible than ever (DOL 2024 Instructions). Yet most employees never see these filings, missing critical insights that could save thousands in retirement fees over their careers.

This tutorial walks you through downloading raw Form 5500 data from the DOL's EFAST2 portal, locating Schedule C service-provider payments, and comparing them to plan-size benchmarks. The Form 5500 is open to public inspection, giving you legal access to your plan's complete fee structure (DOL 2023 Form 5500). With screenshots and code snippets for both Excel and Python, you'll produce a one-page fee report you can share with HR or use when considering a rollover.

Whether you're evaluating your current plan or researching options for consolidating old accounts, understanding these hidden costs is crucial. Companies like Beagle Financial Services help employees locate old 401(k) accounts and discover hidden fees, but knowing how to analyze this data yourself puts you in the driver's seat (Meet Beagle Reviews).

Why Form 5500 Data Matters for Your Retirement

The Hidden Cost of 401(k) Fees

Most employees focus on investment returns while ignoring the fee drag that can cost tens of thousands over a career. The Form 5500 filing reveals the complete picture: administrative fees, investment management costs, and service provider payments that aren't always transparent in your quarterly statements.

Beagle Financial Services brands itself as a "financial concierge" and has helped people from major companies like Google, Walmart, Uber, and Ford with their financial management when switching companies (Meet Beagle Reviews). This widespread need for fee transparency across major employers highlights why understanding Form 5500 data is so valuable.

What Schedule C Reveals

Schedule C of Form 5500 lists every service provider paid more than $5,000 annually, including:

• Plan administrators and recordkeepers

• Investment advisors and consultants

• Auditors and legal counsel

• Broker-dealers and custodians

• Third-party administrators (TPAs)

Unlike free but limited 401(k) search services that require your former plan sponsor to have registered you on their site, accessing Form 5500 data gives you complete visibility into any plan's fee structure (Beagle Review 2025).

Step 1: Accessing the DOL EFAST2 Portal

Getting Started with EFAST2

The Department of Labor's EFAST2 system houses all Form 5500 filings since 2009. No paper Form 5500 can be filed by mail or other delivery service—everything goes through this electronic system (DOL 2024 Instructions).

To access the data:

1. Navigate to the DOL EFAST2 website

2. Click "Research/Public Disclosure"

3. Select "Form 5500 Search"

4. Choose your search criteria

The AICPA provides detailed instructions for downloading Form 5500/5500-SF data sets from the Department of Labor EFAST2 website, including login options for members and joining options for non-members (AICPA DOL EFAST Instructions).

Search Strategy

You can search by:

Plan Name: Your company's 401(k) plan name

Sponsor Name: Your employer's legal name

EIN: Employer Identification Number (found on your W-2)

Plan Number: Usually 001 for the main 401(k) plan

Pro Tip: Large companies often have multiple plans. Search broadly first, then narrow down to your specific plan.

Step 2: Downloading and Understanding the Data

File Formats Available

The EFAST2 system provides data in multiple formats:

PDF: Human-readable but hard to analyze

XML: Machine-readable but requires parsing

CSV: Best for spreadsheet analysis

Bulk Downloads: Entire datasets for researchers

Key Form 5500 Sections

SectionPurposeKey Data PointsBasic Plan InformationPlan overviewParticipants, assets, plan typeFinancial InformationPlan financialsBeginning/ending assets, contributionsSchedule AInsurance contractsSeparate account valuesSchedule CService providersFees paid to each providerSchedule DPlan investmentsInvestment details and performanceSchedule HLarge plan financialsDetailed financial statements

The Form 5500 is used to report information concerning employee benefit plans and Direct Filing Entities (DFEs), making it applicable to various types of plans including multiemployer plans, multiple-employer plans, and single-employer plans (DOL 2023 Form 5500).

Step 3: Analyzing Schedule C Service Provider Fees

Understanding Schedule C Structure

Schedule C requires disclosure of any service provider receiving $5,000+ annually. Each entry includes:

• Service provider name and address

• Services provided (codes)

• Total compensation received

• Indirect compensation details

Excel Analysis Walkthrough

Here's a step-by-step Excel analysis:

=SUMIF(C:C,"Recordkeeping",D:D)

This formula sums all recordkeeping fees from column D where column C contains "Recordkeeping".

Fee Categorization Formula:

=IF(ISNUMBER(SEARCH("record",B2)),"Recordkeeping",
  IF(ISNUMBER(SEARCH("invest",B2)),"Investment Management",
  IF(ISNUMBER(SEARCH("admin",B2)),"Administration","Other")))

Python Analysis Script

import pandas as pd
import numpy as np

# Load Schedule C data
df = pd.read_csv('schedule_c_data.csv')

# Categorize service providers
def categorize_service(service_desc):
   service_desc = service_desc.lower()
   if 'record' in service_desc or 'admin' in service_desc:
       return 'Recordkeeping/Admin'
   elif 'invest' in service_desc or 'advisory' in service_desc:
       return 'Investment Management'
   elif 'audit' in service_desc:
       return 'Audit'
   else:
       return 'Other'

df['Category'] = df['Service_Description'].apply(categorize_service)

# Calculate total fees by category
fee_summary = df.groupby('Category')['Total_Compensation'].sum()
print(fee_summary)

# Calculate per-participant costs
total_participants = 1500  # Replace with actual participant count
fee_summary_per_participant = fee_summary / total_participants
print(f"\nPer-participant fees:\n{fee_summary_per_participant}")

Step 4: Benchmarking Against Industry Standards

Fee Benchmarks by Plan Size

Plan SizeTypical Total FeesRecordkeepingInvestment Management< 100 participants1.5% - 2.5%$50-150/participant0.75% - 1.25%100-1,000 participants1.0% - 1.8%$35-75/participant0.50% - 1.00%1,000+ participants0.5% - 1.2%$25-50/participant0.25% - 0.75%

Accounts funded with more than the minimum amount required to establish an account would be charged a flat dollar fee up to $1,000,000, with higher account balances resulting in increased reflected performance (Total Portfolio Returns).

Red Flags to Watch For

Revenue Sharing: Excessive payments from investment funds back to recordkeepers

Bundled Pricing: Lack of transparency in fee breakdowns

Soft Dollar Arrangements: Services paid through trading commissions

Related Party Transactions: Payments to company affiliates

Creating Your Fee Report

Your one-page summary should include:

1.



• Plan name and sponsor

• Total participants and assets

• Filing year

2.



• Total annual fees

• Fees per participant

• Fees as percentage of assets

• Category breakdown (admin, investment, other)

3.



• How your plan compares to similar-sized plans

• Potential savings opportunities

• Recommendations for improvement

Step 5: Advanced Analysis Techniques

Multi-Year Trend Analysis

# Analyze fee trends over multiple years
years = ['2021', '2022', '2023', '2024']
fee_trends = {}

for year in years:
   df_year = pd.read_csv(f'schedule_c_{year}.csv')
   total_fees = df_year['Total_Compensation'].sum()
   fee_trends[year] = total_fees

# Calculate year-over-year changes
for i in range(1, len(years)):
   prev_year = years[i-1]
   curr_year = years[i]
   change = (fee_trends[curr_year] - fee_trends[prev_year]) / fee_trends[prev_year] * 100
   print(f"Fee change from {prev_year} to {curr_year}: {change:.1f}%")

Service Provider Concentration Analysis

# Calculate Herfindahl-Hirschman Index for provider concentration
=SUMPRODUCT((D2:D20/SUM(D2:D20))^2)

A result above 0.25 indicates high concentration, potentially limiting negotiating power.

Revenue Sharing Detection

# Flag potential revenue sharing arrangements
revenue_sharing_keywords = ['revenue sharing', 'sub-ta', 'shareholder servicing', '12b-1']

for keyword in revenue_sharing_keywords:
   matches = df[df['Service_Description'].str.contains(keyword, case=False, na=False)]
   if not matches.empty:
       print(f"Potential revenue sharing found: {keyword}")
       print(matches[['Service_Provider', 'Total_Compensation']])

Interpreting Your Results

What Good Fees Look Like

Transparent Structure: Clear breakdown of what you're paying for, with separate line items for recordkeeping, investment management, and administrative services.

Competitive Pricing: Fees that fall within or below industry benchmarks for your plan size. Beagle Financial Services helps employees discover hidden 401(k) fees and compare them to industry standards (Meet Beagle Reviews).

Reasonable Revenue Sharing: If present, revenue sharing should be disclosed and reasonable (typically under 0.25% annually).

Warning Signs

Excessive Fees: Total fees exceeding 2% annually for plans with 100+ participants, or per-participant fees above $150 for large plans.

Lack of Transparency: Bundled fees without clear breakdowns, or significant "other" categories without explanation.

Related Party Enrichment: Excessive payments to company affiliates or service providers with conflicts of interest.

Taking Action on Your Findings

If your analysis reveals concerning fee levels:

1. Document Everything: Create a professional summary with benchmarks and recommendations

2. Engage HR: Present findings constructively, focusing on fiduciary duty

3. Suggest Solutions: Propose specific alternatives or negotiation strategies

4. Consider Alternatives: Evaluate rollover options if fees remain excessive

Beagle Financial Services allows users to store all their money in one place and unlock old 401(k) accounts for use prior to retirement, making it easier to consolidate high-fee accounts (Meet Beagle Reviews).

Beyond Fee Analysis: Additional Form 5500 Insights

Investment Performance Indicators

Schedule D provides investment details that can reveal:

• Asset allocation strategies

• Use of proprietary vs. open-architecture funds

• Investment turnover and trading costs

• Performance relative to benchmarks

Plan Health Metrics

# Calculate key plan health ratios
participation_rate = active_participants / eligible_employees
average_balance = total_assets / total_participants
contribution_rate = total_contributions / total_payroll

print(f"Participation Rate: {participation_rate:.1%}")
print(f"Average Balance: ${average_balance:,.0f}")
print(f"Contribution Rate: {contribution_rate:.1%}")

Compliance Red Flags

Form 5500 can reveal compliance issues:

• Late filings (indicating administrative problems)

• Qualified auditor opinions (for large plans)

• Prohibited transactions or corrections

• Loan default rates

Automating Your Analysis

Building a Monitoring System

import requests
import schedule
import time
from datetime import datetime

def check_new_filings():
   # Check for new Form 5500 filings
   # Send alert if fees increase significantly
   pass

# Schedule monthly checks
schedule.every().month.do(check_new_filings)

while True:
   schedule.run_pending()
   time.sleep(86400)  # Check daily

Creating Alerts

Set up automated alerts for:

• New filings from your employer

• Significant fee increases

• Changes in service providers

• Compliance issues or late filings

Sharing Your Analysis

Preparing for HR Conversations

When presenting findings to HR:

1. Lead with Fiduciary Duty: Frame the conversation around the company's obligation to monitor fees

2. Use Benchmarks: Compare to similar plans, not just industry averages

3. Suggest Solutions: Don't just identify problems—propose alternatives

4. Be Professional: Avoid accusatory language; focus on continuous improvement

Sample Email Template

Subject: 401(k) Plan Fee Analysis - Potential Cost Savings Opportunity

Dear [HR Contact],

I've completed an analysis of our 401(k) plan's Form 5500 filing and identified potential opportunities to reduce participant costs while maintaining service quality.

Key Findings:
- Current total fees: $X per participant annually
- Industry benchmark for similar plans: $Y per participant
- Potential annual savings: $Z across all participants

I've prepared a detailed analysis with specific recommendations. Would you be available for a brief meeting to discuss these findings?

Best regards,
[Your Name]

Building Coalition Support

Consider:

• Sharing findings with interested colleagues

• Forming an employee committee

• Engaging union representatives if applicable

• Connecting with other plan participants

Beagle Financial Services has helped people from major companies like Google, Walmart, Uber, and Ford, demonstrating that fee awareness is valuable across all types of employers (Meet Beagle Reviews).

When to Consider a Rollover

Rollover Decision Framework

If your analysis reveals excessive fees, consider these factors:

Current Plan Advantages:

• Employer matching contributions

• Institutional pricing on some investments

• Loan provisions

• In-service withdrawal options

IRA Advantages:

• Broader investment selection

• Potentially lower fees

• More flexible withdrawal options

• Consolidated account management

Beagle Financial Services offers a one-click rollover into low-cost IRAs managed by its SEC-registered arm, Beagle Invest, helping users reduce fee drag and gain real-time visibility over all their retirement money (Beagle Review 2025).

Rollover Cost-Benefit Analysis

# Calculate rollover break-even analysis
current_annual_fee_rate = 0.015  # 1.5%
ira_annual_fee_rate = 0.005      # 0.5%
account_balance = 100000

annual_savings = account_balance * (current_annual_fee_rate - ira_annual_fee_rate)
rollover_cost = 0  # Assuming no rollover fees

print(f"Annual fee savings: ${annual_savings:,.0f}")
print(f"Break-even period: Immediate (no rollover costs)")

Advanced Strategies for Fee Optimization

Negotiating with Current Providers

Armed with Form 5500 data, you can:

• Request fee reductions based on plan growth

• Negotiate performance-based pricing

• Eliminate unnecessary services

• Benchmark against competitor proposals

Plan Design Improvements

Consider advocating for:

Tiered Fee Structures: Lower fees for larger balances

Fee Leveling: Spreading costs equally among participants

Revenue Sharing Elimination: Direct fee payments instead of fund kickbacks

Open Architecture: Access to institutional share classes

Fiduciary Best Practices

Encourage your employer to:

• Conduct regular fee benchmarking

• Document fee negotiation efforts

• Consider independent fiduciary advisors

• Implement fee disclosure improvements

Conclusion

Form 5500 analysis puts powerful fee transparency tools in your hands. In just 10 minutes of downloading and basic analysis, you can uncover hidden costs that might be costing you thousands annually. The 2024 Form 5500 electronic filing requirements make this data more accessible than ever (DOL 2024 Instructions).

Whether you use this analysis to advocate for better plan terms, make informed rollover decisions, or simply understand where your retirement dollars are going, the investment in time pays dividends. Companies like Beagle Financial Services have built entire business models around helping employees navigate these complexities, but with the right tools and knowledge, you can take control of your own fee analysis (Meet Beagle Reviews).

Remember: every percentage point in fees you eliminate compounds over decades. A 1% annual fee reduction on a $100,000 balance could save over $100,000 in retirement wealth over 30 years. That's worth 10 minutes of analysis.

Start with your current employer's plan, then expand your analysis to any old 401(k) accounts you might have. The Form 5500 database is open to public inspection, giving you unprecedented visibility into the true cost of retirement savings (DOL 2023 Form 5500). Use this power wisely, and your future self will thank you.

Frequently Asked Questions

What is Form 5500 and why should I care about my employer's filing?

Form 5500 is a mandatory annual filing that your employer must submit to the Department of Labor, revealing exactly how much your 401(k) plan pays in fees and who receives those payments. Since 2024 filings must be electronically submitted through the ERISA Filing Acceptance System (EFAST2), this data is more accessible than ever and open to public inspection, allowing you to uncover hidden costs in your retirement plan.

How can I access my employer's Form 5500 filing for free?

You can download your employer's Form 5500 filing directly from the Department of Labor's EFAST2 website at no cost. The process takes about 10 minutes and requires only your employer's name or plan information. All filings are publicly available since they're required under ERISA sections 104 and 4065.

What hidden fees can I discover in my 401(k) plan through Form 5500?

Form 5500 reveals administrative fees, investment management fees, recordkeeping costs, and service provider compensation that may not be clearly disclosed in your regular 401(k) statements. You can identify exactly who's being paid, how much, and compare these costs against industry benchmarks to determine if your plan is competitively priced.

Can I use tools like Beagle to help analyze my 401(k) fees?

While services like Beagle can help you locate old 401(k) accounts and discover hidden fees, the DIY Form 5500 approach gives you direct access to the raw data without relying on third-party services. Beagle is useful for comprehensive 401(k) management and rollover assistance, but analyzing Form 5500 yourself provides complete transparency into your current plan's fee structure.

What Excel formulas and Python code are included in this tutorial?

The tutorial provides ready-to-use Excel formulas for calculating fee ratios, expense percentages, and cost-per-participant metrics. Python code snippets automate data extraction from Form 5500 filings and generate benchmark comparisons against industry standards, making it easy to create professional fee analysis reports.

How do I benchmark my plan's fees against industry standards?

The tutorial includes specific benchmarking methodologies that compare your plan's fees against similar-sized plans in your industry. You'll learn to calculate key metrics like total plan expenses as a percentage of assets, per-participant costs, and investment fee ratios, then compare these against Department of Labor industry averages and peer group data.

Sources

1. https://condorcapital.com/the-robo-report/data

2. https://crushingrei.com/meet-beagle-reviews/

3. https://www.aicpa-cima.com/resources/download/dol-efast-instructions

4. https://www.dol.gov/sites/dolgov/files/ebsa/employers-and-advisers/plan-administration-and-compliance/reporting-and-filing/form-5500/2023-form-5500.pdf

5. https://www.dol.gov/sites/dolgov/files/ebsa/employers-and-advisers/plan-administration-and-compliance/reporting-and-filing/form-5500/2024-instructions.pdf

6. https://www.finder.com/retirement/beagle-review