Skip to content

Weekly Investment Review SOP

Run this SOP with Claude Code to automate your weekly portfolio review and market analysis.

Prerequisites

Required Tools

  • SnapTrade CLI: /opt/homebrew/bin/snaptrade (configured with API credentials)
  • Python: uv environment with yfinance, fredapi, alpha-vantage

Optional API Keys (add to .env)

ALPHAVANTAGE_API_KEY=  # https://www.alphavantage.co/support/#api-key
FRED_API_KEY=          # https://fred.stlouisfed.org/docs/api/api_key.html

User Inputs

Create investments/watchlist.txt with tickers to track beyond your holdings (one per line):

NVDA
MSFT
AAPL


Execution Instructions

Paste the following prompt into Claude Code to run the weekly review:

Execute the Weekly Investment Review SOP at investments/WEEKLY_REVIEW_SOP.md

Steps:
1. PORTFOLIO DATA: Run SnapTrade commands to get positions, balances, and recent trades
2. WATCHLIST: Read investments/watchlist.txt (if exists) for additional tickers
3. MARKET DATA: Use yfinance to get weekly performance for:
   - All portfolio holdings + watchlist
   - Indices: SPY, QQQ, DIA, IWM, VIX
   - Sectors: XLK, XLF, XLE, XLV, XLY, XLP, XLI, XLU, XLRE, XLB
4. EARNINGS: Check yfinance calendar for each holding - note any reported or upcoming
5. NEWS: WebSearch for top news on each holding ("{ticker} stock news this week")
6. MACRO: WebSearch for:
   - "Federal Reserve news this week"
   - "economic data releases this week"
   - "stock market news this week"
7. COMPILE: Generate report using template in SOP
8. SAVE: Write to investments/reports/weekly/YYYY-MM-DD.md
9. SUMMARIZE: Present key findings and action items

Data Collection Reference

SnapTrade Commands

# Account balances
/opt/homebrew/bin/snaptrade accounts

# All positions across accounts
/opt/homebrew/bin/snaptrade positions --all

# Recent orders (last 24h)
/opt/homebrew/bin/snaptrade recent-orders

# Get quotes for specific tickers
/opt/homebrew/bin/snaptrade quote AAPL,MSFT,GOOG

yfinance Data Points

import yfinance as yf

ticker = yf.Ticker("AAPL")

# Week's price history
ticker.history(period="5d")

# Fundamentals
ticker.info  # P/E, market cap, sector, etc.

# Earnings calendar
ticker.calendar  # Earnings date, dividend date

# News headlines
ticker.news

Indices & Sectors to Track

Symbol Description
Indices
SPY S&P 500
QQQ Nasdaq 100
DIA Dow Jones
IWM Russell 2000
VIX Volatility Index
Sectors
XLK Technology
XLF Financials
XLE Energy
XLV Healthcare
XLY Consumer Discretionary
XLP Consumer Staples
XLI Industrials
XLU Utilities
XLRE Real Estate
XLB Materials

FRED Economic Indicators

Series Name Note
FEDFUNDS Fed Funds Rate Check for changes
CPIAUCSL CPI Inflation gauge
UNRATE Unemployment Labor market
T10Y2Y 10Y-2Y Spread Yield curve

Report Template

Save output to: investments/reports/weekly/YYYY-MM-DD.md

# Weekly Investment Review - {week_start} to {week_end}

## Executive Summary
- **Portfolio Value:** ${total}
- **Week Change:** {+/-}${amount} ({%})
- **YTD Change:** {%}

## Portfolio Overview

| Ticker | Shares | Cost Basis | Current | P&L | Week % |
|--------|--------|------------|---------|-----|--------|
| XXX | 100 | $10,000 | $12,000 | +$2,000 | +2.5% |

### Top Movers
- **Best:** {ticker} +{%} - {reason if known}
- **Worst:** {ticker} -{%} - {reason if known}

## Trades Executed This Week

