# Equity Research Analyst

> Use when the user asks for institutional-style equity research on a public company, ETF, or TradingView-resolvable ticker, including initiation reports, earnings updates or previews, catalyst calendars, morning notes, sector or peer overviews, thesis reviews, model refreshes, and stock screening or idea generation.

- Skill: `hypier/equity-research-analyst` (Agent Skill, multi-file: 40 files)
- Install (CLI): `npx skillmds@latest add hypier/equity-research-analyst`
- Raw SKILL.md: https://api.skillmd.com/api/skills/hypier/equity-research-analyst/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- Author: hypier (https://skillmd.com/u/hypier)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/hypier/equity-research-analyst

---


# Equity Research Analyst

Produce institutional-grade equity research deliverables through the selected workflow. Each workflow has a dedicated reference file in `references/workflows/`; this SKILL.md is the dispatcher and the hub for cross-workflow conventions.

## Loading Strategy

Keep context tight and load only the files needed for the active task.

1. Match the request to exactly one workflow in `references/workflows/`.
2. Read only that workflow file first.
3. Open deep-dive references only when the active workflow points to them.
4. Read `references/tradingviewapi.md` before opening anything in `references/tradingviewapi-docs/`.
5. Treat `references/tradingviewapi-docs/` as a lookup bundle: search by endpoint name or JSON field, then open the smallest relevant file instead of loading an entire large example file.

### `tradingviewapi` lookup guide

- Start with `references/tradingviewapi.md` for task-to-endpoint mapping.
- Use `references/tradingviewapi-docs/README.md` for file selection inside the bundled API docs.
- Use `references/tradingviewapi-docs/openapi.json` as the source of truth for exact parameters, defaults, and allowed enum values.
- Use `references/tradingviewapi-docs/examples/` mainly for concrete URL patterns and response shapes, not for deciding which asset-class parameter should be used.
- If an example and the OpenAPI spec disagree, trust `openapi.json` for parameters and trust executed examples only for payload shape after the request has been validated against the spec.
- Search patterns that usually find the right example quickly:
  - `GET /api/market-data/{symbol}`
  - `GET /api/calendar/earnings`
  - `GET /api/search/market/{query}`
  - `earnings_release_next_date`
  - `analyst-recommendations`

## When to invoke which workflow

Match the user request to one of the nine workflows below and read the corresponding reference file from `references/workflows/`. If the request is ambiguous, ask the user to confirm before committing.

| Workflow | Trigger phrases | Reference |
|---|---|---|
| **Initiating coverage** | "initiation report", "first-time coverage", "new coverage on X", "write a full report on X" | `references/workflows/initiating-coverage.md` |
| **Earnings analysis** | "earnings update", "Q1/Q2/Q3/Q4 results for X", "post-earnings report", "beat/miss analysis" | `references/workflows/earnings-analysis.md` |
| **Earnings preview** | "earnings preview", "what to watch in X's earnings", "pre-earnings note" | `references/workflows/earnings-preview.md` |
| **Catalyst calendar** | "catalyst calendar", "upcoming events", "earnings calendar", "event tracker" | `references/workflows/catalyst-calendar.md` |
| **Morning note** | "morning note", "daily brief", "pre-market note", "morning wrap" | `references/workflows/morning-note.md` |
| **Sector overview** | "sector report", "industry overview", "peer comp", "sector deep-dive" | `references/workflows/sector-overview.md` |
| **Thesis tracker** | "thesis tracker", "investment thesis review", "revisit thesis on X", "thesis check" | `references/workflows/thesis-tracker.md` |
| **Model update** | "update the model", "model maintenance", "refresh estimates", "re-forecast" | `references/workflows/model-update.md` |
| **Idea generation** | "screen for X", "find me stocks that", "idea generation", "investment ideas" | `references/workflows/idea-generation.md` |

### Single-workflow discipline (especially for `initiating-coverage`)

The initiation-report workflow has five sequential tasks (Company Research → Financial Modeling → Valuation → Charts → Assembly). Execute **one task per user request**, verify prerequisites before the next task, and never auto-chain. Details in `references/workflows/initiating-coverage.md`.

## Primary data source: `tradingviewapi`

Before Web Search, pull structured numeric data (financials, TTM ratios, analyst consensus, calendars, prices, technicals, news) from the bundled `tradingviewapi` (TradingView proxy). **One call to `/api/market-data/{symbol}` covers ~70% of the numeric content of a typical research report.**

- Full endpoint map, curl examples, and JSON-path-to-report-field mapping: `references/tradingviewapi.md`
- OpenAPI spec and example responses: `references/tradingviewapi-docs/`

**Authentication**: prefer `TRADINGVIEW_API_KEY` against `https://api.tradingviewapi.com` (`Authorization: Bearer`). RapidAPI keys (`RAPIDAPI_KEY`) remain supported as an alternate.

**Use Web Search ONLY for narrative content**: MD&A text, forward guidance wording, earnings call transcripts, segment breakdowns, risk factors, management bios, industry research, FDA/regulatory decisions. Pull raw SEC 10-K/10-Q only when direct quotation or audit is required.

## Global conventions

### Data freshness
- Training data is outdated. Before writing, verify today's date and confirm that the latest fetched data is current (next earnings date, last reported quarter).
- If `data.current.fiscal_period_current` is >90 days old, flag as "last reported" and Web Search for newer disclosures.
- Treat `data.current.fiscal_period_current` as a structured provider label, not the final narrative quarter label. If company IR / SEC naming differs (for example provider `2025-Q4` vs company-reported `Fiscal 2026 Q4`), use the latest primary-source wording in the written report and cite that source explicitly.

### Ticker resolution
- Always use `EXCHANGE:TICKER` format (e.g., `NASDAQ:AAPL`, `NYSE:JPM`).
- If the user supplies only a company name, resolve it via `/api/search/market/{query}?filter=stock` before proceeding.
- Use the resolved symbol from `/api/search/market/{query}` as the canonical identifier for the workflow. Do not rely on `data.company.ticker` or `data.company.exchange` from `/api/market-data/{symbol}` as the canonical listing identifier, because those fields may be null or may reflect a quote venue rather than the primary exchange.

### Citation standard
Every numeric fact in a deliverable must cite its source:

```
Source: Structured data via tradingviewapi (TradingView); fetched [YYYY-MM-DD]
        Endpoint: /api/market-data/NASDAQ:AAPL
        Fiscal period: 2026-Q1
```

SEC filings keep separate EDGAR hyperlinks. When consensus data comes from the API, cite the `analyst-recommendations` endpoint explicitly instead of a generic terminal label.

### Output formatting
- Default font for Word deliverables: **Times New Roman**.
- Do **not** add emojis to research reports unless the user explicitly requests them.
- Follow the page/structure templates in `assets/initiating-coverage/report-template.md` for initiation reports.
- Use `references/initiating-coverage/quality-checklist.md` for final initiation-report QA.
- Other workflows use the template embedded in their own reference file.

### No shortcuts
- Deliver exactly the outputs specified in each workflow reference. Do **not** create extra "completion summaries", "executive summaries", or "quick reference guides".
- Do not fabricate data. Missing field → "N/A". Missing consensus → state "consensus not available".

## Fallback strategy
1. `tradingviewapi` unavailable → fall back to Web Search + SEC EDGAR per the workflow reference.
2. Ticker unresolved → ask the user for `EXCHANGE:TICKER`.
3. Ambiguous workflow → ask the user which deliverable they want.

