Overview
The Backchannel API lets you answer two core questions about a portfolio:- “What would happen to my portfolio if X occurred?” — Describe any scenario in plain English and get a probability-weighted impact analysis.
- “How does this news event affect my holdings?” — Search curated news scenarios and compute portfolio exposure against them.
- “What happens if macro conditions change?” — Run what-if analysis with specific macro factor shocks (USD strength, oil prices, etc.).
tilt_asset_id → weight. This guide walks through resolving tickers, building portfolio weights, and calling the scenario and risk endpoints.
Step 1: Resolve Tickers to Tilt Asset IDs
All portfolio-related endpoints accept weights keyed by Tilt Asset ID — an internal identifier for each security. Use the Search Tickers endpoint to resolve symbols.A symbol may return multiple results across exchanges (e.g. NAS and TSE listings). Filter by
ticker_type: "common_stock" and the relevant exchange to get the primary US listing.tilt_asset_id from each result.
View API Reference →
Step 2: Build Portfolio Weights
Construct aportfolio_weights object mapping each tilt_asset_id to a decimal weight (summing to 1.0):
Weights should sum to 1.0. If they don’t, the API will still work but exposure calculations will be proportional to the weights provided.
portfolio_weights object is reused across all the endpoints below.
Step 3: Scenario Portfolio Analysis
The simplest way to analyze portfolio impact. Describe any scenario in plain English and the API generates a probability tree of outcomes with portfolio-level returns.Key parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
scenario_description | string | — | Plain English description of the scenario to analyze. |
portfolio_weights | object | — | Map of tilt_asset_id → weight. |
as_of_date | string | today | Date for the analysis (YYYY-MM-DD). |
search_for_context | boolean | true | Search for relevant background articles to improve scenario quality. |
include_security_details | boolean | true | Include per-security breakdown in each leaf scenario. |
aggregate_scenarios | boolean | false | Collapse the scenario tree into summary stats. |
Response structure
The response includes an AI-generated scenario tree, leaf-level portfolio impacts, and a probability-weighted expected return:| Field | Description |
|---|---|
expected_portfolio_return_pct | Probability-weighted expected portfolio return across all leaf scenarios. Decimal form (0.01 = 1%). |
portfolio_summary | Counts of scenarios, leaf scenarios, and securities analyzed. |
scenario_tree | The full probability tree with nested sub-scenarios and macro shocks. |
leaf_scenarios | Flattened leaf nodes with joint probabilities and per-security details. |
context_articles | Headlines of articles used as background context (when search_for_context is true). |
This endpoint uses AI to generate scenarios, so responses take 10–30 seconds. For instant results on pre-computed news scenarios, use the Search Scenarios endpoint below instead.
Step 4: Search News Scenarios with Portfolio Exposure
Search for curated, pre-computed news scenarios and see how each one affects your portfolio. This is instant (no AI generation) and useful for browsing recent events.Key parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
queries | array | — | Weighted search queries. Each has query (string) and weight (0–1). |
portfolio_weights | object | null | Map of tilt_asset_id → weight. When provided, each result includes a portfolio_exposure field. |
aggregate_scenarios | boolean | false | When true, collapses the scenario tree into probability-weighted summary stats. |
order_by_exposure | boolean | false | When true, sorts results by portfolio impact instead of relevance. |
limit | integer | 10 | Number of results (1–100). |
min_importance | integer | null | Filter to scenarios with importance rating >= this value (1–10). |
Response structure
The response wraps results inarticles. Each article is a news scenario with timeline, probability tree, and (when portfolio_weights is provided) portfolio exposure:
portfolio_exposure:
| Field | Description |
|---|---|
expected_return_pct | Probability-weighted expected portfolio return across all leaf scenarios. Decimal form (0.01 = 1%). |
mad_pct | Mean absolute deviation of returns across leaf scenarios — a measure of outcome uncertainty. |
num_leaf_scenarios | Number of leaf nodes in the scenario tree used for the calculation. |
scenario_level_details | Per-scenario breakdown with mean return, standard deviation, and sub-scenario count. |
Step 5: Get a Single Scenario with Portfolio Exposure
Once you have apoint_id from search results, fetch its full detail with portfolio exposure:
aggregate_scenarios is false, the response includes leaf_details and scenario_level_details within portfolio_exposure, giving you the full probability tree with per-leaf portfolio returns.
View API Reference →
Step 6: Macro Factor Analysis
Get Macro Sensitivities
Understand which macro factors your portfolio is most exposed to:Run a Macro Scenario
Use the sensitivities output to stress-test with specific macro shocks. Theshocks object maps factor identifiers to shock magnitudes in standard deviations.
The sensitivities endpoint returns factor names with a
macro_ prefix (e.g. macro_DTWEXBGS). When passing shocks to the scenario endpoint, drop the prefix — use the raw identifier (e.g. DTWEXBGS).Putting It Together
A typical integration flow:- Resolve tickers once and cache the
tilt_asset_idmapping. - Run scenario portfolio analysis with a plain English description to quickly assess portfolio impact for any hypothetical event. This is the easiest starting point.
- Search news scenarios with
portfolio_weightsto find real-world events that matter to the portfolio. Useorder_by_exposure: trueto surface the highest-impact stories first. - Fetch individual scenarios with
portfolio_weightsfor detailed drill-down with leaf-level probability breakdowns. - Get macro sensitivities to understand the portfolio’s factor exposures.
- Run macro scenarios to stress-test against specific factor shocks (e.g., “what if the US Dollar Index rises 0.5 standard deviations?”).