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¶
- Run on Sunday evening or Monday morning - Markets closed, full week data available
- Keep watchlist focused - 10-15 tickers max for thorough analysis
- Review action items - Carry forward incomplete items to next week
- Track trends - Compare this week's report to prior weeks
- 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)