FinUties Study · Ownership · Identity is the missing join, not the data
By FinUties Research · · 8 min read · Research · Updated 25 August 2026
Updated at 25 August 2026.
FinUties Study · Ownership · Identity is the missing join, not the data
By FinUties · organization byline · The organization reports no position in any instrument named. Informational only — not investment advice, and no claim is made about domains outside the P0 surface.
Scope
P0 domain: ownership. The question in one sentence: can rows from
/api/v1/ownership/holdings be joined to instruments a partner already tracks? This study
measures identifier resolution and column availability on the 13F-derived holdings surface. It
does not interpret any manager's positioning, does not rank holdings, and does not treat any
non-P0 domain as covered.
The reading it arrives at: the position data is real and value-complete, and the identity
is missing. Ownership is ready for value and discretion work today, and not ready for
symbol-level or voting-power work without an external CUSIP mapping.
Question
This is answerable from P0 data because resolution state is visible in the rows: a
stock_symbol either carries a ticker or carries a CUSIP_ placeholder, and that is a
countable property. It would become unanswerable if the question shifted to why a given CUSIP
is unresolved, which depends on a mapping table this surface does not expose.
Evidence manifest
This study rests on 4 pulls from the ownership domain between 19:43 and 19:53 UTC on
2026-08-18. Every row below is re-runnable.
| # | Pulled (UTC) | Domain | Endpoint | Query | Rows | Freshness | Replay |
|---|---|---|---|---|---|---|---|
| 1 | 2026-08-18 19:47 | ownership | /api/v1/ownership/holdings |
filing_date_from=2026-01-01, filing_date_to=2026-12-31, limit=500, offset=0…2500 (6 pages) |
3,000 | not recorded — probe returned age_hours: null |
REST GET /api/v1/ownership/holdings?filing_date_from=2026-01-01&filing_date_to=2026-12-31&limit=500 · MCP {"domain":"ownership","resource":"holdings","limit":500,"ranges":{"filing_date":{"from":"2026-01-01","to":"2026-12-31"}}} |
| 2 | 2026-08-18 19:53 | ownership | /api/v1/ownership/holdings |
same range, limit=1, include_total=true |
1 returned; total 189,685 |
as row 1 | REST GET /api/v1/ownership/holdings?filing_date_from=2026-01-01&filing_date_to=2026-12-31&limit=1&include_total=true |
| 3 | 2026-08-18 19:45 | ownership | /api/v1/resources/ownership/holdings/query-options |
none | 1 contract document | not applicable | REST GET /api/v1/resources/ownership/holdings/query-options |
| 4 | 2026-08-18 19:43 | system | /api/v1/status/p0 |
none | 8 domain rows | ownership yellow; observed age not recorded | REST GET /api/v1/status/p0 |
Study study-ownership-identifier-resolution-2026-08 · manifest v1.
Sources in this study
- 13F institutional holdings — Provider: SEC EDGAR Form 13F via FinUties (
data_source
sec_edgarandcollector_methodsubmissions_apion 100% of sampled rows). Geography:
United States (13F reporting managers). Frequency: Quarterly filings, arriving in
filing-date batches. What it measures: One row per reported position — manager CIK, security
identifier, share count, reported dollar value, share class, investment discretion. FinUties
path:/api/v1/ownership/holdings. - Resource query contract — Provider: FinUties query layer. What it measures: Which
filters, ranges and sorts the endpoint accepts, and which of them the large-table guard
requires. FinUties path:/api/v1/resources/ownership/holdings/query-options. - P0 claim-surface status — Provider: FinUties freshness probe. What it measures:
Ownership fill and freshness against the 48-hour budget. FinUties path:/api/v1/status/p0.
Findings
Finding 1 — 98.3% of rows carry a placeholder instead of a ticker (manifest row 1). 2,949 of
3,000 rows have a stock_symbol shaped CUSIP_22160K105; 51 rows resolve to one of 20 real
symbols. Across the sample there are 1,372 distinct stock_symbol values, so this is a mapping
gap, not a coverage gap.
Figure 1 — Identifier resolution and its value weight (manifest row 1).
Metric: row count and summed value by resolution state, provider SEC EDGAR 13F via FinUties, units = rows and percent of sampled USD value.
| Identifier state | Rows | Share of rows | Share of sampled value |
|---|---|---|---|
CUSIP_* placeholder |
2,949 | 98.3% | 72.8% |
| Resolved ticker (20 distinct) | 51 | 1.7% | 27.2% |
Finding 2 — The resolved slice is mega-cap biased (manifest row 1). The 51 resolved rows are
1.7% of rows and 27.2% of the $53.21bn sampled value. The 20 symbols are AAPL, AMZN, AXP, BAC,
BRK.B, CB, CVX, GOOG, GOOGL, JNJ, JPM, KHC, KO, MA, MCO, MSFT, OXY, TSLA, V and WMT. A
"top holdings by ticker" job therefore analyses 1.7% of rows and returns a plausible-looking,
systematically large-cap answer. That failure mode is quiet, which is what makes it worth
stating.
Finding 3 — Voting-power analytics are not supported; discretion analytics are (manifest row 1).
voting_authority_sole, _shared and _none are null on all 3,000 rows, as are security_type
and principal_amount. investment_discretion is populated on every row (SOLE 1,750 = 58.3%,
DFND 1,250 = 41.7%). The two answer different questions and one is not a substitute for the other.
Figure 2 — Column availability in the same sample (manifest row 1).
Metric: null rate by column, provider SEC EDGAR 13F via FinUties, units = percent of 3,000 rows.
| Column | Null rate | Usable today |
|---|---|---|
value, shares, shares_type, filing_date, filing_period, investor_cik |
0.0% | Yes |
investment_discretion |
0.0% | Yes |
title_of_class (COM 1,701, Stock 227, CL A 154, …) |
0.0% | Yes, as a coarse class label |
other_manager |
46.4% | Partially |
put_call (4 rows populated) |
99.9% | No |
security_type, principal_amount |
100.0% | No |
voting_authority_sole / _shared / _none |
100.0% | No |
Finding 4 — The window is filer-concentrated by construction (manifest row 1). 17 distinct
manager CIKs appear; the largest contributes 1,384 rows (46.1%). 2,629 of 3,000 rows share
filing_date 2026-08-05, because 13F arrives in batches rather than as a stream. The top 10 rows
by reported value hold 34.7% of the sampled total.
Finding 5 — The endpoint requires a filter before it returns anything (manifest row 3).
limit and offset alone return HTTP 400. At least one of investor_cik, stock_symbol,
filing_period, or a bounded filing_date range is required. This is a documented large-table
guard, not an error condition.
Finding 6 — Ownership passed its checks without publishing an age (manifest row 4). The
48-hour budget applies. The probe returned yellow: fill_ok and freshness_ok both true
against the probed table im_holdings, with age_hours null. That is "present and passing",
not a measured SLA.
Limits and what the data does not say
- The sample is 1.6% of the window and filing-date ordered. 3,000 rows out of 189,685
(manifest row 2). Findings 2 and 4 — value share and concentration — are properties of this
window and should be recomputed over a full quarter before being quoted. - Values are self-reported. The
valuecolumn is the manager's own reported dollar figure.
FinUties does not independently verify it, so Figure 1's value split inherits that. - Nothing here establishes voting power, security type, or option positioning. Those columns
are null or near-null (Finding 3). - Freshness of delivery is not freshness of information. The most common
filing_periodis
2026-06-30 reported on 2026-08-05, so the underlying data is roughly six weeks old even when
the row is hours old. - The 20 resolved tickers are not a sample of the resolved universe. They cluster in one
filer's positions, so they say nothing about which securities resolve in general.
Try this query
The headline finding is Finding 1 — the identifier gap. Reproduce it, remembering the
large-table guard from Finding 5:
GET /api/v1/ownership/holdings?filing_date_from=2026-01-01&filing_date_to=2026-12-31&limit=100&offset=0
MCP query tool arguments — the range form the guard accepts:
{"domain": "ownership", "resource": "holdings", "limit": 100,
"ranges": {"filing_date": {"from": "2026-01-01", "to": "2026-12-31"}}}
Single-name pull, which sidesteps the identifier gap because you supply the symbol:
{"domain": "ownership", "resource": "holdings", "limit": 100, "filters": {"stock_symbol": "AAPL"}}
Freshness callout. Ownership budget: 48 hours. Observed at 2026-08-18 19:43:35 UTC:
status yellow, fill and freshness checks passing, observed age not recorded. Treat the
verdict as "passing", not as a measured age.
Method and confidence discipline
Resolution is classified by string prefix: a stock_symbol beginning CUSIP_ is unresolved,
anything else is resolved. Value shares are sums of the value column with no normalisation or
currency conversion. Null rates count null or empty string. Six sequential pages were read in
one window so the sample describes one state of the table.
High confidence in Findings 1, 3 and 5: exact counts and a documented API contract, and the
identifier gap is structural because 13F identifies securities by CUSIP at source. Moderate
confidence in Finding 2, which depends on self-reported values. Low confidence in Finding 4,
where 13F batching makes any short window unrepresentative by construction. Not established:
anything about voting power, security type, or option positioning.
What would overturn these findings. A pull in which the CUSIP_* share falls materially
below 98% overturns Finding 1 and removes the bias described in Finding 2. Any pull with a
populated voting_authority_sole overturns Finding 3.
Replies with evidence
Reply with evidence (replies open when forking ships. Every reply cites its own query.)
No evidence replies yet. Re-run the query in this note — if your pull disagrees with ours,
the reply will appear here with the query it cites.
Every reply cites its own query: endpoint, parameters, and pull time. Replies without a
citation are not published.
FinUties data sources
/api/v1/ownership/holdings/api/v1/resources/ownership/holdings/query-options/api/v1/status/p0- MCP
querytool,domain: ownership,resource: holdings
More research
Join the waitlist More research RSS feed Pricing About
Informational only — not investment advice. Research briefs from the FinUties research desk; data availability can change with upstream sources.