Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Use this skill to track institutional investor ownership changes and portfolio flows using 13F filings data. Analyzes hedge funds, mutual funds, and other institutional holders to identify stocks with significant smart money accumulation or distribution. Helps discover stocks before major moves by following where sophisticated investors are deploying capital.
.claude/skills/nicepkg-institutional-flow-tracker/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-03 | ✗→✓ | ▲ Improved | 123% | 0% |
| case-05 | ✗→✓ | ▲ Improved | 46% | 0% |
| case-06 | ✗→✓ | ▲ Improved | 4% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 76% | 0% |
| case-13 | ✗→✓ | ▲ Improved | 205% | 0% |
This skill tracks institutional investor activity through 13F SEC filings to identify "smart money" flows into and out of stocks. By analyzing quarterly changes in institutional ownership, you can discover stocks that sophisticated investors are accumulating before major price moves, or identify potential risks when institutions are reducing positions.
Key Insight: Institutional investors (hedge funds, pension funds, mutual funds) manage trillions of dollars and conduct extensive research. Their collective buying/selling patterns often precede significant price movements by 1-3 quarters.
Use this skill when:
Do NOT use when:
This skill uses Financial Modeling Prep (FMP) API to access 13F filing data:
Setup:
bash# Set environment variable (preferred) export FMP_API_KEY=your_key_here # Or provide when running scripts python3 scripts/track_institutional_flow.py --api-key YOUR_KEY
API Tier Requirements:
13F Filing Schedule:
Execute the main screening script to find stocks with notable institutional activity:
Quick scan (top 50 stocks by institutional change):
bashpython3 institutional-flow-tracker/scripts/track_institutional_flow.py \ --top 50 \ --min-change-percent 10
Sector-focused scan:
bashpython3 institutional-flow-tracker/scripts/track_institutional_flow.py \ --sector Technology \ --min-institutions 20
Custom screening:
bashpython3 institutional-flow-tracker/scripts/track_institutional_flow.py \ --min-market-cap 2000000000 \ --min-change-percent 15 \ --top 100 \ --output institutional_flow_results.json
Output includes:
For detailed analysis of a specific stock's institutional ownership:
bashpython3 institutional-flow-tracker/scripts/analyze_single_stock.py AAPL
This generates:
Key metrics to evaluate:
Follow the portfolio moves of specific hedge funds or investment firms:
bash# Track Warren Buffett's Berkshire Hathaway python3 institutional-flow-tracker/scripts/track_institution_portfolio.py \ --cik 0001067983 \ --name "Berkshire Hathaway" # Track Cathie Wood's ARK Investment Management python3 institutional-flow-tracker/scripts/track_institution_portfolio.py \ --cik 0001579982 \ --name "ARK Investment Management"
CIK (Central Index Key) lookup:
Analysis output:
Read the references for interpretation guidance:
references/13f_filings_guide.md - Understanding 13F data and limitationsreferences/institutional_investor_types.md - Different investor types and their strategiesreferences/interpretation_framework.md - How to interpret institutional flow signalsSignal Strength Framework:
Strong Bullish (Consider buying):
Moderate Bullish:
Neutral:
Moderate Bearish:
Strong Bearish (Consider selling/avoiding):
For new positions:
For existing holdings:
Screening workflow integration:
All analysis generates structured markdown reports saved to repository root:
Filename convention: institutional_flow_analysis_<TICKER/THEME>_<DATE>.md
Report sections:
Data Lag:
Coverage:
Reporting Rules:
Interpretation:
Insider + Institutional Combo:
Sector Rotation Detection:
Contrarian Plays:
Smart Money Validation:
The references/ folder contains detailed guides:
Main screening script for finding stocks with significant institutional changes.
Required:
--api-key: FMP API key (or set FMP_API_KEY environment variable)Optional:
--top N: Return top N stocks by institutional change (default: 50)--min-change-percent X: Minimum % change in institutional ownership (default: 10)--min-market-cap X: Minimum market cap in dollars (default: 1B)--sector NAME: Filter by specific sector--min-institutions N: Minimum number of institutional holders (default: 10)--output FILE: Output JSON file path (default: institutional_flow_results.json)--sort-by FIELD: Sort by 'ownership_change', 'institution_count_change', 'dollar_value_change'Deep dive analysis on a specific stock's institutional ownership.
Required:
--api-key: FMP API key (or set FMP_API_KEY environment variable)Optional:
--quarters N: Number of quarters to analyze (default: 8, i.e., 2 years)--output FILE: Output markdown report path--compare-to TICKER: Compare institutional ownership to another stockTrack a specific institutional investor's portfolio changes.
Required:
--cik CIK: Central Index Key of the institution--name NAME: Institution name for report--api-key: FMP API key (or set FMP_API_KEY environment variable)Optional:
--top N: Show top N holdings (default: 50)--min-position-value X: Minimum position value to include (default: 10M)--output FILE: Output markdown report pathValue Dividend Screener + Institutional Flow:
1. Run Value Dividend Screener to find candidates
2. For each candidate, check institutional flow
3. Prioritize stocks with rising institutional ownershipUS Stock Analysis + Institutional Flow:
1. Run comprehensive fundamental analysis
2. Validate with institutional ownership trends
3. If institutions are selling, investigate whyPortfolio Manager + Institutional Flow:
1. Fetch current portfolio via Alpaca
2. Run institutional analysis on each holding
3. Flag positions with deteriorating institutional support
4. Consider rebalancing away from distributionTechnical Analyst + Institutional Flow:
1. Identify technical setup (e.g., breakout)
2. Check if institutional buying confirms
3. Higher conviction if both alignNote: This skill is designed for long-term investors (3-12 month horizon). For short-term trading, combine with technical analysis and other momentum indicators.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→fail | 19,264 | 8,590 | -55% | 1 | 1 | 0% | 3,284 | 3,288 | +0% | 0 | 0 | — |
case-02 | fail→fail | 16,096 | 7,276 | -55% | 1 | 1 | 0% | 2,618 | 3,465 | +32% | 0 | 0 | — |
case-03 | fail→pass | 12,590 | 6,716 | -47% | 1 | 1 | 0% | 1,767 | 3,942 | +123% | 0 | 0 | — |
case-04 | pass→pass | 17,555 | 8,733 | -50% | 1 | 1 | 0% | 2,688 | 4,342 | +62% | 0 | 0 | — |
case-05 | fail→pass | 16,680 | 5,692 | -66% | 1 | 1 | 0% | 2,708 | 3,947 | +46% | 0 | 0 | — |
case-06 | fail→pass | 20,099 | 4,036 | -80% | 1 | 1 | 0% | 3,585 | 3,730 | +4% | 0 | 0 | — |
case-07 | fail→pass | 12,404 | 3,947 | -68% | 1 | 1 | 0% | 2,134 | 3,757 | +76% | 0 | 0 | — |
case-08 | fail→fail | 12,834 | 6,181 | -52% | 1 | 1 | 0% | 2,049 | 3,266 | +59% | 0 | 0 | — |
case-17 | pass→pass | 16,919 | 13,120 | -22% | 1 | 1 | 0% | 2,315 | 4,789 | +107% | 0 | 0 | — |
case-09 | fail→fail | 36,270 | 4,749 | -87% | 1 | 1 | 0% | 6,167 | 3,154 | -49% | 0 | 0 | — |
case-10 | fail→fail | 22,711 | 3,840 | -83% | 1 | 1 | 0% | 4,209 | 3,408 | -19% | 0 | 0 | — |
case-11 | pass→pass | 9,204 | 4,292 | -53% | 1 | 1 | 0% | 1,199 | 3,676 | +207% | 0 | 0 | — |
case-12 | pass→pass | 10,056 | 3,863 | -62% | 1 | 1 | 0% | 1,449 | 3,652 | +152% | 0 | 0 | — |
case-13 | fail→pass | 7,622 | 3,092 | -59% | 1 | 1 | 0% | 1,136 | 3,468 | +205% | 0 | 0 | — |
case-14 | pass→pass | 9,270 | 1,758 | -81% | 1 | 1 | 0% | 1,450 | 3,213 | +122% | 0 | 0 | — |
case-15 | pass→pass | 14,668 | 2,456 | -83% | 1 | 1 | 0% | 2,393 | 3,323 | +39% | 0 | 0 | — |
case-16 | pass→pass | 13,638 | 3,611 | -74% | 1 | 1 | 0% | 2,080 | 3,481 | +67% | 0 | 0 | — |
case-18 | fail→pass | 11,586 | 1,809 | -84% | 1 | 1 | 0% | 1,768 | 3,265 | +85% | 0 | 0 | — |
case-19 | fail→pass | 5,803 | 2,478 | -57% | 1 | 1 | 0% | 923 | 3,365 | +265% | 0 | 0 | — |
case-20 | pass→pass | 3,154 | 2,441 | -23% | 1 | 1 | 0% | 486 | 3,397 | +599% | 0 | 0 | — |
case-21 | pass→pass | 12,303 | 4,420 | -64% | 1 | 1 | 0% | 1,692 | 3,591 | +112% | 0 | 0 | — |
case-22 | fail→pass | 10,325 | 3,403 | -67% | 1 | 1 | 0% | 1,555 | 3,550 | +128% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted, and 18 counted toward the lift figure. The other 4 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +36 percentage points is the difference between those two pass rates over the 18 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.