investing-smart-money-watch
Multi-source smart-money surveillance. Two data sources, two cadences, one cross-source reasoning step:
- 13F filings (institutional, quarterly, 45-day lag) from SEC EDGAR — curated tracked-manager set
- Congressional PTRs (STOCK Act, monthly cadence, 30-45-day lag) from Quiver Quant — curated tracked-member set
Diffs each source vs prior period, identifies cross-manager/cross-member trend lines (multi-manager additions = darlings; multi-manager exits = avoid signals), then cross-references the two sources: when a name appears in BOTH simultaneously, that's a TIER-1 signal.
Status: v1 (2026-05-18). 13F scaffold + 2-year backfill landed 2026-05-17. Congressional data source extension + 12-month backfill landed 2026-05-18.
Why this skill exists (read every time)
Founder's edge is structural-anchor + cross-domain translation, not stock-picking. Smart-money 13Fs do two things for that edge:
- Idea generation — when 3+ tracked managers collectively rotate INTO a sector or name we don't yet hold a thesis on, that's a signal to investigate the structural reason. Smart money front-runs the obvious news; the 13F lets us follow them with a 45-day lag.
- Thesis corroboration / disconfirmation — when we have an active thesis (memory, power, space, longevity, elon-verse), checking whether the long-only quality investors are tracking with us is a real-world sanity check. If we're bullish on memory and Druckenmiller/Marathon/Berkshire are all trimming, that's a phase-marker we have to take seriously.
13F lag is real (45-day filing deadline after quarter end, so we see Q4 positions in mid-Feb). That's fine for capital-cycle theses operating on 12-36 month structural reads.
Tracked managers are LONG-ONLY positive-sum operators only. Soros / Pershing Square / Greenlight Capital are explicitly excluded — their styles (macro shorts, activist, short-biased) don't map to our operating model. Founder lock 2026-05-17.
Inputs
quarter— optional. FormatYYYY-Q[1-4](e.g.2025-Q4). If omitted, defaults to the most-recently-filed quarter (current date minus 60 days, rounded down to the prior quarter end).
Invocation
/investing:smart-money-watch [quarter]
Examples:
/investing:smart-money-watch→ process the most-recently-filed quarter/investing:smart-money-watch 2025-Q3→ re-process Q3 2025 (e.g. to incorporate amended filings)
Cron schedule
60 days after each quarter end. Quarter-end + 60d schedule:
- Q1 (Mar 31) → trigger ~May 30
- Q2 (Jun 30) → trigger ~Aug 29
- Q3 (Sep 30) → trigger ~Nov 29
- Q4 (Dec 31) → trigger ~Mar 1
The 45-day SEC filing deadline + 2-week buffer for amendments yields the 60-day cadence. Earlier triggers risk missing filers; later triggers delay signal.
Tracked manager set (v1, founder-locked 2026-05-17)
| Manager | Style | CIK | Notes |
|---|---|---|---|
| Duquesne Family Office (Druckenmiller) | macro, long-biased | 0001536411 | Highest-conviction macro shifts; small portfolio, easy to read |
| Marathon Asset Management | capital-cycle | (look up) | Capital-cycle framework most-aligned with our structural anchors |
| Berkshire Hathaway | long-only quality | 0001067983 | Slow-moving but the canonical quality benchmark |
| Pabrai Investments | concentrated long-only | (look up) | Concentrated bets; signal density per holding is high |
| Gardner Russo & Quinn (Tom Russo) | long-only compounder | (look up) | Long-duration global compounders |
| Akre Capital Management (Chuck Akre) | long-only compounder | (look up) | "Three-legged stool" compounder lens |
| Tiger Global Management | growth/tech long | 0001167483 | Read with skepticism post-2022 drawdown; useful as growth-side cross-reference |
| Appaloosa LP (Tepper) | macro long-biased | 0001656456 | Macro shifts + sector rotation reads |
Excluded by founder (do not add):
- Soros Fund Management
- Pershing Square Capital Management
- Greenlight Capital
CIK lookup for "(look up)" managers via SEC EDGAR full-text search at filing time. Cache resolved CIKs back into this table when surfaced.
Data source
SEC EDGAR free API. Endpoints used:
https://www.sec.gov/cgi-bin/browse-edgar?action=getcompany&CIK=<cik>&type=13F-HR&dateb=&owner=include&count=40— list 13F-HR filings for a CIKhttps://www.sec.gov/cgi-bin/browse-edgar?action=getcompany&company=<name>&type=13F-HR— name-based CIK lookuphttps://www.sec.gov/Archives/edgar/data/<cik>/<accession-no-dashes>/<accession-no-dashed>-index.htm— filing indexhttps://www.sec.gov/Archives/edgar/data/<cik>/<accession>/<infotable>.xml— holdings XML (XBRL)
SEC EDGAR access rules:
- Identify with
User-Agent: Ray Data Co ben@raydata.co - Rate limit ≤ 10 req/sec
- No commercial data redistribution (we're using for internal research — OK)
No paid feeds (Quiver, WhaleWisdom, 13F.info) — EDGAR direct only.
Process per run
- Resolve quarter — determine target quarter (input or default-to-prior-filed). Compute
quarter-end-datefor diffing. - For each tracked manager:
- Resolve CIK if not cached
- List 13F-HR filings, find the one covering
quarter-end-date - If filing not yet available (manager hasn't filed for this quarter), log skip + flag for retry next cron
- Pull the holdings XML (infotable.xml or equivalent)
- Parse rows: CUSIP, name of issuer, class of security, value (USD thousands), shares, put/call indicator, investment discretion, voting authority
- Map CUSIP → ticker via a cached CUSIP-to-ticker lookup (build incrementally; for unmapped, leave as CUSIP)
- Diff vs prior quarter for each manager:
- New positions (in current, not prior)
- Exited positions (in prior, not current)
- Increased (>20% share-count growth, or value growth net of price change)
- Decreased (>20% share-count drop)
- Top 10 positions by value
- Total portfolio value
- Cross-manager aggregation:
- For each ticker: count how many managers added / trimmed / hold / exited
- Surface multi-manager rotations (>=3 managers same direction same quarter)
- Sector concentration if ticker → sector mapping available
- Write per-manager quarterly brief at
~/rdco-vault/01-projects/investing/anchors/smart-money/<manager-slug>/<YYYY-QN>-brief.md - Write aggregate quarterly brief at
~/rdco-vault/01-projects/investing/anchors/smart-money/<YYYY-MM-DD>-aggregate-<YYYY-QN>.md - Cross-ref active theses — for each thesis in
theses/, check whether tracked managers are tracking or diverging from the thesis. Flag divergence loud.
Output shape
Per-manager brief
---
date: <run-date>
type: smart-money-brief
manager: <manager-slug>
quarter: <YYYY-QN>
filing_date: <date-filed>
portfolio_value_usd: <total>
position_count: <n>
tags: [investing, smart-money, 13f]
---
# <Manager> — <Quarter> 13F
## Top 10 positions
| Rank | Ticker | Value $M | % Portfolio | Δ vs prior Q |
| --- | --- | --- | --- | --- |
...
## New positions (this quarter)
| Ticker | Value $M | % Portfolio |
...
## Exited (this quarter)
| Ticker | Prior value $M |
...
## Significantly added (>20%)
...
## Significantly trimmed (>20%)
...
## Thesis cross-ref
- Memory: <holding ANY memory names? direction?>
- Power: <...>
- Space: <...>
- Longevity: <...>
- Elon-verse: <...>
## Notes
<freeform read of the manager's quarterly motion>
Aggregate brief
---
date: <run-date>
type: smart-money-aggregate
quarter: <YYYY-QN>
managers_processed: <n>/<8>
managers_pending: [<list of managers not yet filed>]
tags: [investing, smart-money, 13f-aggregate]
---
# Smart-money aggregate — <Quarter>
## Multi-manager rotations (>=3 managers same direction)
### Collective adds
| Ticker | # Managers adding | Managers |
...
### Collective trims/exits
...
## Thesis corroboration scorecard
| Thesis | Smart-money tracking? | Notes |
| Memory | <yes/mixed/no> | <which managers, which direction> |
...
## Concentration shifts
<aggregate sector/factor reads>
## Anomalies + flags
<single-manager standout moves, surprise exits, etc.>
## Idea-generation candidates
<tickers/sectors not in our thesis set that warrant a `candidates/` lookup>
Companion Python helper
~/.claude/scripts/edgar-13f.py — does the EDGAR fetching, XML parsing, and diff math. Skill shells out to it for the data layer; this SKILL.md owns the cross-manager reasoning + thesis-corroboration + brief authoring.
Subcommands (sketch):
edgar-13f.py resolve-cik <name>— CIK lookupedgar-13f.py list-filings <cik>— list 13F-HR filingsedgar-13f.py fetch-filing <cik> <accession>— pull holdings XML, parse to JSONedgar-13f.py diff <cik> <quarter>— diff vs prior quarter, return structured JSON
Backfill subcommand:
edgar-13f.py backfill <cik> --quarters 8— pull last N quarters of holdings, return per-quarter JSON + trend summary
Cross-references to active theses
Each per-manager brief tags exposure to the 5 v1 buckets (memory, power, space, longevity, elon-verse). The aggregate brief includes a Thesis corroboration scorecard that for each bucket flags whether tracked managers are net-long, net-trimming, or mixed.
When a thesis-corroboration flag goes red (managers collectively trimming a name we're bullish on), surface it in the aggregate brief's Anomalies + flags section AND link the relevant thesis file. Founder reads this as a phase-marker check.
Dependencies
~/.claude/scripts/edgar-13f.py(companion helper)requestsPython library (probably already in.claude/scripts/alpaca-venv)- No paid data feeds
- No MCP servers required (EDGAR is public HTTP)
Constraints / caveats
- 13F filings have a 45-day lag and may be amended. Re-running
/investing:smart-money-watch <quarter>90+ days after quarter-end captures amendments. - 13F only reports long equity positions + some derivatives. Cash, shorts, foreign-listed holdings, and private positions are NOT reported.
- Manager names in 13F are by legal entity; some managers file under multiple entities. Verify CIK actually represents the manager's main investment vehicle before adding to the tracked set.
- CUSIP → ticker mapping is the weak link. Build incrementally; for unmapped CUSIPs in the top 10, manually resolve once and cache.
- Position-size reads can be misleading when portfolio total changes substantially quarter-to-quarter. Always show both absolute $M and % portfolio.
Related
- [[01-projects/investing/README.md]] — v2 project framing + quality process
- [[01-projects/investing/anchors/smart-money/]] — output destination
- [[.claude/skills/investing-build-thesis/SKILL.md]] — feeds smart-money reads into new thesis synthesis
- [[01-projects/investing/plugin/README.md]] — plugin scaffold context
Congress tracking (STOCK Act PTRs) — added 2026-05-18
A second data source: congressional periodic transaction reports (PTRs). Higher cadence than 13F (30-45 day disclosure lag vs 13F's 45 days post-quarter-end), captures both sides of the political aisle, and pulls signal from the small subset of members + spouses who are active stock-pickers vs the broad passive-managed-account flow.
Data source
Quiver Quant public per-politician pages at https://www.quiverquant.com/congresstrading/politician/<Name>-<bioguideID>. Each page ships the full per-member trade history embedded in a JS tradeData variable — no auth, structured data, free.
Fallback if Quiver becomes unreliable: official House Clerk + Senate efdsearch sites publish PDFs directly. Scraping them is hairy (PDF parse, no structured records); only fall back if Quiver structurally breaks.
Why not SEC EDGAR: PTRs are NOT filed with the SEC. They go to the House Clerk's office of financial disclosures and the Senate Office of Public Records. EDGAR has no congressional disclosures.
Access rules:
- User-Agent:
Ray Data Co data-engineering research ben@raydata.co - 5-second delay between requests (Cloudflare-fronted; aggressive throttling below this)
- Exponential backoff retry on 403 (10s, 20s, 40s, 80s) — single 403 is usually transient
Tracked member set (v1, founder-named + top-volume sweep, 2026-05-18)
Founder-named primaries (high signal density per trade):
- Nancy Pelosi (D-CA, House, bioguide P000197) — most-watched; Paul Pelosi managed
- Daniel S. Goldman (D-NY, House, G000599)
- Josh Gottheimer (D-NJ, House, G000583)
- Tommy Tuberville (R-AL, Senate, T000278)
Top-volume traders (added from Quiver active-list sweep — lower signal density per trade but useful for cross-member darling-detection):
- Michael T. McCaul (R-TX, House, M001157) — spouse's family wealth trust; very high volume
- Ro Khanna (D-CA, House, K000389) — extremely high disclosure count via managed account
- Lisa Mcclain (R-MI, House, M001210) — verify bioguide on next pass
- Markwayne Mullin (R-OK, Senate, M001190) — active concentrated trader
- Gilbert Cisneros (D-CA, House, C001110)
- Cleo Fields (D-LA, House, F000462)
- John Boozman (R-AR, Senate, B001236)
Signal-density caveat: Pelosi at 21 trades / 12mo has higher density than Khanna at 5,083 / 12mo. Pelosi's trades are large-bracket, directional, and individually attributable. Khanna's are mostly spouse-managed small flow. Always filter to substantive notional brackets ($15k+) before reading trend.
Scraper
~/.claude/scripts/congress-trades-scraper.py (Python; uses ~/.claude/scripts/dram-spot-venv).
Subcommands:
congress-trades-scraper.py backfill --months 12 --out <csv>— pull trailing N months for all tracked members, write CSVcongress-trades-scraper.py member <Name-bioguide>— debug-fetch a single member
CSV columns: filed_date, trade_date, member, bioguide, party, state, chamber, ticker, action, notional_range, asset_type, instrument, sector, owner, notional_mid_est, description.
Cron cadence
Monthly on the 15th. Each PTR has a 30-45 day filing window after the trade; the 15th sits after most members' month-end filings have closed. Each run pulls trailing 60 days (covers two PTR cycles) and diffs vs prior monthly snapshot.
Cross-source reasoning (TIER-1 rule)
When a name appears as a tracked 13F manager's recent buy AND a tracked Congress member's recent buy in the SAME window, that's a TIER-1 multi-source signal. The intuition: two independent disclosure systems pointing the same direction simultaneously narrows the false-positive surface.
Cross-source overlap analysis lives at ~/rdco-vault/01-projects/investing/anchors/smart-money/congress/<YYYY-MM-DD>-cross-source-overlap.md — produced each time a fresh 13F aggregate and fresh Congress backfill are both available.
Single-source signals are TIER-2 (one source) or TIER-3 (only one tracked entity within one source). Use TIER for thesis-corroboration weighting, not as a buy/sell trigger by itself.
Output
- Time-series CSV at
~/rdco-vault/01-projects/investing/anchors/smart-money/congress/<YYYY-MM-DD>-{backfill,monthly}.csv - Companion notes at
<YYYY-MM-DD>-backfill-notes.md(or-monthly-notes.md) — coverage achieved, top trends visible per member, signal-density caveat, blockers - Cross-source overlap analysis at
<YYYY-MM-DD>-cross-source-overlap.mdwhenever a paired 13F aggregate exists
Changelog
- 2026-05-17 — v0 scaffold authored + initial 2-year 13F backfill (2023-Q4 through 2025-Q3, 8 quarters) executed for the founder-locked tracked-manager set.
- 2026-05-18 — v1: added congressional PTR data source via Quiver Quant. 12-month trailing backfill executed for 11-member tracked set (7,071 rows captured). Cross-source overlap analysis produced for Q4 2025 + Q1 2026 windows — TIER-1 signals identified on GOOGL, AMZN, NFLX. Scraper at
~/.claude/scripts/congress-trades-scraper.py.