Graph Aggregate (rank entities by an aggregate over their edges — the screen primitive) [beta]
graph_aggregateThe graph SCREEN primitive — rank entities BY an aggregate over their edges (the cross-node complement to graph_neighbors' single-node walk). 'Which companies have the most 13D filers', 'most widely-held stocks', 'busiest placement agents', 'most-interlocked directors'.
Pick an edge_type (discover via graph_schema), a group_side ('src' or 'dst' — which END of the edge to rank), and a metric:
• n_edges — count of edges (e.g. # 13D filings on a company)
• n_counterparties — count of DISTINCT other-side entities (e.g. # distinct 13D filers — usually what you want for 'most-targeted')
• sum:<signal> — sum of a numeric edge signal (e.g. sum:value_usd on holds/dst = biggest aggregate institutional $ position; signals per edge come from graph_schema).
Examples: holds / dst / n_counterparties → most widely-held stocks; holds / dst / sum:value_usd → biggest $ held; filed_13d_on / dst / n_counterparties → most-targeted companies; placed_offering_for / src / n_edges → busiest placement agents; board_member_of / src / n_edges → most-interlocked directors.
Each row: resolved name + node_id + n_edges + n_counterparties + signal_sums + as_of_max (freshness of the underlying edges). Data is a nightly rollup (refreshed_at echoed) — current to ~last night, which is right for these rankings. Catalog-driven: every graph edge is screenable, new edges auto-join. min_value floors the metric; node_type filters the grouped node type.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"edge_type": "<edge_type>",
"group_side": "<group_side>"
},
"name": "graph_aggregate"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| top_n | No | How many to return (default 25, max 200). | |
| metric | No | n_edges | n_counterparties | sum:<signal> (e.g. 'sum:value_usd'). Default n_edges. | n_edges |
| edge_type | Yes | Which edge to aggregate (from graph_schema). | |
| min_value | No | Only rows whose metric ≥ this. | |
| node_type | No | Optional filter on the grouped node's type (company/person/investor/institution/foundation). | |
| group_side | Yes | Which end of the edge to rank: 'src' (e.g. the filer/holder/agent) or 'dst' (e.g. the company held/targeted). |