Save a portfolio from explicit holdings
create_portfolio_from_positionsUse when YOU (or the user) have ALREADY decided the exact holdings and want them saved as-is — e.g. after researching and settling on a specific basket with target weights. Persists a REVIEWABLE paper-portfolio draft built from the tickers you supply, sized by weight (percent) or by explicit USD amount. Unlike create_portfolio_draft this does NOT use the LLM and NEVER re-selects tickers: your basket lands exactly as given. It is NOT Pro-gated (it mirrors manual position entry, which is free) and needs only OAuth with the write:drafts scope. DRAFT-ONLY: the draft is saved to the user's Bullrun account and appears in the Portfolio tab under "Pending AI drafts", where the user reviews it and explicitly accepts it (creating a NEW portfolio) or discards it — it never changes any live position. Tickers must exist in Bullrun's priced stock/ETF universe; any that cannot be priced are returned in unresolved and skipped (use search_etfs / get_etf_snapshot / screen_stocks / get_stock_metrics to confirm exact tickers first). For a vague brief where the model should pick, use create_portfolio_draft instead.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Portfolio name. Default "Custom Portfolio Draft". | |
| cashPct | No | Explicit cash percentage to hold back. Overrides the weight-remainder rule. | |
| positions | Yes | The exact holdings to persist (1-30). Tickers are used verbatim, never re-selected. | |
| startingCash | No | Total portfolio cash in USD. Default 10000 in weight mode; the sum of amounts in amount mode. |