# Portfolio Review

> Review a portfolio using real holdings, weights, sector exposure, concentration, correlation, and drawdown risk. Use when Codex needs to assess portfolio construction, identify diversification problems, evaluate risk exposures, or produce a structured portfolio-review report from holdings data or user-provided allocations.

- Skill: `jlnbuiles/portfolio-review` (Agent Skill, multi-file: 4 files)
- Install (CLI): `npx skillmds@latest add jlnbuiles/portfolio-review`
- Raw SKILL.md: https://api.skillmd.com/api/skills/jlnbuiles/portfolio-review/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Docs & Writing
- Author: jlnbuiles (https://skillmd.com/u/jlnbuiles)
- Updated: 2026-09-22
- Page: https://skillmd.com/skills/jlnbuiles/portfolio-review

---


# Portfolio Review

Use this skill to evaluate a portfolio, model basket, or weighted watchlist.

## Workflow

1. Frame the portfolio:
   - scope
   - goal
   - constraints
   - data timestamp
2. Confirm the inputs:
   - holdings
   - weights or values
   - cash
   - benchmark, if any
3. Evaluate:
   - concentration
   - sector and factor exposure
   - diversification quality
   - hidden correlation
   - stress / drawdown risk
4. Produce a short report with:
   - allocation overview
   - exposure review
   - main risk
   - strongest strength
   - 2-4 concrete adjustments

## Rules

- Default to latest available market context unless the user explicitly asks for historical-only or prior-close analysis.
- Use real numbers when possible.
- If the user asks for `current` or same-day portfolio status, verify timestamped intraday quotes for holdings before reporting total value or concentration.
- Always include an `as_of` timestamp with timezone for holdings pricing.
- Never mix prior-close and intraday quotes in a single total without calling it out explicitly.
- If holding coverage is partial or stale, quantify the affected weight and lower confidence.
- Do not infer weights unless the user clearly says equal-weighted.
- Treat hidden overlap as seriously as explicit concentration.
- Keep adjustment advice proportional to the flaw.

## MCP Integration

If `market-data-mcp` is available, use it as the default source for holdings-level market data.

- Preferred tools:
  - `get_multi_quote`
  - `get_bars`
  - `get_fundamentals_snapshot`
- Always show:
  - `source`
  - `as_of`
  - stale or partial-data flags when present
- Freshness guardrails:
  - quote data should be intraday current
  - fundamental ratios may be daily snapshots
- On provider failure (`RATE_LIMITED`, `UPSTREAM_UNAVAILABLE`, `STALE_DATA`):
  - retry once if retryable
  - continue with explicit coverage gaps per holding
  - avoid concentration claims that depend on missing prices

## References

- Read [references/portfolio-framework.md](./references/portfolio-framework.md) before a full review.
- Use [assets/portfolio-report-template.md](./assets/portfolio-report-template.md) for a full write-up.

