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…
Decision layer on top of risk-report. Takes positions with weights and outputs specific trade tickets to bring every name under a variance-share cap while respecting weight and churn limits. Turns "ALLO carries 66% of portfolio variance at 18% weight" into "sell $65k of ALLO,
$ npx -y skills add rgourley/quant-garage --skill portfolio-rebalancer --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/portfolio-rebalancerContext preview
The summary Claude sees to decide when to auto-load this skill.
Decision layer on top of risk-report. Takes positions with weights and outputs specific trade tickets to bring every name under a variance-share cap while respecting weight and churn limits. Turns "ALLO carries 66% of portfolio variance at 18% weight" into "sell $65k of ALLO,
name: portfolio-rebalancer description: Decision layer on top of risk-report. Takes positions with weights and outputs specific trade tickets to bring every name under a variance-share cap while respecting weight and churn limits. Turns "ALLO carries 66% of portfolio variance at 18% weight" into "sell $65k of ALLO, redistribute, portfolio vol drops from 21% to 15%." Not tax-aware, not liquidity-aware in v1 — honest about both. Use when the operator asks "so what should I change?" after a risk-report.
You hand over a positions map plus book value, a per-name variance- share cap, a per-name weight cap, and a max churn per rebalance. The skill returns a specific trade-ticket list with dollar amounts, weight deltas, and before/after variance-share readings.
risk-report tells you which name is driving the risk. This skill tells you what to trim, by how much, and where to redistribute.
disproportionate to its weight
"what should I sell", "reduce concentration"
benchmark
**Layer 1 JSON** matching [`output-schema.json`](./output-schema.json). Per-name trade tickets sorted by absolute dollar amount, plus portfolio-level before/after summary (vol, top-3 variance share, Herfindahl, max variance share), constraint-satisfaction status.
**Layer 2 rendered table**. Before/after summary block, then a table of trades, then a status line. See [`references/rendering.md`](./references/rendering.md).
1. **Parse positions** from either a comma-separated string (`TICKER=WEIGHT`) or a book JSON file. Same shape as risk-report for consistency. 2. **Pull daily aggs** for every position + benchmark over the `lookback_days` window (default 252). 3. **Compute covariance**: per-name annualized vol, shrinkage- adjusted correlation, covariance matrix. Same machinery as risk-report. 4. **Compute current variance shares** via `w_i * (Σw)_i / total`. 5. **Solve iteratively**:
variance share scales roughly quadratically with weight.
their current weight.
redistribute if needed.
6. **Apply churn cap**: if the target rebalance exceeds `max_churn` one-way turnover, scale the delta vector down proportionally until it fits. Emit a status flag when this happens. 7. **Emit trade tickets**: delta_weight * book_value per name, drop trades below `min_trade_dollar`.
position + benchmark
gains; the tool ignores this. Apply the trade list through a tax- lot-aware execution layer if lots matter.
or market impact. Verify with slippage-cost before executing large trades in illiquid names.
does not use forward return estimates. It solves for a specified risk-share target only.
last N trading days.** Regime shifts can change covariance faster than the estimator adapts.
income + crypto) need the correlation panel to align across asset types — not handled in v1.
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…