propose_allocation
Proposes strategic target allocations for conservative, moderate, or aggressive risk postures, validated against canonical benchmarks with a walk-forward drawdown verdict.
Instructions
Propose a strategic target allocation for a risk posture (conservative / moderate / aggressive) over the user's book + the curated universe, and validate it against a canonical reference (60-40 / all-weather / permanent) with a walk-forward held-out drawdown verdict. Use to answer 'what should a moderate portfolio look like for me, and is it sound'. Propose-only: never trades, never a recommendation or return forecast — every weight comes from the deterministic core. The weights are always returned; the verdict needs the reference tickers cached, else it's null with a warm note. Pass benchmark='none' to skip validation.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| preset | No | moderate | |
| benchmark | No | 60-40 |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| asof | Yes | ||
| note | No | Read-only: figures are derived from your transaction log and the on-disk price cache. Uncached prices are fetched online on demand — a one-time core warm on the first cold call, plus any new ticker you ask about (set ASSET_MCP_OFFLINE=1 to keep it strictly offline); a value still unavailable shows null (n/a), never a guess. This is a view, not financial advice. | |
| preset | Yes | conservative | moderate | aggressive | |
| verdict | No | walk-forward held-out drawdown comparison; null when the reference history isn't cached (see validation_note) or validation was skipped | |
| weights | Yes | ||
| benchmark | No | reference requested for validation, or null when skipped | |
| validation_note | Yes | ||
| unpriced_holdings | No | held tickers with no cached price — the target was built over the priced subset, so a role's fund may differ from your actual dominant holding; warm the cache for the full picture |