| Date | Action | Ticker | Shares | Price | Total |
|------|--------|--------|--------|-------|-------|
| 2024-01-15 | BUY | AAPL | 10 | $185.00 | $1,850 |

## Earnings

### Reported This Week
- **{ticker}:** EPS ${actual} vs ${est} estimate - {beat/miss by X%}
  - Revenue: ${actual} vs ${est}
  - Guidance: {raised/maintained/lowered}
  - Stock reaction: {+/-}%

### Upcoming (Next 2 Weeks)
| Date | Ticker | Est. EPS | Notes |
|------|--------|----------|-------|
| 2024-01-22 | MSFT | $2.85 | Azure growth key |

## Market Context

### Index Performance
| Index | Close | Week % | YTD % |
|-------|-------|--------|-------|
| S&P 500 (SPY) | 4,800 | +1.2% | +3.5% |
| Nasdaq (QQQ) | 16,500 | +1.8% | +4.2% |
| Dow (DIA) | 37,500 | +0.8% | +2.1% |
| Russell 2000 (IWM) | 2,000 | +0.5% | +1.8% |

### Sector Performance
| Sector | ETF | Week % | Trend |
|--------|-----|--------|-------|
| Technology | XLK | +2.1% | Strong |
| Financials | XLF | +1.5% | Rising |
| Energy | XLE | -0.8% | Weak |
| Healthcare | XLV | +0.3% | Flat |
| ... | ... | ... | ... |

### Volatility
- **VIX:** {level} ({low/moderate/elevated/high})
- Interpretation: {market sentiment}

## Macro Digest

### Economic Data Released
- **{indicator}:** {value} ({vs expected}, {vs prior})
  - Implication: {what this means for markets}

### Federal Reserve & Policy
{Summary of Fed news, speeches, rate expectations}

### Key Events
- {Event 1}: {impact on markets}
- {Event 2}: {impact on markets}

## Holdings News

### {Ticker 1}
- [{headline}]({url}) - {1-line summary}
- [{headline}]({url}) - {1-line summary}

### {Ticker 2}
- [{headline}]({url}) - {1-line summary}

## Watchlist Updates
{News or significant moves for watchlist tickers not in portfolio}

## Action Items
- [ ] Review {ticker} position after {earnings/news/price move}
- [ ] Research {topic} for potential investment
- [ ] Consider rebalancing {sector} exposure
- [ ] Set alert for {upcoming event}

## Notes
{Any additional observations, thesis updates, or reminders}

Workflow Summary

1. COLLECT DATA
   ├── SnapTrade: positions, balances, trades
   ├── yfinance: prices, fundamentals, earnings
   └── Watchlist: additional tickers

2. GATHER CONTEXT
   ├── Index performance (SPY, QQQ, DIA, IWM)
   ├── Sector rotation (all 11 sectors)
   ├── Volatility (VIX)
   └── Economic indicators (FRED)

3. ANALYZE HOLDINGS
   ├── Week's performance
   ├── Earnings (reported + upcoming)
   ├── News headlines
   └── Significant developments

4. MACRO REVIEW
   ├── Fed/policy news
   ├── Economic releases
   └── Geopolitical events

5. COMPILE REPORT
   ├── Executive summary
   ├── Position details
   ├── Market context
   ├── Action items
   └── Save to reports/weekly/

6. PRESENT FINDINGS
   └── Key takeaways to user

Tips for Best Results

  1. Run on Sunday evening or Monday morning - Markets closed, full week data available
  2. Keep watchlist focused - 10-15 tickers max for thorough analysis
  3. Review action items - Carry forward incomplete items to next week
  4. Track trends - Compare this week's report to prior weeks
  5. Add notes - Document your thinking for future reference

Future Enhancements

  • Add historical performance tracking across weeks
  • Include options positions and Greeks
  • Add dividend income tracking
  • Integrate analyst ratings changes
  • Add technical indicators (RSI, moving averages)