smart_money · internal briefing for raul

What to say about the security master

Prep for the Q4 calls — Wed with Steve (head of data), Thu/Fri with Venkat (VP, data). Same material either way: Steve will probe the mechanism, Venkat will probe the roadmap and the honesty of the gaps. Lead with the proof, not the pitch.

Wed — Steve, head of data Thu/Fri — Venkat, VP data Updated 2026-09-07

The one-liner

Loading 13F data is commodity work. Keeping every position correctly identified through a merger, split, or reincorporation is not — and that's the part everyone else drops.

A CUSIP is a label, not a fact. When it changes, a naive feed reads the event as a full exit plus a brand-new position. We rebuilt the join so it reads as what actually happened.

Why this is the whole conversation

Their own words are the brief

"Anyone can load 13F data — it's keeping track of all the changes that is the value." — relayed from the client, via Raul

Read that as a direct spec, not a vague preference. It splits into two things a feed has to get right:

1. Quarter-over-quarter flow — did a manager buy, sell, or hold. We've done this well for a while: share-based flow (not price-inclusive), bond-mistagging filtered out, CIK re-registrations collapsed so a manager's book doesn't fake a mass exit when they just re-registered.

2. Security identity through a corporate action — did the security itself change. This is the part that was missing until this month, and it's the part that actually differentiates from "anyone can load 13F data."

What's actually built, right now

Not a prototype — live in production, backing every downstream number

Three pieces, stacked. Every 13F holding gets a validated identifier, cross-checked against the SEC's own record, and resolved through any known corporate action before it ever reaches a flow calculation.

77M+holdings rows, check-digit validated + normalized
260corporate actions curated, each with a cited source
1.06Mrows in the exportable audit trail
2019–26SEC's own official securities list, full history

Layer 1 — validation. Every CUSIP on every holding is normalized and check-digit verified (the standard ANSI X9.6 algorithm — public, documented arithmetic, no data license required) and cross-checked against the SEC's own Official List of Section 13(f) Securities, ingested for its full published history.

Layer 2 — the succession ledger. 260 real corporate actions — mergers, reverse splits, reincorporations, renames, one bankruptcy — each individually verified against a primary source (an SEC 8-K, a Nasdaq corporate-action notice, a press release) before being added. Not inferred from a pattern and trusted blindly: every row has a citation.

Layer 3 — it's wired into the live numbers, not a side table. The succession ledger sits upstream of every quarter-over-quarter calculation. A security that changed CUSIPs three separate times over five years still resolves to one continuous position, share counts correctly adjusted for every split along the way.

The output is inspectable, not a black box. A single exportable table — one row per security per quarter — shows the whole chain: reported CUSIP → normalized → checked against the SEC list → resolved to today's identifier → the specific event that caused any change, cited. Someone at Q4 can pull it and check our work directly.

Two concrete cases, if they want to see it work

Pull these up live if asked

Reverse stock split AMCR · Amcor PLC

Naive feed reads it as
Q4 2025 → exit, −113,335,957 sh
Q1 2026 → new position, 22,816,270 sh
What we show
Q4 2025 → increase
Q1 2026 → increase, continuous position

1-for-5 reverse split, Jan 2026. Share counts are re-expressed at the correct 5:1 ratio automatically — the holder never actually sold anything. Independently confirmed: the SEC's own official list marks Amcor's old CUSIP 'DELETED' the following quarter. We didn't have to take our own word for it.

Merger with a downstream chain RYVYL → RTB Digital

Naive feed reads it as
Q1 2026 → exit, −433,510 sh
Q2 2026 → new (x2), unrelated-looking
What we show
Q1 2026 → decrease to 12,388 sh
Q2 2026 → increase to 30,950 sh

Real, continuous trading activity — a decrease then an increase — survives the merger intact instead of vanishing into an exit/new pair. The same mechanism composes across multi-hop chains: one security in our data changed CUSIP three separate times (a merger, then two later splits) and still resolves to a single position at the correctly compounded ratio.

What we're honest about

Say these before they find them

