Skip to content
Back to skills

Manager Portfolio Diff

ASecurity

Diff the two most recent quarterly 13-F filings for an institutional investment manager (Berkshire, Baupost, Renaissance, Pershing Square, Tiger Global, Appaloosa, Scion, etc.) using Massive's pre-parsed 13-F endpoint. Reports initiations, exits, adds (>= 25% share change), trims (<= -25%), and portfolio value change. Answers "what did Buffett/Klarman/Burry do last quarter?" Requires Stocks Basic. Runs on the free tier.

  • 7 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 6, 2026
developmentgogitapi

Works with

  • api

Security analysis

A100/100

Pro scans all 5 files and shows the line behind each finding

Scanned September 6, 2026

npx -y skills add rgourley/quant-garage --skill manager-portfolio-diff --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Manager Portfolio Diff?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Manager Portfolio Diff
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/rgourley-manager-portfolio-diff/badge)](https://www.skillsdirectory.com/skills/rgourley-manager-portfolio-diff)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: manager-portfolio-diff
description: Diff the two most recent quarterly 13-F filings for an institutional investment manager (Berkshire, Baupost, Renaissance, Pershing Square, Tiger Global, Appaloosa, Scion, etc.) using Massive's pre-parsed 13-F endpoint. Reports initiations, exits, adds (>= 25% share change), trims (<= -25%), and portfolio value change. Answers "what did Buffett/Klarman/Burry do last quarter?" Requires Stocks Basic. Runs on the free tier.
---

# manager-portfolio-diff

You hand over a filer (an alias like "berkshire" or a raw CIK). The
skill pulls the two most recent quarterly 13-F filings for that
manager, aggregates holdings by CUSIP (handles multi-manager joint
filings), and reports the quarter-over-quarter change: initiations,
exits, adds, trims, and portfolio value delta.

The Massive endpoint doesn't support an issuer-oriented lookup ("who
holds AAPL?"), so this is the correct shape for 13-F work: pick the
filer whose decisions you want to see and diff their book.

## When to invoke

- "What did Berkshire do this quarter?"
- "Is Baupost still in that name?"
- "Did Pershing Square initiate anything new?"
- Any smart-money-following workflow across a curated cohort of
  funds

Not for: "who owns AAPL?" (endpoint doesn't support issuer filter at
scale). Not for real-time positioning (13-F is quarterly and lagged
~45 days after quarter-end).

## What you need

- Either `--filer` (an alias) OR `--filer-cik` (10-digit CIK)
- `MASSIVE_API_KEY` exported
- Stocks Basic plan minimum

Known aliases:
- `berkshire` / `buffett`
- `baupost` / `klarman`
- `renaissance` / `rentech`
- `bridgewater`
- `third point` / `loeb`
- `pershing` / `pershing square` / `ackman`
- `tiger global` / `coleman`
- `scion` / `burry`
- `appaloosa` / `tepper`

For anyone else, look up their CIK at
<https://www.sec.gov/cgi-bin/browse-edgar>.

## What you get back

Two output layers from one run.

**Layer 1: canonical JSON** matching [`output-schema.json`](./output-schema.json).
Top-level `filer_cik`, `filer_display_name`, `periods`, `summary`
(holding counts, portfolio value, activity counts), and `changes`
with per-bucket entries (initiation, exit, add, trim, unchanged).
Each entry carries `issuer_name`, `cusip`, `prior_shares`,
`current_shares`, `prior_market_value`, `current_market_value`,
`delta_shares_pct`.

**Layer 2: rendered note**. Header + activity counts, then four
buckets (NEW POSITIONS / EXITED / ADDS / TRIMS) capped at 10 entries
per bucket, sorted by market value. One-line Take highlighting the
biggest new position and biggest exit. See
[`references/rendering.md`](./references/rendering.md).

## How it works

1. **Pull all 13-F rows** for the filer via
   `GET /stocks/filings/vX/13-F?filer_cik={CIK}&limit=1000&sort=filing_date.desc`.
2. **Group by `period`** (quarter-end YYYY-MM-DD). Take the two
   most recent periods as current and prior.
3. **Aggregate by CUSIP** within each period. Sum shares and market
   value across multiple manager-of-record rows (joint filings
   produce one row per manager).
4. **Classify each CUSIP:**
   - Only in current → initiation
   - Only in prior → exit
   - In both, share change >= +25% → add
   - In both, share change <= -25% → trim
   - Otherwise → unchanged
5. **Sort each bucket by market value.** New positions and adds by
   current value; exits and trims by prior value. Renders top 10 per
   bucket with overflow count.

## Foundations used

- [`massive-api-patterns`](../massive-api-patterns) for REST auth,
  retry, pagination.

## Output mode: note

Narrative note. A single fund's 13-F is 30-300 rows typically; a
grouped-by-bucket note reads better than one wide table.

## Endpoints used

- `GET /stocks/filings/vX/13-F?filer_cik={CIK}&limit=1000&sort=filing_date.desc`
  All 13-F rows for the filer. Paginated.

## Doesn't handle (yet)

- **Fund-of-funds cohort scan.** No "top 20 hedge funds this
  quarter." A workflow composite could iterate over aliases.
- **Multi-quarter trajectory.** Only diffs two quarters. A rolling
  4-quarter cluster (add-add-add-add vs churn) would be a great
  extension.
- **Shorts / derivatives.** 13-F is longs + long options + a few
  other instruments only. Shorts don't appear.
- **Marked-to-market values.** Uses filer-reported market_value at
  the period date. Not marked to today's price.
- **Position-in-portfolio-percent.** Adds are currently ranked on
  absolute market value, not share-of-portfolio. Both matter.

These are clean PR extensions. Output schema is forward-compatible.

Files in this skill

  • README.md1.6 KB
  • SKILL.md4.4 KB
  • output-schema.json2.5 KB
  • references/rendering.md1.9 KB
  • requires.yml1.6 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.