Form 5500 data for prospecting and research: U.S. retirement plans, recordkeepers, fees, switches.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Change events detected by comparing each plan's consecutive filings, newest filing first. Each event has before/after values, a confidence, the year compared against, a plain-English detail and the ACK ID of the filing that shows it. Providers are compared by family, so a rebrand (Great-West → Empower) isn't a change. Each event also has the plan's size around the event (`net_assets_at_event`), which `min_assets` and `sort=assets` use. The newest plan year is still being filed, so its counts grow month to month. Price: $0.25 per call, paid in USDC on Base (mainnet) with x402 (MCP transport). Without payment the tool returns the payment requirements. Errors and empty results aren't charged. Same data as GET /changes of the Plan Data API.
With `ein`: only this plan number.
Only this sponsor's plans (EIN, 9 digits, dashes allowed): what changed at one company.
newest (the default: newest filing first) or assets (largest plan first, by `net_assets_at_event`).
Events per page (1-50). Each event is about 200 tokens of JSON, so the default 25 keeps an answer compact; narrow the filters rather than asking for more.
Only events whose filing DOL received on or after this date (YYYY-MM-DD): "what's new since I last checked". Excludes filings_stopped, which no filing reveals.
Two-letter state of the sponsor (latest filing).
Events to skip (0-500).
Plan type, as in `search_plans` (e.g. 401k, dc, db).
Event type(s); repeat the parameter or separate with commas. One of: recordkeeper_change, advisor_added, advisor_removed, advisor_changed, auditor_change, audit_opinion_change, late_deposits_appeared, new_plan, plan_merged_in, plan_merged_out, plan_terminated, termination_resolution, filings_stopped, large_asset_jump. Meanings at `get_coverage`.
large or small, in the event's plan year.
Minimum net assets around the event (`net_assets_at_event`: the larger of the event year's start and end).
Latest plan year of the event.
Only recordkeeper_change events to or from this recordkeeper family (any brand name works).
Lowest confidence to include: high = high only, medium = high and medium, low = all.
Earliest plan year of the event.
Only recordkeeper_change events to this recordkeeper family (any brand name).
Only recordkeeper_change events away from this recordkeeper family (any brand name). Combine with `to_recordkeeper` for one move, e.g. Empower to Fidelity.
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
Run in a terminal
claude mcp add --transport http plan-data https://api.form5500data.com/mcp
Change events detected by comparing each plan's consecutive filings, newest filing first. Each event has before/after values, a confidence, the year compared against, a plain-English detail and the ACK ID of the filing that shows it. Providers are compared by family, so a rebrand (Great-West → Empower) isn't a change. Each event also has the plan's size around the event (`net_assets_at_event`), which `min_assets` and `sort=assets` use. The newest plan year is still being filed, so its counts grow month to month. Price: $0.25 per call, paid in USDC on Base (mainnet) with x402 (MCP transport). Without payment the tool returns the payment requirements. Errors and empty results aren't charged. Same data as GET /changes of the Plan Data API.
| Argument | Type | Description |
|---|---|---|
| pn | any | With `ein`: only this plan number. |
| ein | any | Only this sponsor's plans (EIN, 9 digits, dashes allowed): what changed at one company. |
| sort | string | newest (the default: newest filing first) or assets (largest plan first, by `net_assets_at_event`). |
| limit | integer | Events per page (1-50). Each event is about 200 tokens of JSON, so the default 25 keeps an answer compact; narrow the filters rather than asking for more. |
| since | any | Only events whose filing DOL received on or after this date (YYYY-MM-DD): "what's new since I last checked". Excludes filings_stopped, which no filing reveals. |
| state | any | Two-letter state of the sponsor (latest filing). |
| offset | integer | Events to skip (0-500). |
| plan_type | any | Plan type, as in `search_plans` (e.g. 401k, dc, db). |
| event_type | any | Event type(s); repeat the parameter or separate with commas. One of: recordkeeper_change, advisor_added, advisor_removed, advisor_changed, auditor_change, audit_opinion_change, late_deposits_appeared, new_plan, plan_merged_in, plan_merged_out, plan_terminated, termination_resolution, filings_stopped, large_asset_jump. Meanings at `get_coverage`. |
| filer_size | any | large or small, in the event's plan year. |
| min_assets | any | Minimum net assets around the event (`net_assets_at_event`: the larger of the event year's start and end). |
| plan_year_to | any | Latest plan year of the event. |
| recordkeeper | any | Only recordkeeper_change events to or from this recordkeeper family (any brand name works). |
| min_confidence | string | Lowest confidence to include: high = high only, medium = high and medium, low = all. |
| plan_year_from | any | Earliest plan year of the event. |
| to_recordkeeper | any | Only recordkeeper_change events to this recordkeeper family (any brand name). |
| from_recordkeeper | any | Only recordkeeper_change events away from this recordkeeper family (any brand name). Combine with `to_recordkeeper` for one move, e.g. Empower to Fidelity. |
{
"type": "object",
"title": "find_plan_changesArguments",
"properties": {
"pn": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Pn",
"default": null,
"description": "With `ein`: only this plan number."
},
"ein": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Ein",
"default": null,
"description": "Only this sponsor's plans (EIN, 9 digits, dashes allowed): what changed at one company."
},
"sort": {
"enum": [
"newest",
"assets"
],
"type": "string",
"title": "Sort",
"default": "newest",
"description": "newest (the default: newest filing first) or assets (largest plan first, by `net_assets_at_event`)."
},
"limit": {
"type": "integer",
"title": "Limit",
"default": 25,
"maximum": 50,
"minimum": 1,
"description": "Events per page (1-50). Each event is about 200 tokens of JSON, so the default 25 keeps an answer compact; narrow the filters rather than asking for more."
},
"since": {
"anyOf": [
{
"type": "string",
"format": "date"
},
{
"type": "null"
}
],
"title": "Since",
"default": null,
"description": "Only events whose filing DOL received on or after this date (YYYY-MM-DD): \"what's new since I last checked\". Excludes filings_stopped, which no filing reveals."
},
"state": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "State",
"default": null,
"description": "Two-letter state of the sponsor (latest filing)."
},
"offset": {
"type": "integer",
"title": "Offset",
"default": 0,
"maximum": 500,
"minimum": 0,
"description": "Events to skip (0-500)."
},
"plan_type": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Plan Type",
"default": null,
"description": "Plan type, as in `search_plans` (e.g. 401k, dc, db)."
},
"event_type": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string"
}
},
{
"type": "null"
}
],
"title": "Event Type",
"default": null,
"description": "Event type(s); repeat the parameter or separate with commas. One of: recordkeeper_change, advisor_added, advisor_removed, advisor_changed, auditor_change, audit_opinion_change, late_deposits_appeared, new_plan, plan_merged_in, plan_merged_out, plan_terminated, termination_resolution, filings_stopped, large_asset_jump. Meanings at `get_coverage`."
},
"filer_size": {
"anyOf": [
{
"enum": [
"large",
"small"
],
"type": "string"
},
{
"type": "null"
}
],
"title": "Filer Size",
"default": null,
"description": "large or small, in the event's plan year."
},
"min_assets": {
"anyOf": [
{
"type": "number",
"minimum": 0
},
{
"type": "null"
}
],
"title": "Min Assets",
"default": null,
"description": "Minimum net assets around the event (`net_assets_at_event`: the larger of the event year's start and end)."
},
"plan_year_to": {
"anyOf": [
{
"type": "integer",
"maximum": 2100,
"minimum": 2000
},
{
"type": "null"
}
],
"title": "Plan Year To",
"default": null,
"description": "Latest plan year of the event."
},
"recordkeeper": {
"anyOf": [
{
"type": "string",
"maxLength": 100,
"minLength": 3
},
{
"type": "null"
}
],
"title": "Recordkeeper",
"default": null,
"description": "Only recordkeeper_change events to or from this recordkeeper family (any brand name works)."
},
"min_confidence": {
"enum": [
"high",
"medium",
"low"
],
"type": "string",
"title": "Min Confidence",
"default": "low",
"description": "Lowest confidence to include: high = high only, medium = high and medium, low = all."
},
"plan_year_from": {
"anyOf": [
{
"type": "integer",
"maximum": 2100,
"minimum": 2000
},
{
"type": "null"
}
],
"title": "Plan Year From",
"default": null,
"description": "Earliest plan year of the event."
},
"to_recordkeeper": {
"anyOf": [
{
"type": "string",
"maxLength": 100,
"minLength": 3
},
{
"type": "null"
}
],
"title": "To Recordkeeper",
"default": null,
"description": "Only recordkeeper_change events to this recordkeeper family (any brand name)."
},
"from_recordkeeper": {
"anyOf": [
{
"type": "string",
"maxLength": 100,
"minLength": 3
},
{
"type": "null"
}
],
"title": "From Recordkeeper",
"default": null,
"description": "Only recordkeeper_change events away from this recordkeeper family (any brand name). Combine with `to_recordkeeper` for one move, e.g. Empower to Fidelity."
}
}
}What the data covers per plan year, every limitation, the coverage-note codes responses can carry, the event types, the screening signals and the plan-type values. Free. Also lists the prices and what isn't charged. Same data as GET /coverage of the Plan Data API.
No arguments.
{
"type": "object",
"title": "get_coverageArguments",
"properties": {}
}The plan as of its latest filing: identity and status, plan type and features, assets and participants, average balance and approximate return, recordkeeper, advisors and auditor, headline fees, screening signals and data-quality flags. When the latest year is a small-plan filing (no Schedule C), the recordkeeper shown is the last one seen on an earlier Schedule C, labeled with its year and a lower confidence. `availability` says which years `get_plan_history` and `get_plan_fees` will return. Price: $0.03 per call, paid in USDC on Base (mainnet) with x402 (MCP transport). Without payment the tool returns the payment requirements. Errors and empty results aren't charged. Same data as GET /plan of the Plan Data API.
| Argument | Type | Description |
|---|---|---|
| pn | any | Plan number (1-999; 1 and 001 both work). Optional when the EIN sponsors only one retirement plan; otherwise the error lists the plans to choose from. |
| ein* | string | Sponsor EIN (9 digits, dashes allowed). |
{
"type": "object",
"title": "get_planArguments",
"required": [
"ein"
],
"properties": {
"pn": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Pn",
"default": null,
"description": "Plan number (1-999; 1 and 001 both work). Optional when the EIN sponsors only one retirement plan; otherwise the error lists the plans to choose from."
},
"ein": {
"type": "string",
"title": "Ein",
"description": "Sponsor EIN (9 digits, dashes allowed)."
}
}
}For each large plan year: Schedule C pay by role (recordkeeping, advisory, participant advice, TPA, investment management, trustee, other) in dollars and basis points of average net assets; every provider on the Schedule C with names as filed, codes, direct and indirect pay; Schedule H line 2i expenses as a second view; and a completeness rating with the reasons. Small plans file no Schedule C: the response still succeeds, with `schedule_c_available: false` and the plan-paid expenses that small plans do report. Check `get_plan` `availability.fee_years` first to see which years have a breakdown. Fees are floors: see `meta.coverage_notes`. Price: $0.10 per call, paid in USDC on Base (mainnet) with x402 (MCP transport). Without payment the tool returns the payment requirements. Errors and empty results aren't charged. Same data as GET /fees of the Plan Data API.
| Argument | Type | Description |
|---|---|---|
| pn | any | Plan number (1-999). Optional when the EIN has one plan. |
| ein* | string | Sponsor EIN (9 digits, dashes allowed). |
| plan_year | any | One plan year only. Default: every year. |
{
"type": "object",
"title": "get_plan_feesArguments",
"required": [
"ein"
],
"properties": {
"pn": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Pn",
"default": null,
"description": "Plan number (1-999). Optional when the EIN has one plan."
},
"ein": {
"type": "string",
"title": "Ein",
"description": "Sponsor EIN (9 digits, dashes allowed)."
},
"plan_year": {
"anyOf": [
{
"type": "integer",
"maximum": 2100,
"minimum": 2000
},
{
"type": "null"
}
],
"title": "Plan Year",
"default": null,
"description": "One plan year only. Default: every year."
}
}
}One entry per plan year, oldest first: the filing used, assets and participants, average balance, approximate return, participant growth (flagged across the 2023 counting change), the growth breakdown (contributions, investment return, distributions, expenses, transfers), plan-paid expenses and Schedule C fees in bps, the year's recordkeeper / primary advisor / auditor, and the change events detected that year. Price: $0.25 per call, paid in USDC on Base (mainnet) with x402 (MCP transport). Without payment the tool returns the payment requirements. Errors and empty results aren't charged. Same data as GET /plan/history of the Plan Data API.
| Argument | Type | Description |
|---|---|---|
| pn | any | Plan number (1-999). Optional when the EIN has one plan. |
| ein* | string | Sponsor EIN (9 digits, dashes allowed). |
{
"type": "object",
"title": "get_plan_historyArguments",
"required": [
"ein"
],
"properties": {
"pn": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Pn",
"default": null,
"description": "Plan number (1-999). Optional when the EIN has one plan."
},
"ein": {
"type": "string",
"title": "Ein",
"description": "Sponsor EIN (9 digits, dashes allowed)."
}
}
}A list of plans for prospecting or research, many per call: plan and sponsor name, mailing address, EIN and plan number, industry, plan type, effective (inception) date, participants and net assets at the end of the latest plan year, form type, recordkeeper and primary advisor last seen on Schedule C, and the filing's ACK ID. Filter by industry, place (state, city, ZIP), size, plan type, effective date or recordkeeper. Large (long-form) filers only unless `filer_size` says otherwise. Use `search_plans` instead to find one company's plan by name, and `get_plan` for everything about one plan. Paging stops at offset 500: narrow the filters to see more. Price: $0.25 per call, paid in USDC on Base (mainnet) with x402 (MCP transport). Without payment the tool returns the payment requirements. Errors and empty results aren't charged. Same data as GET /prospects of the Plan Data API.
| Argument | Type | Description |
|---|---|---|
| zip | any | Sponsor's ZIP code or its start (3-5 digits), e.g. 432 for the Columbus, OH area. |
| city | any | Sponsor's city, as on the filing (case doesn't matter). Best with `state`. |
| sort | string | assets (largest first, the default), participants (most first), name (A-Z by sponsor) or newest_plan (latest effective date first). |
| limit | integer | Plans per page (1-100). The price is per call, whatever the limit. |
| state | any | Two-letter state of the sponsor's address, e.g. OH. |
Find plans. Give at least one of `name`, `ein`, `state` or `recordkeeper`; the other filters narrow the list. Each result is a short summary: call `get_plan` with its `ein` and `pn` for the profile. With `name`, results are ordered by match score, then size; without it, largest plans first. Plans that ended are hidden unless `include_ended=true`. Paging stops at offset 500: narrow the filters to see more. Price: $0.01 per call, paid in USDC on Base (mainnet) with x402 (MCP transport). Without payment the tool returns the payment requirements. Errors and empty results aren't charged. Same data as GET /search of the Plan Data API.
| Argument | Type | Description |
|---|---|---|
| ein | any | Sponsor EIN (9 digits, dashes allowed). Lists every retirement plan under it. |
| name | any | Company or plan name, as you know it. Fuzzy: typos, missing suffixes (Inc, LLC), DBA names and former names all match, and the last word can be a prefix ("starb"). Results come best match first with a `match` score. |
| limit | integer | Results per page (1-50). |
| state | any | Two-letter state of the sponsor's address, e.g. TX. |
| offset | integer | Results to skip (0-500). |
| plan_type | any | Plan type: 401k, 403b, cash_balance, db_and_dc, defined_benefit, esop, ira_based, money_purchase, other_dc, profit_sharing, stock_bonus, target_benefit, type_not_coded, db, dc. `dc` = any defined contribution plan, `db` = any defined benefit plan. |
We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Nov 9, 2026.
| offset |
| integer |
| Plans to skip (0-500). |
| industry | any | The sponsor's industry: words ("restaurants", "car dealers", "law firms") or a NAICS business code or its start ("62" = health care, "5411" = legal services). Separate several with commas. `meta.query.industry` lists the codes each one matched. |
| plan_type | any | Plan type, as in `search_plans` (e.g. 401k, dc, db). |
| filer_size | string | large (the default) = long-form filers: Form 5500 with Schedule H, generally 100+ participants, with providers on Schedule C. small = 5500-SF or Schedule I. any = both. |
| max_assets | any | Maximum end-of-year net assets in dollars. |
| min_assets | any | Minimum end-of-year net assets in dollars, in the plan's latest plan year. |
| recordkeeper | any | Only plans whose latest Schedule C names this recordkeeper (any brand, matched to its family as in `search_plans`). |
| include_ended | boolean | Include plans that are terminated, merged into another plan, or stopped filing. Off by default. |
| effective_after | any | Only plans whose effective (inception) date is on or after this date (YYYY-MM-DD). |
| effective_before | any | Only plans whose effective (inception) date is on or before this date (YYYY-MM-DD). |
| max_participants | any | Maximum end-of-year participants. |
| min_participants | any | Minimum end-of-year participants, in the plan's latest plan year. |
{
"type": "object",
"title": "list_prospectsArguments",
"properties": {
"zip": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Zip",
"default": null,
"description": "Sponsor's ZIP code or its start (3-5 digits), e.g. 432 for the Columbus, OH area."
},
"city": {
"anyOf": [
{
"type": "string",
"maxLength": 60,
"minLength": 2
},
{
"type": "null"
}
],
"title": "City",
"default": null,
"description": "Sponsor's city, as on the filing (case doesn't matter). Best with `state`."
},
"sort": {
"enum": [
"assets",
"participants",
"name",
"newest_plan"
],
"type": "string",
"title": "Sort",
"default": "assets",
"description": "assets (largest first, the default), participants (most first), name (A-Z by sponsor) or newest_plan (latest effective date first)."
},
"limit": {
"type": "integer",
"title": "Limit",
"default": 50,
"maximum": 100,
"minimum": 1,
"description": "Plans per page (1-100). The price is per call, whatever the limit."
},
"state": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "State",
"default": null,
"description": "Two-letter state of the sponsor's address, e.g. OH."
},
"offset": {
"type": "integer",
"title": "Offset",
"default": 0,
"maximum": 500,
"minimum": 0,
"description": "Plans to skip (0-500)."
},
"industry": {
"anyOf": [
{
"type": "string",
"maxLength": 200,
"minLength": 2
},
{
"type": "null"
}
],
"title": "Industry",
"default": null,
"description": "The sponsor's industry: words (\"restaurants\", \"car dealers\", \"law firms\") or a NAICS business code or its start (\"62\" = health care, \"5411\" = legal services). Separate several with commas. `meta.query.industry` lists the codes each one matched."
},
"plan_type": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Plan Type",
"default": null,
"description": "Plan type, as in `search_plans` (e.g. 401k, dc, db)."
},
"filer_size": {
"enum": [
"large",
"small",
"any"
],
"type": "string",
"title": "Filer Size",
"default": "large",
"description": "large (the default) = long-form filers: Form 5500 with Schedule H, generally 100+ participants, with providers on Schedule C. small = 5500-SF or Schedule I. any = both."
},
"max_assets": {
"anyOf": [
{
"type": "number",
"minimum": 0
},
{
"type": "null"
}
],
"title": "Max Assets",
"default": null,
"description": "Maximum end-of-year net assets in dollars."
},
"min_assets": {
"anyOf": [
{
"type": "number",
"minimum": 0
},
{
"type": "null"
}
],
"title": "Min Assets",
"default": null,
"description": "Minimum end-of-year net assets in dollars, in the plan's latest plan year."
},
"recordkeeper": {
"anyOf": [
{
"type": "string",
"maxLength": 100,
"minLength": 3
},
{
"type": "null"
}
],
"title": "Recordkeeper",
"default": null,
"description": "Only plans whose latest Schedule C names this recordkeeper (any brand, matched to its family as in `search_plans`)."
},
"include_ended": {
"type": "boolean",
"title": "Include Ended",
"default": false,
"description": "Include plans that are terminated, merged into another plan, or stopped filing. Off by default."
},
"effective_after": {
"anyOf": [
{
"type": "string",
"format": "date"
},
{
"type": "null"
}
],
"title": "Effective After",
"default": null,
"description": "Only plans whose effective (inception) date is on or after this date (YYYY-MM-DD)."
},
"effective_before": {
"anyOf": [
{
"type": "string",
"format": "date"
},
{
"type": "null"
}
],
"title": "Effective Before",
"default": null,
"description": "Only plans whose effective (inception) date is on or before this date (YYYY-MM-DD)."
},
"max_participants": {
"anyOf": [
{
"type": "integer",
"minimum": 0
},
{
"type": "null"
}
],
"title": "Max Participants",
"default": null,
"description": "Maximum end-of-year participants."
},
"min_participants": {
"anyOf": [
{
"type": "integer",
"minimum": 0
},
{
"type": "null"
}
],
"title": "Min Participants",
"default": null,
"description": "Minimum end-of-year participants, in the plan's latest plan year."
}
}
}| filer_size | any | large = files Schedule H (generally 100+ participants; has providers and fees); small = 5500-SF or Schedule I. |
| max_assets | any | Maximum end-of-year net assets in dollars. |
| min_assets | any | Minimum end-of-year net assets in dollars, latest plan year. |
| recordkeeper | any | Recordkeeper, any brand old or new ("Empower", "Great-West", "Fidelity"). Matched to the firm's family, so Great-West and Prudential filings count as Empower. Only plans that filed a Schedule C can match. `meta.query.recordkeeper` shows what it resolved to. |
| include_ended | boolean | Include plans that are terminated, merged into another plan, or stopped filing. Off by default. |
| max_participants | any | Maximum end-of-year total participants. |
| min_participants | any | Minimum end-of-year total participants. |
{
"type": "object",
"title": "search_plansArguments",
"properties": {
"ein": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Ein",
"default": null,
"description": "Sponsor EIN (9 digits, dashes allowed). Lists every retirement plan under it."
},
"name": {
"anyOf": [
{
"type": "string",
"maxLength": 100,
"minLength": 2
},
{
"type": "null"
}
],
"title": "Name",
"default": null,
"description": "Company or plan name, as you know it. Fuzzy: typos, missing suffixes (Inc, LLC), DBA names and former names all match, and the last word can be a prefix (\"starb\"). Results come best match first with a `match` score."
},
"limit": {
"type": "integer",
"title": "Limit",
"default": 10,
"maximum": 50,
"minimum": 1,
"description": "Results per page (1-50)."
},
"state": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "State",
"default": null,
"description": "Two-letter state of the sponsor's address, e.g. TX."
},
"offset": {
"type": "integer",
"title": "Offset",
"default": 0,
"maximum": 500,
"minimum": 0,
"description": "Results to skip (0-500)."
},
"plan_type": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Plan Type",
"default": null,
"description": "Plan type: 401k, 403b, cash_balance, db_and_dc, defined_benefit, esop, ira_based, money_purchase, other_dc, profit_sharing, stock_bonus, target_benefit, type_not_coded, db, dc. `dc` = any defined contribution plan, `db` = any defined benefit plan."
},
"filer_size": {
"anyOf": [
{
"enum": [
"large",
"small"
],
"type": "string"
},
{
"type": "null"
}
],
"title": "Filer Size",
"default": null,
"description": "large = files Schedule H (generally 100+ participants; has providers and fees); small = 5500-SF or Schedule I."
},
"max_assets": {
"anyOf": [
{
"type": "number",
"minimum": 0
},
{
"type": "null"
}
],
"title": "Max Assets",
"default": null,
"description": "Maximum end-of-year net assets in dollars."
},
"min_assets": {
"anyOf": [
{
"type": "number",
"minimum": 0
},
{
"type": "null"
}
],
"title": "Min Assets",
"default": null,
"description": "Minimum end-of-year net assets in dollars, latest plan year."
},
"recordkeeper": {
"anyOf": [
{
"type": "string",
"maxLength": 100,
"minLength": 3
},
{
"type": "null"
}
],
"title": "Recordkeeper",
"default": null,
"description": "Recordkeeper, any brand old or new (\"Empower\", \"Great-West\", \"Fidelity\"). Matched to the firm's family, so Great-West and Prudential filings count as Empower. Only plans that filed a Schedule C can match. `meta.query.recordkeeper` shows what it resolved to."
},
"include_ended": {
"type": "boolean",
"title": "Include Ended",
"default": false,
"description": "Include plans that are terminated, merged into another plan, or stopped filing. Off by default."
},
"max_participants": {
"anyOf": [
{
"type": "integer",
"minimum": 0
},
{
"type": "null"
}
],
"title": "Max Participants",
"default": null,
"description": "Maximum end-of-year total participants."
},
"min_participants": {
"anyOf": [
{
"type": "integer",
"minimum": 0
},
{
"type": "null"
}
],
"title": "Min Participants",
"default": null,
"description": "Minimum end-of-year total participants."
}
}
}