# Form 5500 Prospect Radar: Benefits Broker Leads by Renewal Date (`yungstentech/form-5500-prospect-radar`) Actor

Two one-off reports over the public DOL EFAST2 Form 5500 bulk data, organized by the filed insurance policy renewal date (Schedule A): a territory renewal report and a broker-book report. One-off purchases, no subscription.

- **URL**: https://apify.com/yungstentech/form-5500-prospect-radar.md
- **Developed by:** [Paul Mikulskis](https://apify.com/yungstentech) (community)
- **Categories:** Lead generation, Agents
- **Stats:** 2 total users, 0 monthly users, 63.6% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $49.00 / territory renewal report

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

Form 5500 Prospect Radar turns the public US Department of Labor EFAST2 Form 5500 filings into two ready to work benefits prospecting reports, organized by the filed insurance policy renewal date. It is a one off purchase. There is no subscription, no annual commitment, and no demo call.

### What you get, and what it really costs

Run the free dry run first. It prints the exact count of plans that match your filter and the true total price for that pull before you are charged a cent. A real territory is usually more than 200 rows, so the price is more than the base fee, and the dry run shows you the real number up front.

Worked example (the demo pull): a Connecticut welfare territory report for plans renewing in October, November or December, with at least 100 participants, matches 568 plans. The first 200 rows are included in the base fee and the remaining 368 rows price at 0.05 each, so the true total is 67.40, not 49. The dry run prints exactly this before you run it for real.

Two reports are sold:

- Territory renewal report, base fee 49.00. Every Form 5500 plan whose sponsor is in your states, filtered by participant count, plan type, carrier, NAICS and renewal month, sorted by the filed policy renewal date.
- Broker book report, base fee 39.00. Every plan that names a given broker or advisor in Schedule A Part 1, joined to the plan and the commission that broker was paid.

Both include the first 200 matching rows in the base fee, then 0.05 per additional row. Starting a run costs 0.00, and the dry run preview is free (up to 10 previews per account per day).

### The renewal signal, named honestly

The organizing value is which plans in your territory renew when. This report ships the actual filed renewal date, the Schedule A INS_POLICY_TO_DATE, exactly as filed. It is the last filed policy renewal date from each plan's most recent Form 5500, not a live feed and not a projected x date. On the real 2024 file the policy renewal date is populated on 99.8 percent of 330,263 Schedule A policy rows and joins to the main form at 100 percent by filing id, so whenever a plan carries an insurance policy you get its real renewal date rather than a proxy.

About 70 percent of policies renew on 12/31 or 1/1, so the December list is the majority. The prospecting discrimination lives in the roughly 25 to 30 percent that renew off cycle, plus the carrier, broker and commission columns that tell you who already holds the account and what it is worth.

### Output

Each row is flat and documented:

`sponsorName, ein, planNumber, planName, sponsorStreet, sponsorCity, sponsorState, sponsorZip, sponsorPhone, policyRenewalDate, renewalMonth, planYearEnd, activeParticipants, totalParticipants, assetsEoy, businessCode, carriers[{carrierName, premium, commission, policyStart, policyEnd}], brokerName, brokerCity, brokerState, brokerCommission, ackId, filingYear, snapshotDate, billing, source`

You can download the dataset in JSON, HTML, CSV or Excel.

### Demo dataset

The public demo dataset is at https://api.apify.com/v2/datasets/xRJgGTQpC9YgQacvG/items?format=json&clean=true. It was generated by a live territory-report run and contains 209 Form 5500 prospect rows. Each row shows the filed sponsor, plan, participant count, carrier, policy renewal date, broker fields when filed, billing tier, filing year, snapshot date and EFAST2 source attribution. Use it to inspect the exact row shape before running your own territory pull.

#### Measured field population (real 2024 files)

| Field | Populated | Note |
|---|---|---|
| Filed policy renewal date (INS_POLICY_TO_DATE) | 99.8 percent of Schedule A policy rows | The renewal signal, as filed |
| Sponsor phone | 99.2 percent of 221,777 plans | Sponsor contact line, as filed |
| Carrier name | 100 percent of policy rows | Who holds the account |
| Broker name (Schedule A Part 1) | 99.7 percent of 445,032 rows | Broker of record |
| Broker commission paid (Part 1) | present on 89.1 percent, nonzero on 79.6 percent | What the account is worth |
| Schedule A commission total | nonzero on 69.9 percent | Carrier side commission |

Assets at end of year are shown as filed. Welfare only plans commonly omit them, so that field is often null, which is expected.

### Two year merge and snapshot semantics

The report merges the two most recent filing years and keeps the single latest filing per plan (latest date received, ties broken by the highest filing id), so an off calendar filer that only appears in the newer year is not silently missed. Every row carries a `snapshotDate`. EFAST2 data lags the plan year by 7 to 9.5 months (the 7 month filing deadline plus a 2.5 month extension), so the report reflects each plan's most recently filed year and its last filed policy renewal date. A few late arriving filings can shift near a snapshot boundary.

### How to use it

1. Set `mode` to territory-report or broker-book-report.
2. For a territory report, list your `states` (up to 10) and optionally narrow by `renewalMonths`, `participantMin`/`participantMax`, `planType`, `carrierName`, `counties` or `naicsPrefixes`.
3. For a broker book report, set `brokerName`.
4. Leave `dryRun` on to preview the count and the true total price for free, then turn it off to run the report.

If your run's max charge cannot cover the full overflow, the report charges the base fee once, delivers the 200 included rows plus as much overflow as your budget allows, and adds one uncharged marker naming the remainder. Re running the same filter within 31 days resumes where it left off and does not charge the base fee again.

### Limitations

- Version 1 covers Schedule A (group insurance and welfare plans). Schedule C service provider depth is a planned follow up.
- Plans with fewer than 100 participants are largely exempt from full filing, so the default floor is 100.
- The data is the raw filing, as filed. There are no appended emails, no premium modeling and no enrichment. If you want an enriched single state seat with verified contacts, incumbents such as Judy Diamond, MiEdge and BenefitsPRO sell that.
- EFAST2 lag is structural, so this is a renewal calendar built from the most recently filed year, not a real time feed.

### Support

Found a gap or want a custom cut? Use the Issues tab. Custom broker books and multi year archives are available on request.

# Actor input Schema

## `mode` (type: `string`):

Which report to produce. 'territory-report' is a filtered plan list sorted by filed policy renewal date. 'broker-book-report' is every plan naming a given broker/advisor in Schedule A Part 1.
## `states` (type: `array`):

Two-letter sponsor state codes (1-10). Required for the territory report. The report covers plans whose sponsor mailing address is in these states.
## `counties` (type: `array`):

Optional (up to 25). A client-side filter matched against the sponsor city (the main form carries no county field).
## `participantMin` (type: `integer`):

Only include plans with at least this many total participants. Defaults to 100 (plans under 100 participants are largely exempt from full filing).
## `participantMax` (type: `integer`):

Optional upper bound on total participants.
## `planType` (type: `string`):

Filter by benefit type. 'welfare' (group insurance: health, dental, life, disability) is the default. 'pension' is retirement plans. 'both' is either.
## `carrierName` (type: `string`):

Optional (>=3 chars). Keep only plans with a Schedule A carrier whose name contains this text.
## `brokerName` (type: `string`):

Required for the broker-book report (>=3 chars). Matched (normalized substring) against the Schedule A Part 1 broker/advisor name.
## `renewalMonths` (type: `array`):

Optional. Integers 1-12. Keep only plans whose filed policy renewal month (from INS_POLICY_TO_DATE, plan-year-end as fallback) is in this set. Also the report sort key.
## `naicsPrefixes` (type: `array`):

Optional (up to 10). Keep only plans whose sponsor business code (NAICS) starts with one of these digit prefixes.
## `dryRun` (type: `boolean`):

Preview only: returns the total matching count, the derived total price for that count, and a fixed sample of up to 5 rows. Charges nothing and writes no state. Capped at 10 dry runs per account per day.

## Actor input object example

```json
{
  "mode": "territory-report",
  "states": [
    "CT"
  ],
  "participantMin": 100,
  "planType": "welfare",
  "renewalMonths": [
    10,
    11,
    12
  ],
  "dryRun": true
}
````

# Actor output Schema

## `reportRows` (type: `string`):

No description

## `runSummary` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "mode": "territory-report",
    "states": [
        "CT"
    ],
    "participantMin": 100,
    "renewalMonths": [
        10,
        11,
        12
    ],
    "dryRun": true
};

// Run the Actor and wait for it to finish
const run = await client.actor("yungstentech/form-5500-prospect-radar").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "mode": "territory-report",
    "states": ["CT"],
    "participantMin": 100,
    "renewalMonths": [
        10,
        11,
        12,
    ],
    "dryRun": True,
}

# Run the Actor and wait for it to finish
run = client.actor("yungstentech/form-5500-prospect-radar").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "mode": "territory-report",
  "states": [
    "CT"
  ],
  "participantMin": 100,
  "renewalMonths": [
    10,
    11,
    12
  ],
  "dryRun": true
}' |
apify call yungstentech/form-5500-prospect-radar --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=yungstentech/form-5500-prospect-radar",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Form 5500 Prospect Radar: Benefits Broker Leads by Renewal Date",
        "description": "Two one-off reports over the public DOL EFAST2 Form 5500 bulk data, organized by the filed insurance policy renewal date (Schedule A): a territory renewal report and a broker-book report. One-off purchases, no subscription.",
        "version": "0.0",
        "x-build-id": "BgPT7Oa7eeHlyDQVy"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/yungstentech~form-5500-prospect-radar/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-yungstentech-form-5500-prospect-radar",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/yungstentech~form-5500-prospect-radar/runs": {
            "post": {
                "operationId": "runs-sync-yungstentech-form-5500-prospect-radar",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/yungstentech~form-5500-prospect-radar/run-sync": {
            "post": {
                "operationId": "run-sync-yungstentech-form-5500-prospect-radar",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "mode"
                ],
                "properties": {
                    "mode": {
                        "title": "Report mode",
                        "enum": [
                            "territory-report",
                            "broker-book-report"
                        ],
                        "type": "string",
                        "description": "Which report to produce. 'territory-report' is a filtered plan list sorted by filed policy renewal date. 'broker-book-report' is every plan naming a given broker/advisor in Schedule A Part 1.",
                        "default": "territory-report"
                    },
                    "states": {
                        "title": "Sponsor states",
                        "type": "array",
                        "description": "Two-letter sponsor state codes (1-10). Required for the territory report. The report covers plans whose sponsor mailing address is in these states.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "counties": {
                        "title": "Counties / cities filter",
                        "type": "array",
                        "description": "Optional (up to 25). A client-side filter matched against the sponsor city (the main form carries no county field).",
                        "items": {
                            "type": "string"
                        }
                    },
                    "participantMin": {
                        "title": "Minimum participants",
                        "type": "integer",
                        "description": "Only include plans with at least this many total participants. Defaults to 100 (plans under 100 participants are largely exempt from full filing).",
                        "default": 100
                    },
                    "participantMax": {
                        "title": "Maximum participants",
                        "type": "integer",
                        "description": "Optional upper bound on total participants."
                    },
                    "planType": {
                        "title": "Plan type",
                        "enum": [
                            "welfare",
                            "pension",
                            "both"
                        ],
                        "type": "string",
                        "description": "Filter by benefit type. 'welfare' (group insurance: health, dental, life, disability) is the default. 'pension' is retirement plans. 'both' is either.",
                        "default": "welfare"
                    },
                    "carrierName": {
                        "title": "Insurance carrier name",
                        "type": "string",
                        "description": "Optional (>=3 chars). Keep only plans with a Schedule A carrier whose name contains this text."
                    },
                    "brokerName": {
                        "title": "Broker / advisor name",
                        "type": "string",
                        "description": "Required for the broker-book report (>=3 chars). Matched (normalized substring) against the Schedule A Part 1 broker/advisor name."
                    },
                    "renewalMonths": {
                        "title": "Renewal months",
                        "type": "array",
                        "description": "Optional. Integers 1-12. Keep only plans whose filed policy renewal month (from INS_POLICY_TO_DATE, plan-year-end as fallback) is in this set. Also the report sort key.",
                        "items": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 12
                        }
                    },
                    "naicsPrefixes": {
                        "title": "NAICS business-code prefixes",
                        "type": "array",
                        "description": "Optional (up to 10). Keep only plans whose sponsor business code (NAICS) starts with one of these digit prefixes.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "dryRun": {
                        "title": "Dry run (free preview)",
                        "type": "boolean",
                        "description": "Preview only: returns the total matching count, the derived total price for that count, and a fixed sample of up to 5 rows. Charges nothing and writes no state. Capped at 10 dry runs per account per day."
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
