RiskModels
Clean US equity total returns + institutional risk decomposition, via MCP.
What it can do
- Riskmodels Decompose: L3 four-bet view: decompose one stock into additive market, sector, subsector, and residual layers (same semantics as POST /decompose exposure/hedge). Returns chart_data and plai
- Riskmodels Get Hedge Levels: Canonical L1, L2, and L3 hedge snapshots (semantic HR/ER + hedge_etfs) from GET /metrics/{ticker}. Use this when you need to compare which cascade depth to trade, distinct
- Riskmodels Compare: Compare tickers across market, sector, subsector, and residual risk layers. Prefer grouped bar charts when chart_data is present.
What data it sees
Do you need an account
No: the server works without sign-in
Clean US equity total returns + institutional risk decomposition, via MCP.
RiskModels gives agents dividend-adjusted total return series for any US stock or ETF — and decomposes both the return and its risk into market → sector → subsector → residual layers, with executable ETF hedge ratios for each. Built on ERM3, a hierarchical factor model with orthogonalized factor construction over ~3,000 US equities (16k-name historical panel), daily history back to 2006.
One MCP call covers performance tracking, return attribution, manager-skill / 13F review, hedging, stat-arb, or feeding clean returns into your own models.
Capabilities
- Returns — daily dividend-adjusted total (gross) return series, point-in-time / time-safe
- Return attribution — gross return split into L1/L2/L3 factor vs residual; isolates the residual (stock-picking / alpha) series
- Risk decomposition — additive market / sector / subsector / residual variance shares (sum to ~100%)
- Hedging — executable ETF hedge ratios + optimal cascade-level selection, scalable to a dollar position
- Portfolio — holdings-weighted decomposition, hedge aggregation, cross-sectional comparison
Key tools: riskmodels_get_returns · riskmodels_get_return_attribution ·
riskmodels_decompose · riskmodels_get_hedge_levels · riskmodels_compare ·
riskmodels_hedge_portfolio · riskmodels_analyze_portfolio
Try it instantly — a shared free-tier demo key is pre-filled (rate-limited, 100 calls/day total). For real use, get your own free key with $20 starter credit at riskmodels.app/get-key.
Every response carries request_id, data_as_of, and methodology provenance —
transparent per-call pricing, structured outputs, no fabricated numbers. Works in
Claude, Cursor, and any MCP agent.
Links
- Live demo: https://riskmodels.app
- Docs & methodology: https://riskmodels.app/docs/api · https://riskmodels.app/docs/methodology
- Repo: https://github.com/BlueWaterCorp/RiskModels_API
Server tool list (15)
Raw names from tools/list. Only developers need these.
| riskmodels_decompose | L3 four-bet view: decompose one stock into additive market, sector, subsector, and residual layers (same semantics as POST /decompose exposure/hedge). Returns chart_data and plain_english. To compare standalone L1 vs L2 vs L3 hedge solutions (HR/ER + ETF legs), call riskmodels_get_hedge_levels or read hedge_levels on the API response. |
| riskmodels_get_hedge_levels | Canonical L1, L2, and L3 hedge snapshots (semantic HR/ER + hedge_etfs) from GET /metrics/{ticker}. Use this when you need to compare which cascade depth to trade, distinct from decompose four-bet exposure. |
| riskmodels_compare | Compare tickers across market, sector, subsector, and residual risk layers. Prefer grouped bar charts when chart_data is present. |
| riskmodels_hedge_position | Scale ETF hedge ratios for a ticker to a dollar position. Returns chart-ready hedge notionals. |
| riskmodels_analyze_portfolio | Holdings-weighted L1/L2/L3 hedge_levels across names via POST /batch/analyze (hedge_ratios). Returns normalized portfolio.portfolio_hedge_levels and per-ticker blocks when present. |
| riskmodels_hedge_portfolio | Batch hedge_ratios at a chosen cascade level (L1/L2/L3), scale HRs by dollar notionals per ticker, and aggregate ETF USD hedge legs. |
| riskmodels_portfolio_decompose | Decompose a weighted portfolio into market, sector, subsector, and residual risk layers. |
| riskmodels_whitepaper_example | Run a live example from the RiskModels white paper. Returns chapter text plus SDK/API output with chart_data. |
| riskmodels_render_artifact | Render a deterministic registry artifact (fund, filer, or client portfolio). Returns JSON chart/table/narrative or base64 PNG/SVG. Same contract as riskmodels.net workspace fetchArtifact. |
| riskmodels_list_endpoints | List all public API capabilities (id, name, method, endpoint, short description) |
| riskmodels_get_capability | Get full capability details (parameters, pricing, examples) by id |
| riskmodels_get_schema | Get JSON schema for an API response by path (e.g. ticker-returns-v2.json) |
| get_l3_decomposition | Daily EOD hierarchical orthogonal decomposition for a single ticker: market → sector → subsector → residual. Returns parallel time-series arrays plus hedge ratios. Data freshness: daily after US market close. |
| get_metrics | Latest daily EOD risk metrics for a ticker: L1/L2/L3 hedge ratios (SPY, sector ETF, subsector ETF), explained-risk fractions, daily volatility, price close, market cap. |
| get_portfolio_risk_snapshot | Bundled portfolio risk report for up to 100 positions: variance decomposition, 23-day volatility, optional diversification analytics. Response is cached per-user per-portfolio for 1 hour. |