13F Institutional Flow Screener
thirteenf_screenCross-company 13F screener — find tickers matching institutional flow / velocity criteria. This is the cross-cutting view that single-company tools can't give you.
Key filters (the v3 differentiation):
is_cluster_entry=true → ≥3 notable funds entered this quarter (consensus buy)
is_cluster_exit=true → ≥3 notable funds exited (consensus sell)
is_quiet_accumulation=true → rising holder count + value with small avg positions (stealth)
consecutive_accum_qtrs_min=N → N+ consecutive quarters of net institutional inflow
consecutive_dist_qtrs_min=N → N+ consecutive quarters of net outflow
n_notable_new_positions_min=N → at least N notable funds opened a new position this Q
n_notable_exits_min=N → at least N notable funds fully exited this Q (the sell-side mirror)
exclude_funds=true → drop ETPs / open-end / closed-end funds / funds-of-funds
notable_holder_ciks=[...] → tickers held by any of these notable manager CIKs
Compound example: is_cluster_entry=true + consecutive_accum_qtrs_min=2 → sustained accumulation that just got a notable-fund cluster on top.
Default sort: net_change_value (this quarter's net institutional inflow in dollars, share-based). Each row carries breadth (n_increased / n_decreased / n_new_positions / n_exits across all 13F holders) and the notable-cohort counts (n_notable_new_positions / n_notable_exits / notable_net_value_usd).
Data is refreshed every ~4 hours from EDGAR 13F filings. Coverage artifacts (#2168, 2025Q4 on): when a security joins the SEC 13(f) list (or its old CUSIP leaves as the new one joins), holders that already owned it start or stop reporting it; those new / exit rows are not trades and are left out of new-position and exit counts, flows and cluster flags. Affected rows carry coverage_artifact.
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": "thirteenf_screen"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max tickers to return (default: 20, max: 100) | |
| sort_by | No | Sort field, descending. Default: net_change_value (largest net inflows first). The `_usd`-suffixed names that appear in output rows (e.g. notable_new_position_value_usd) are also accepted. | |
| ticker_in | No | Restrict to this list of tickers (useful for ranking a watchlist by flow). | |
| report_date | No | Quarter-end (YYYY-MM-DD) to replay the screen on, e.g. 2025-03-31. Default: the latest mature quarter. Every signal and filter then reads that quarter; `as_of_effective` echoes it. Past quarters can take up to 30s on a first read; if that runs out the tool returns error=query_timeout with retryable=true, so retry. 13Fs are public up to 45 days after quarter-end. Look-ahead: notable_* fields and filters use today's notable fund list on every quarter, so they aren't point-in-time. | |
| exclude_funds | No | Deprecated: funds are now excluded by default. exclude_funds=false is read as include_funds=true. | |
| include_funds | No | Also screen funds (ETPs / open-end / closed-end / funds-of-funds, holdings_company_quarterly.is_fund). Default false: funds are excluded and counted in `n_funds_filtered`; untyped (NULL) securities are kept. With ticker_in the default is true, so a named fund isn't silently dropped. | |
| is_cluster_exit | No | True = ≥3 notable funds exited (consensus sell signal). | |
| is_cluster_entry | No | True = ≥3 notable funds entered this quarter (consensus buy signal). | |
| n_notable_exits_min | No | Minimum notable funds that fully exited the position this quarter. | |
| notable_holder_ciks | No | Filter to tickers held by ANY of these notable manager CIKs (server-side OR via MatchAny). Useful for 'companies held by Ackman OR Loeb'. | |
| is_quiet_accumulation | No | True = rising holders + value with small avg positions (stealth pattern). | |
| n_notable_holders_min | No | Minimum notable funds currently holding the ticker. | |
| include_new_securities | No | Also screen securities flagged is_new_security (first quarter on file: IPOs, CUSIP successions), whose whole holder base reads as new buying. Default false: excluded and counted in `n_new_securities_filtered`. With ticker_in the default is true. exclude_corporate_actions=true always excludes them. | |
| consecutive_dist_qtrs_min | No | Minimum consecutive quarters of net institutional outflow. | |
| exclude_corporate_actions | No | When true, exclude CUSIPs flagged `corporate_action_suspect`, `is_new_security` (a CUSIP succeeding an old one) or `is_holder_collapse` (ADR/CUSIP migrations / share-class consolidations that look like mass cluster-entry / cluster-exit but are mechanical, NOT real institutional conviction shifts). Canonical examples per smart_money 2026-06-12: AZN/AZNN AstraZeneca ADR retirement (1,266 'exits' / 1,259 'new positions' across the pair), AMCR old/new CUSIP. **Recommended `true` when combined with is_cluster_entry/exit filters** — without it the screen surfaces these as flagship conviction picks. Default false (back-compat). `corporate_action_suspect` is a real column in the postgres backend, so this filter is immediate (no propagation lag). | |
| consecutive_accum_qtrs_min | No | Minimum consecutive quarters of net institutional inflow. | |
| n_notable_new_positions_min | No | Minimum notable funds that opened a new position this quarter. |