Skip to main content
POST
/
api
/
v1
/
backchannel
/
risk
/
scenario_portfolio_analysis
cURL
curl --request POST \
  --url https://tilt.io/api/v1/backchannel/risk/scenario_portfolio_analysis \
  --header 'Content-Type: application/json' \
  --header 'X-Api-Key: <api-key>' \
  --data '
{
  "scenario_description": "<string>",
  "portfolio_weights": {},
  "as_of_date": "<string>",
  "search_for_context": true,
  "include_security_details": true,
  "aggregate_scenarios": false
}
'
{
  "success": true,
  "scenario_description": "<string>",
  "as_of_date": "<string>",
  "scenario_tree": [
    {}
  ],
  "expected_portfolio_return_pct": 123,
  "portfolio_summary": {},
  "generated_at": "<string>",
  "leaf_scenarios": [
    {
      "path": [
        "<string>"
      ],
      "joint_probability_pct": 123,
      "title": "<string>",
      "description": "<string>",
      "macro_shocks": null,
      "portfolio_expected_return_pct": 123,
      "portfolio_return_pct": 123,
      "contribution_to_expected_return_pct": 123,
      "top_movers": [
        {
          "tilt_id": "<string>",
          "weight": 123,
          "expected_return_pct": 123,
          "contribution_to_portfolio_pct": 123,
          "cusip": "<string>",
          "ticker": "<string>",
          "company_name": "<string>",
          "factor_contributions": {}
        }
      ],
      "security_details": [
        {
          "tilt_id": "<string>",
          "weight": 123,
          "expected_return_pct": 123,
          "contribution_to_portfolio_pct": 123,
          "cusip": "<string>",
          "ticker": "<string>",
          "company_name": "<string>",
          "factor_contributions": {}
        }
      ]
    }
  ],
  "scenario_level_results": [
    {
      "title": "<string>",
      "description": "<string>",
      "probability_pct": 123,
      "portfolio_return_mean_pct": 123,
      "portfolio_return_std_pct": 123,
      "macro_shocks": [
        {}
      ],
      "sub_scenario_count": 123,
      "top_movers": [
        {
          "tilt_id": "<string>",
          "weight": 123,
          "expected_return_pct": 123,
          "contribution_to_portfolio_pct": 123,
          "cusip": "<string>",
          "ticker": "<string>",
          "company_name": "<string>",
          "factor_contributions": {}
        }
      ],
      "security_details": [
        {
          "tilt_id": "<string>",
          "weight": 123,
          "expected_return_pct": 123,
          "contribution_to_portfolio_pct": 123,
          "cusip": "<string>",
          "ticker": "<string>",
          "company_name": "<string>",
          "factor_contributions": {}
        }
      ]
    }
  ],
  "context_articles": [
    "<string>"
  ],
  "context_article_ids": [
    "<string>"
  ],
  "warnings": [
    "<string>"
  ],
  "cache_hit": true
}

Authorizations

X-Api-Key
string
header
required

Body

application/json
scenario_description
string
required
portfolio_weights
object
required

Portfolio weights keyed by tilt_id or CUSIP. Mixed identifiers are allowed; CUSIPs are resolved to tilt_ids server-side.

as_of_date
string | null
Pattern: ^\d{4}-\d{2}-\d{2}$
search_for_context
boolean
default:true
include_security_details
boolean
default:true
aggregate_scenarios
boolean
default:false

Response

200 - application/json

AI-generated scenario tree with portfolio impact analysis

success
boolean
required
scenario_description
string
required
as_of_date
string
required
scenario_tree
object[]
required
expected_portfolio_return_pct
number
required
portfolio_summary
object
required
generated_at
string
required
leaf_scenarios
object[] | null
scenario_level_results
object[] | null
context_articles
string[] | null
context_article_ids
string[] | null
warnings
string[] | null
cache_hit
boolean