Plan filters, in focus.
Eight panels turn 552,987 retirement filings into the subset that matters. This page is the field reference for every filter on /plans: what it does, how the buckets are cut, what lands in the URL when you check a box. Built for the advisors who read the filings.
How filters compose
Three rules govern the rail. Hold these and the rest reads on its own.
- Within a panel, OR. Check California and Texas; you get plans in either. Check Manufacturing and Healthcare; you get plans in either.
- Across panels, AND. Check California and Manufacturing; you get California manufacturers.
- Empty equals no filter. Nothing checked, nothing narrowed. Range filters follow the same logic: a bucket checked sets a min and max; no bucket checked clears them.
Size
Both ranges are bucketed to industry segmentation, not tidy decimals. Each bucket has a "Detailed range" disclosure that opens a histogram slider when you need finer control.
Assets
Cerulli-standard advisor segmentation, total assets at end of year (Schedule H line 1l(b)).
| Bucket | Range | URL |
|---|---|---|
| Micro | Under $5M | assets_max=5000000 |
| Small | $5M to $50M | assets_min=5000000&assets_max=50000000 |
| Mid | $50M to $250M | assets_min=50000000&assets_max=250000000 |
| Large | $250M to $1B | assets_min=250000000&assets_max=1000000000 |
| Mega | Over $1B | assets_min=1000000000 |
Participants
ERISA-100-aware. The 100-participant line is the audit-required threshold; the other cuts match the segments advisors actually pitch into.
| Bucket | Range | URL |
|---|---|---|
| Solo | Under 25 | part_max=24 |
| Small | 25 to 100 | part_min=25&part_max=99 |
| Mid | 100 to 500 | part_min=100&part_max=499 |
| Large | 500 to 5,000 | part_min=500&part_max=4999 |
| Mega | Over 5,000 | part_min=5000 |
Location
Three controls, paired so you can scope a region without learning GIS. Every match is on the sponsor mailing address.
- State. Multi-select all 50 plus DC. URL
state=CA,TX. - City. Free-text, case-insensitive substring, debounced 300 ms. URL
city=Austin. - ZIP and radius. Five-digit ZIP plus a radius dropdown: Exact, 5, 10, 25, 50, 100, 250, 500 mi. URL
zip=78701&zip_radius=25.
Plan type
Four sub-panels, each a checkbox list.
Subtype
Grouped by family for orientation. The user picks subtypes directly; family is implicit.
- DC plans. 401(k), profit-sharing, money purchase, ESOP, SIMPLE 401(k), stock bonus, 403(b)(7), 403(b)(1) annuity, 457(b), other DC.
- Hybrid. Cash balance.
- DB plans. Defined benefit.
URL subtype=401k,profit_sharing.
Lifecycle
Active is the default cohort; the others mark plans on the way out. Multi-select.
- Active
- Frozen (no new contributions)
- Terminating
- Wind-down
URL lifecycle=active,frozen.
Sponsor structure
Who legally sponsors the plan. Six options.
- Single-employer
- Multiemployer
- Multiple-employer
- Pooled Employer Plan
- Group of Plans
- DFE
URL structure=Single-employer.
Tax class
Two options that ride alongside structure: 403(b) and For-profit. Governmental and church carve-outs are deferred (Form 5500 has no first-class field for either). URL tax_class=403(b).
Industry
Twenty NAICS sectors at two-digit precision, search above the list, "Show all" disclosure for the long tail. Some sectors collapse multiple raw codes (Manufacturing folds 31, 32, 33; Retail folds 44, 45; Transportation folds 48, 49) and expand back when the query runs.
URL naics2=52 (Finance and Insurance), naics2=52,54 for finance plus professional services. A NAICS sub-sector field is wired on the data side and filterable via naics3=541; the rail currently exposes sectors only.
Prospect flags
Three sub-panels: the 16 flags themselves, four plan-policy booleans, and the auditor opinion. All flags are stored as flag_* columns on the plan-year row and sourced to the line.
Six deterministic flags
Reported by the sponsor on the filing. If the box is checked here, the DOL has it on file. Trustworthy enough to screen prospects on directly.
| Flag | Column | Trip condition |
|---|---|---|
| Recently terminated plan | flag_recently_terminated | Plan year carries a termination indicator |
| Insufficient fidelity bond | flag_fidelity_bond | Bond coverage below the ERISA Section 412 minimum |
| Failed to transmit contributions | flag_fail_transmit_contributions | Sponsor reported delinquent contributions on the filing |
| Failed to provide benefit | flag_failed_provide_benefit | Sponsor reported a benefit that should have been paid was not |
| Corrective distributions | flag_corrective_distributions | Refunds issued to highly compensated employees after a failed test |
| Loss from fraud or dishonesty | flag_loss_discovered | Sponsor reported a discovered loss attributable to fraud or dishonesty |
Ten threshold-driven flags
Computed in the warehouse against plan-year metrics. Each flag has a single, named cutoff so a result is auditable from the column alone.
| Flag | Column | Trip condition |
|---|---|---|
| High retiree share (>=25%) | flag_retiree_percentage | Retired-with-balance / total participants >= 25% |
| Low return (bottom quintile) | flag_return_percentage | Annual return percentile <= 20 within peer cohort |
| High admin fee per account holder | flag_admin_per_p | Admin fee per account holder (line 6g) above the peer threshold |
| High cash allocation (>10%) | flag_cash_percentage | Cash share of investments above 10% |
| Low participation rate (<70%) | flag_participation_rate | Active / eligible below 70% |
| Low average account balance | flag_assets_per_participant | Average account balance (line 6g) in the bottom quintile |
| Very high average account balance | flag_high_assets | Average account balance (line 6g) in the top quintile |
| Low employer contribution | flag_low_employer_contrib | Employer contribution per active employee in the bottom quintile |
| Low participant contribution | flag_low_participant_contrib | Participant contribution per participant in the bottom quintile |
| Crossed 100 balance-holders | flag_reached_100 | Balance-holder count crossed 100 in this filing year |
URL flags=flag_fidelity_bond,flag_recently_terminated. Check the "Any prospect flag tripped" box to set flag_any=1; matches when at least one of the 16 is on.
Plan policy
Four booleans an advisor commonly screens for.
| Toggle | URL | What it means |
|---|---|---|
| Safe harbor 401(k) | safe_harbor=1 | Schedule R safe-harbor design indicator on (ADP test waiver). |
| Automatic enrollment | auto_enroll=1 | Plan feature code 2S on. |
| SECURE 2.0 mandated | secure2=1 | Plan effective date on or after 2022-12-29; subject to SECURE 2.0 mandates. |
| In a state Auto-IRA state | auto_ira=1 | Sponsor mailing-address state has a live state Auto-IRA program (17 states today). |
Auditor opinion
Schedule H Part 3 opinion type, four values: Unqualified, Qualified, Disclaimer, Adverse. Anything other than Unqualified is worth a look. URL auditor_opinion=Qualified,Adverse.
Features
Plan-design booleans that AND-compose. Every checked feature must be present on the plan.
| Code | Feature |
|---|---|
| 2S | Automatic enrollment |
| 2T | QDIA (default investment) |
| 2F | ERISA 404(c) plan |
| 2H | Partial participant-directed |
| 2R | Participant-directed brokerage |
| 3H | Controlled group member |
| 3I | Employer securities required |
| 1G | Covered by PBGC (DB only) |
URL features=2F,2H. Codes are uppercased server-side; case-insensitive on input.
Performance
Three ranges, every cutoff anchored to an advisor-meaningful line.
Admin fees as a percent of assets
The 1.00% line is the conventional high-fee call-out for fee-competitive advisors.
| Bucket | Range | URL |
|---|---|---|
| Very low | Under 0.25% | exp_pct_max=0.25 |
| Low | 0.25% to 0.50% | exp_pct_min=0.25&exp_pct_max=0.5 |
| Moderate | 0.50% to 1.00% | exp_pct_min=0.5&exp_pct_max=1.0 |
| High | Over 1.00% | exp_pct_min=1.0 |
Year-over-year asset growth
Signed percent change in total assets vs the prior filing.
| Bucket | Range | URL |
|---|---|---|
| Shrinking | Under 0% | growth_max=0 |
| Flat | 0% to 5% | growth_min=0&growth_max=5 |
| Growing | 5% to 15% | growth_min=5&growth_max=15 |
| Booming | Over 15% | growth_min=15 |
Participation rate
Active divided by eligible. Below 70% is the auto-flag threshold for flag_participation_rate.
| Bucket | Range | URL |
|---|---|---|
| Low | Under 50% | part_rate_max=50 |
| Moderate | 50% to 70% | part_rate_min=50&part_rate_max=70 |
| Good | 70% to 85% | part_rate_min=70&part_rate_max=85 |
| Excellent | Over 85% | part_rate_min=85 |
Providers
The Providers panel renders the field set so the layout is honest, but the inputs are disabled and no rows are filtered. Production will join the sibling provider mart and filter by service role: recordkeeper, recordkeeper plus admin, plan investment advisor, participant investment advisor, plan administrator, contract administrator.
URL grammar
A few rules keep saved searches predictable.
- Snake case. All param names are lower snake case, no camel.
- Range suffixes. Numeric ranges use
_minand_max. Drop one to open-end the range on that side. - Comma-separated multi-select.
state=CA,TX,NY. Order is preserved; duplicates dropped. - Booleans. A truthy value enables (
safe_harbor=1); the param's absence disables.0and empty string are dropped. - Defaults dropped.
sort=total_assets_eoyanddir=descare the defaults and stay out of the URL. - Sort and pagination.
sort,dir,limit,offset. Limit defaults to 25.
A worked example:
/plans?state=NH,VT,ME &assets_min=10000000&assets_max=50000000 &naics2=52&features=2F,2H &flags=flag_fidelity_bond
Reads as: small-to-mid plans in northern New England finance, with ERISA 404(c) and participant-directed investments, where the fidelity bond flag tripped.
Recipes worth keeping
Scope honesty
PlanOptica ingests retirement plan filings (Form 5500 plus Schedule H and I) for plan years 2021 through 2025. Group health and welfare coverage (Schedule A) is on the roadmap; nothing on this page filters on it today. Where a filter is wired but the data is parked, the section calls it out.