Products
Risk Analytics
Risk Analytics groups portfolio-risk, hedging, pairs, and single-name research routes.
Availability depends on the evidence each route can verify.
Account-risk availability#
Account portfolio VaR, stress, and crash outputs are unavailable until the service can bind
real account positions, NAV, and calibrated risk evidence to the calculation.
These routes report a typed unavailable result and are marked data_pending in
capabilities. They do not deliver a live shadow-book VaR, portfolio drawdown, or
sub-minute risk estimate. Do not substitute zero for an unavailable measure.
Other routes in this product have separate source and freshness requirements. A plan's access permission does not guarantee that every requested calculation has usable data. Check the response's availability, source, and observation time.
Historical portfolio scenarios#
POST /api/v3/risk/historical_var_scenario calculates empirical VaR and expected
shortfall for a portfolio you supply. Provide USD NAV, cash, and up to 20 signed
equity exposures identified by CRSP permno. Cash plus signed market values must
equal NAV. The service does not verify account ownership or portfolio completeness.
Choose warehouse_crsp with explicit dates, or supplied_total_returns with exact
dated daily total returns. Warehouse returns include distributions and delisting
returns; missing or duplicate evidence is refused. Supplied history is labeled
source_verified: false. Both modes require complete exchange-session alignment
and at least ten observations in the requested loss tail. At 95% confidence, that
means at least 200 non-overlapping scenarios. A five-session horizon compounds
five actual daily returns per scenario; it does not scale a daily number.
Results disclose the historical window, its age at the portfolio snapshot,
scenario count, input hashes, and assumptions. They have research_only: true,
account_verified: false, and capital_authorized: false. Historical losses do
not establish future coverage. Cash earns no return in the scenario; borrowing,
liquidity, fees, derivatives, and FX are excluded.
This example uses a caller-supplied illustrative portfolio, not a linked account:
1curl --fail-with-body --max-time 30 \2 -H "Authorization: Bearer $TENGU_API_KEY" \3 -H "Content-Type: application/json" \4 -d '{5 "portfolio": {6 "snapshot_id": "my-research-scenario",7 "as_of": "2025-01-02T21:00:00Z",8 "nav_usd": 100000,9 "cash_usd": 40000,10 "positions": [{"permno": 14593, "side": "long", "market_value_usd": 60000}]11 },12 "history": {"kind": "warehouse_crsp", "start": "2023-01-03", "end": "2024-12-31"},13 "confidence": 0.95,14 "horizon_sessions": 115 }' \16 https://firm.wealthnow.io/api/v3/risk/historical_var_scenarioAccess#
5 credits for a billable product call, Pro and up. Quarantined data_pending routes have a zero-credit policy; unavailable output is not evidence of fulfilled risk data.
Endpoints#
| Method | Path | Description |
|---|---|---|
| GET | /api/v2/risk/var | Portfolio VaR/CVaR route; unavailable without verified account and calibration inputs. |
| POST | /api/v3/risk/historical_var_scenario | Empirical historical scenarios for an explicit user-supplied portfolio. |
| GET | /api/v3/risk/portfolio_var | Portfolio VaR/CVaR route; typed unavailable result while account inputs are missing. |
| GET | /api/v2/risk/stress | Stress-scenario route; no live portfolio loss estimate without account inputs. |
| GET | /api/v3/institutional/hedging | Index hedge proposals (SPY/QQQ/IWM) — protective puts, collars — from dealer gamma & IV rank. |
| GET | /api/v2/pairs/kalman | Kalman-filtered pairs signals (z-score, hedge ratio). 36-month correlation candidates fallback. |
| GET | /api/v3/validation/{ticker}/kelly_uncertainty | Uncertainty-discounted Kelly fraction for one ticker: full Kelly haircut for estimation error. Billed as Quant Signals (Starter+, 3 credits). |
Handle unavailable output#
Inspect ok, status, and any availability or warning fields before using a
numeric risk field. A successful HTTP exchange can carry an unavailable result.
Do not use the response timestamp as the time of the underlying market data.
See API reference for error handling and
pricing and credits for settlement behavior.
Related#
- Pricing & credits — plan features and credit costs
- API reference — complete endpoint list
- Copilot: portfolio review for a list of held tickers
- Macro, Rates & FX: current macro regime (
/api/regime)