Data people trust a vendor who names their own gaps more than one who claims none. These are real, current, and each has a next step.

1

260 events curated, ~9,500 more candidates flagged but not yet verified

The detector surfaces candidates automatically from filing patterns; a human (or an independently-verified research pass) confirms each one before it goes live. 260 is the high-confidence tier, cleared first. The rest is a scale problem, not a correctness problem — same process, bigger pool.

if pressedCoverage grows every week we curate. Nothing goes live without a citation — we'd rather be incomplete than wrong.
2

Two edge-case categories deliberately left out, on purpose

SPAC units splitting into common stock + warrants, and preferred-to-common conversions. Both are genuine "did the position's nature actually change" questions where the honest answer is "it depends," and we chose not to guess. Held out until there's a real policy call, not fabricated.

if pressedWe could ship an assumption here in an afternoon. We didn't, because we'd rather ask than guess on something a client would rely on.
3

The SEC's own official list has real gaps too

We verified our cross-check against the list is working correctly (Microsoft matches every single quarter back to 2019, zero misses). But the list itself doesn't cover every legitimate security every quarter — some ADRs, foreign primary listings, thin small-caps. We treat absence from the list as a soft signal, not proof of a problem, and we say so in the data itself.

if pressedThat's a limitation of the SEC's source data, not ours — and we found it by checking our own work against a known-good control before trusting the number.
4

We're not licensing CUSIP Global Services' master file

That's the actual moat FactSet and others pay for, and it's why they can promise near-total coverage. We're reconstructing the event graph from free public sources — SEC filings, exchange notices, press releases. Real recall, honestly bounded, strongest for anything with any public paper trail.

if pressedWe're not claiming parity with a licensed master file. We're claiming something FactSet-adjacent, built transparently, that you can audit yourself.

Anticipated questions

If Steve or Venkat asks...

"How do you know a curated event is actually correct, and not just a pattern that looked right?"

Every one of the 260 events has an independent, citable source — an SEC 8-K filing, a Nasdaq corporate-action notice, or a company press release — checked against the pattern, not inferred from it. We caught and rejected candidates during curation where the pattern matched but the underlying event turned out to be something else (a SPAC unit splitting, a preferred-to-common conversion) — those got excluded rather than force-fit.

"What happens when a new corporate action happens next quarter — is this a one-time cleanup or ongoing?"

Ongoing. The candidate-detection step runs continuously off the same signal (paired mass-exit/mass-new activity on the same issuer in one quarter); curation is the human-verification step we run in batches. The mechanism itself doesn't need touching — new events just get added to the same ledger.

"Can we see the methodology, not just the output?"

Yes — that's exactly what the audit-trail export is for. Reported CUSIP, normalized form, check-digit result, SEC-list match, resolved identity, and the specific cited event, one row per security per quarter. Nothing about the resolution is hidden inside a black-box join.

"How far back does this go?"

Holdings data covers 2020 forward as the reliable core (with some earlier data present but not the primary scope). The SEC's own official securities list — our cross-check layer — covers its full published history, 2019 Q1 through today.

"What's the actual error rate on the old approach, the one you're replacing?"

We don't have a clean global number — that's precisely the problem naive feeds have, since a merger or split doesn't announce itself as an error, it just silently produces two fake events instead of one real one. What we can show is the before/after on real, verified cases: the fake-exit-plus-fake-new pattern disappears entirely for every one of the 260 curated events, and a residual detector confirms it — the false-signal rate on those specific securities dropped from thousands of flagged quarters to about 1%.

"Is this something we could evaluate ourselves, or do we just take your word for it?"

Evaluate it directly — the audit-trail export is built for exactly that. Give us a handful of tickers you already know the corporate-action history for, and we'll show you what our data says versus what happened.

If you only say one thing

This is the thing that separates "we have 13F data" from "we have correct 13F data" — and we can prove it, on real securities, with a source cited for every claim.

Don't oversell the backlog or the edge cases — data people respect the caveats more than the pitch. The mechanism is real and it's already live in production, not a demo built for this call.