Adviser Screener (cross-sectional Form ADV: size, type, clean-record, fees)
adv_screen_managersAdviser Screener — rank and filter Form ADV advisers with AUM (one row per CRD, ~21.6K) by size, growth, client base, fees, custodian, location, regulatory record and adviser moves. Matches Console's Adviser Screener (/ledger/advisers).
Each row: aum (+ aum_as_of), g1 / g3 (1y / 3y AUM growth as a fraction, 0.25 = +25%; null when AUM at the start was under $50M), focus (wealth / institutional / private_funds / mixed — the client type holding 50%+ of RAUM), n_clients, n_employees, n_iar, mgmt_fee_pct / perf_fee_pct (headline brochure fees), n_private_funds, main_custodian (holds the most RAUM), city / state, events_5y (regulatory events, firm- and affiliate-level, in the last 5 years), has_serious_disciplinary, net_advisers_1y (advisers joined minus left; covers only ~5K firms — null means not covered, not zero).
Presets (preset; explicit filters override a preset's values): growing_wealth (wealth focus, $100M+, 1y +15%), large_wealth (wealth, $10B+), emerging ($100M–$1B with 3y +50%), private_funds, institutional, adding_advisers (net_advisers_1y ≥ +5), losing_advisers (≤ −5), shrinking (1y −15% or worse), regulatory (1+ event in 5 years, $100M+).
Filters: aum_min / aum_max (USD), g1_min / g1_max / g3_min (fractions), focus, state (2-letter), custodian (name substring), fee_max (max management fee %), pf_min (min private funds), net1_min / net1_max, events_min, name (substring) or crd. Older filters still work: min_raum / max_raum, clean_only, with_cik_only (13F-joinable — chain into thirteenf_* tools), registration_type, top_fund_type_in, firm_name_substring, max_mgmt_fee_pct, min_perf_fee_pct (NULL perf fee does not match; for private-fund advisers it usually means carry is in the LPA, so this undercounts), has_hurdle, fee_type_in, fee_data_only.
Sort: raum_desc (default), raum_asc, g1_desc, g1_asc, g3_desc, net1_desc, net1_asc, events_desc, fee_asc, n_private_funds_desc, n_accounts_desc (by clients). Growth / mover presets default to the matching sort. limit default 25, max 200. n_universe is the full match count.
as_of (YYYY-MM-DD) switches to the point-in-time Form ADV history screen (2017-10 → 2026-05, replay only); the new Console fields and presets are current-only and are rejected with as_of. The current screen covers SEC-registered advisers only, so registration_type='ERA'/'STATE' needs as_of.
Each row carries source_filing_id (the Form ADV filing behind aum / raum) and, on the current screen, source_brochure_id (the brochure the headline fees were extracted from; if_adv_brochure opens it).
Every adviser crd in the output has the adviser's SEC cik beside it (#2287; x_crd -> x_cik, a CRD list -> ..._crd_ciks): the CIK of the 13F filer that reports under that CRD, else the CIK on its own Form ADV; ciks lists both when they differ; null when neither exists. A row that already had its own cik keeps it.
Tool call template
This tool declares no required parameters. Add optional parameters from the input schema as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {},
"name": "adv_screen_managers"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| crd | No | One adviser by CRD. | |
| name | No | Firm name substring. | |
| sort | No | Sort order. raum_desc by default; growth / mover presets default to the matching sort. | |
| as_of | No | Point-in-time date (YYYY-MM-DD). When set, screens from `manager_profile_history` (300K rows / 23K firms / 2017-10 → 2026-05) — each adviser shown at their latest ADV filing on or before this date. **REPLAY-ONLY path** — full cross-section is ~1.4s on cold cache vs ~2ms on the current snapshot, so omit `as_of` for interactive 'now' screening. **Caveat**: fee filters are NOT yet point-in-time (latest fees only); when as_of and fee filters are combined, response carries `fees_not_pit_warning=true`. ERA/STATE filings have no date_submitted and silently drop from the as_of universe. | |
| focus | No | Client base (the client type with 50%+ of RAUM). | |
| limit | No | Max rows returned (default 25, max 200). | |
| state | No | Office state, 2-letter (e.g. 'NY'). | |
| g1_max | No | Maximum 1y AUM growth as a fraction (-0.15 = down 15% or more). | |
| g1_min | No | Minimum 1y AUM growth as a fraction (0.10 = +10%). | |
| g3_min | No | Minimum 3y AUM growth as a fraction (0.5 = +50%). | |
| pf_min | No | Minimum number of private funds. | |
| preset | No | Console screener preset. Explicit filters override the preset's values. | |
| aum_max | No | Maximum AUM in USD. | |
| aum_min | No | Minimum AUM in USD. | |
| fee_max | No | Maximum headline management fee % (1.0 = 1%). | |
| max_raum | No | Maximum current_raum in USD. | |
| min_raum | No | Minimum current_raum in USD (e.g. 5e9 = $5B). | |
| net1_max | No | Maximum net advisers gained over 1y (negative = losing). | |
| net1_min | No | Minimum net advisers gained over 1y. | |
| custodian | No | Main custodian name substring (e.g. 'Schwab', 'Fidelity' — Fidelity custody is 'NATIONAL FINANCIAL SERVICES'). | |
| clean_only | No | If true, require has_serious_disciplinary=false AND n_redflags=0. The 'clean' set shrunk on 2026-06-13 when registered-IA regulatory was added (firms with serious DRPs doubled 291 → 1,261 — Merrill 193 / LPL 186 / Edward Jones 130 / Citigroup 124 firm-level regulatory now disqualify). Pre-2025 dormant firms still have regulatory undercount. | |
| events_min | No | Minimum regulatory events in the last 5 years. | |
| has_hurdle | No | Filter by firm-level has_hurdle flag (true = any component carries a hurdle; false = none do). 'Hedge funds with NO hurdle' = `has_hurdle=false` + `min_perf_fee_pct=20`. | |
| fee_type_in | No | Filter to advisers with at least one component matching these fee_types (free-text from the brochure extractor — common values: 'management', 'performance', 'hourly', 'fixed', 'wrap', 'subscription', 'commission'). Multi-select with OR semantics. | |
| fee_data_only | No | If true, restrict to advisers with `fee_data_available=true` (a row in firm_fees). 23,266 advisers covered (2,236 are 13F-joinable). Use when you need the universe to be filterable on fee filters non-trivially. | |
| with_cik_only | No | If true, restrict to advisers with a resolved SEC CIK (the 13F-join key). 5,501 of 52,228 qualify. | |
| max_mgmt_fee_pct | No | Maximum headline management fee % (from latest brochure). 'Find sub-1% advisers' = `max_mgmt_fee_pct=1.0`. NULL mgmt fees are EXCLUDED from this filter (use fee_data_only=true to make NULL-handling explicit). | |
| min_perf_fee_pct | No | Minimum headline performance fee % (from latest brochure). 'Find 20%+ carry advisers' = `min_perf_fee_pct=20`. **NULL perf fees do NOT match this filter** — but a NULL perf fee on a private-fund adviser usually means 'carry is in the LPA' not 'no carry,' so this filter UNDERCOUNTS perf-fee shops. Use the components-level inspection via adv_manager_fees if the universe must be exhaustive. | |
| top_fund_type_in | No | Filter by the dominant private-fund type per adviser (free-text from Form ADV — common values: 'Private Equity Fund', 'Hedge Fund', 'Real Estate Fund', 'Venture Capital Fund', 'Securitized Asset Fund', 'Liquidity Fund', 'Other Private Fund'). | |
| registration_type | No | SEC = SEC-registered, ERA = Exempt Reporting Adviser, STATE = state-registered. Most institutional managers are SEC. | |
| firm_name_substring | No | Case-insensitive substring match on firm_name. Useful for finding all advisers in a family (e.g. 'BERKSHIRE' returns Berkshire Partners + Berkshire Asset Mgmt + Berkshire Property Advisors). | |
| include_stale_unverified | No | Default false. When false, suppresses rows where `raum_as_of` is more than 2 years stale AND `registration_type IS NULL` — catches the unit-decoding-bug class (e.g. VISTA FINANCIAL ADVISORS LLC showing $11.5T, raum_as_of 2023-04-05, registration_type NULL). Set true to disable the guard if you're auditing data quality directly. `n_suppressed_stale_unverified` reports how many rows were hidden. |