8-k-scanner
Scan SEC 8-K disclosures across a single ticker or a watchlist using Massive's pre-parsed disclosure taxonomy. Groups the underlying rows by filing (one 8-K…
Build a Bloomberg / CapIQ-style comparable companies set for a subject ticker. Identifies peers via a curated override map (with correlation and SIC fallbacks), pulls current multiples (EV/Sales, EV/EBITDA, P/E) for the subject and peers, renders the comp table with median /
$ npx -y skills add rgourley/quant-garage --skill pitch-comps --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/pitch-compsContext preview
The summary Claude sees to decide when to auto-load this skill.
Build a Bloomberg / CapIQ-style comparable companies set for a subject ticker. Identifies peers via a curated override map (with correlation and SIC fallbacks), pulls current multiples (EV/Sales, EV/EBITDA, P/E) for the subject and peers, renders the comp table with median /
name: pitch-comps description: Build a Bloomberg / CapIQ-style comparable companies set for a subject ticker. Identifies peers via a curated override map (with correlation and SIC fallbacks), pulls current multiples (EV/Sales, EV/EBITDA, P/E) for the subject and peers, renders the comp table with median / mean / 25-75 percentile summary stats, runs a regression-adjusted multiples view that controls for growth and profitability, and surfaces a one-line banker read at the bottom. Use when an analyst or banker is preparing pitch materials, a fairness opinion, or a valuation memo. Requires Stocks Starter for financials.
You hand over a subject ticker. The skill identifies peers using the same three-layer methodology as `earnings-drilldown`'s peer-reaction (curated override → correlation → SIC fallback), pulls TTM revenue, operating income, EPS, and balance-sheet items for the subject and the peers, computes current multiples (EV/Sales, EV/EBITDA, P/E) plus growth and margin metrics, summarizes the peer set with median / mean / 25-75 percentile bands, runs a regression of each multiple on growth and margin to compute a peer-implied multiple for the subject, and emits a one-sentence banker read.
The output drops into a pitch deck or fairness-opinion appendix unchanged. The structure matches what bankers already read in Bloomberg's RV (relative value) screen and CapIQ's comp set page.
table for the subject vs. its peer set
subject's multiple look like if peers traded it"
peers", "is $TICKER cheap or rich on multiples"
ticker-details and 9+ financials calls; on free Basic (5/min) this will run but will take ~5 minutes. Starter (unlimited) finishes in under 30 seconds.
Two output layers from one analysis.
**Layer 1: canonical JSON** matching [`output-schema.json`](./output-schema.json). Subject metadata, peer list with each peer's multiples and metrics, summary statistics (median / mean / p25 / p75 per multiple), the regression-adjusted block (per-multiple implied vs. actual and discount / premium), the one-sentence read, and the source endpoints with fetched-at timestamps. UIs, downstream agents, and Python scripts consume this.
**Layer 2: rendered comp table** in Bloomberg RV / CapIQ comp page style. See [`references/rendering.md`](./references/rendering.md). Subject highlighted at the top, divider, peers, divider, summary stats, optional regression-adjusted section, mandatory one-sentence read at the bottom.
1. **Peer selection** per [`references/peer-selection.md`](./references/peer-selection.md). Three-layer waterfall: curated override map first (covers the top ~30 US large-caps where SIC misclassifies), correlation-based for uncurated names, SIC fallback last. Records the selection method in the JSON so the consumer knows the peer-set quality. 2. **Pull current price + market cap** for the subject and each peer. One snapshot call and one ticker-details call per name. Compute enterprise value per [`references/multiples-methodology.md`](./references/multiples-methodology.md) as `market_cap + total_debt - cash + operating_leases + minority_interest`. `total_debt` and `cash` are required; if either is missing for a name, EV-based multiples are emitted as `null` and the missing field is recorded on the per-name `ev_components` audit trail. 3. **Pull TTM financials** for the subject and each peer: revenue, operating income, depreciation and amortization (often null on software comps, see methodology), net income, diluted EPS. Compute revenue growth TTM vs prior TTM and EBITDA margin per [`references/growth-and-profitability.md`](./references/growth-and-profitability.md). 4. **Compute multiples**: EV/Sales, EV/EBITDA, P/E. Per peer. `null` where the inputs aren't available (e.g. SAP's ADR financials gap, or a peer with negative EBITDA where the multiple is meaningless). 5. **Cohort statistics** per [`references/cohort-statistics.md`](./references/cohort-statistics.md): median, mean, 25th and 75th percentiles, computed over peers only (subject excluded so the comparison is honest). Drop nulls from the summary; never impute zero. 6. **Regression-adjusted multiples** per [`references/regression-adjustment.md`](./references/regression-adjustment.md). Fit `multiple ~ growth + ebitda_margin` across peers with `numpy` least-squares. Predict the subject's multiple given its own growth and margin. Compare to actual; surface as a discount or premium. Flag when `n_peers < 8` because the regression's degrees of freedom get tight. 7. **Generate the read.** One sentence keyed off the regression output: where the subject sits vs. peers on growth-adjusted multiples and which multiple drives the divergence. Banker-tone, no hedge words, no "mispriced upside."
limiting, and the 4-step `lastTrade.p → min.c → day.c → prevDay.c` snapshot fallback chain. FMV is not a field on the v2 snapshot response and is not in this waterfall.
Same table mode as `universe-builder`. The format follows the canonical table rules in `universe-builder/references/rendering.md` with the comp-set-specific overrides in `references/rendering.md`: subject row at top, divider, peer rows, divider, summary stats rows, optional regression-adjusted block, mandatory one-sentence read.
A custom UI consumes the JSON a
Trade like a pro. Without the terminal. View the full landing page → Quant and equity research tools that run inside Claude, or behind your own UI.
Scan SEC 8-K disclosures across a single ticker or a watchlist using Massive's pre-parsed disclosure taxonomy. Groups the underlying rows by filing (one 8-K…
Track sell-side analyst positioning on a name via Benzinga Analyst Ratings. Pulls every rating event over the lookback window, classifies each as upgrade /…
Build a clean, point-in-time, ready-to-backtest OHLCV dataset for a US equity universe across an arbitrary date window. Emits parquet plus a manifest plus an…
Bayesian Online Change-Point Detection (BOCPD) on a ticker's daily log returns. Detects points in time where the return-generating distribution changed (regime…
Single-commodity macro read. Answers "is this commodity in a winning or losing macro setup right now" and names the macro driver that dominates it. Pulls one…
Reconcile a position file against splits, dividends, and spinoffs to catch breaks before they hit P&L or T+1 settlement. Use when an operator hands over a CSV…