Claude Discretionary
Test, in public and with realistic execution costs, whether a large language model given a broad liquid universe and no style constraint can select equities that outperform a passive benchmark over a multi-year horizon.
Track record
Fewer than two NAV observations. No statistics are meaningful yet.
Recent decisions
Every run, including the ones that traded nothing: the committed fact-pack hash (written to the audit chain before the model was called), the model's published view, each proposal with the rule engine's verdict, and the fills that resulted. Rejected proposals stay up with their reason codes — a reader who can only see the trades that happened cannot judge the discipline that refused the ones that didn't.
The fact pack for P07 Claude Discretionary is structurally deficient for decision-making. As of 2026-08-06, the portfolio holds 100% cash (pf.cash_pct = 100 pct, pf.cash = 100,000 USD) with zero positions (pf.position_count = 0 count) at inception (pf.starting_capital = 100,000 USD, pf.total_return_pct = 0 pct). However, the ELIGIBLE SYMBOLS list contains zero tickers, making it impossible to propose any BUY or other equity actions. The mandate requires a broad liquid universe for discretionary selection, but none has been provided. Without price data, fundamental metrics, sector information, volatility measures, or any market context beyond portfolio ledger entries, no investment thesis can be evaluated. The absence of eligible symbols is a critical data gap: I cannot rank opportunities that do not exist in the fact pack. This is not a market condition requiring patience; it is a struct…
What the AI is allowed to do
This portfolio's AI ranks candidates and explains its reasoning. It proposes direction and conviction only. Every price, quantity, weight and risk limit is computed by deterministic code the model cannot see or influence.
BUY · ADD · TRIM · SELL · HOLD · TIGHTEN_STOP · FLAG_THESIS_BREAK
At most 6 proposals per run, each carrying a direction, a conviction from 1 to 5, a rationale, and references to the facts it used.
- set a price
- set a quantity or share count
- set a weight or position size
- set or move a risk limit
- execute anything
Model tier deep · prompt version P07-v1. Any change to either is recorded as a MODEL_CHANGE event in the audit chain — without it the record would be a chimera of two systems presented as one.
Enforced limits
Every limit below names the code path that enforces it. This is not decoration: a limit that is published but never fires is worse than no limit, because a reader has no way to tell the difference. A test walks every mandate, drives the engine into the state each declared control claims to protect against, and fails the build if nothing stops it.
| Limit | Value | Enforced by |
|---|---|---|
| Maximum gross exposure | 100.0% | gate 2 — size_order |
| Maximum single sector | 35.0% | gate 2 — size_order |
| Limit | Value | Enforced by |
|---|---|---|
| Shorting | prohibited | gate 1 — proposal validation |
| Derivatives | prohibited | gate 1 — proposal validation |
| Margin | prohibited | gate 1 — proposal validation |
| Leverage | prohibited | gate 1 — proposal validation |
| Limit | Value | Enforced by |
|---|---|---|
| Minimum new position | 2.0% | gate 2 — size_order |
| Maximum order as % of ADV | 0.5% | gate 2 — size_order |
| Limit | Value | Enforced by |
|---|---|---|
| Monthly loss limit | 15.0% | gate 3 — HALT_MONTHLY_LOSS_LIMIT |
| Single-day loss alert | 6.0% | gate 3 — alert |
| Limit | Value | Enforced by |
|---|---|---|
| Stale-data halt | 36 hours | gate 3 — HALT_STALE_DATA |
| Limit | Value | Enforced by |
|---|---|---|
| At −12.0% drawdown | alert, publish_commentary | gate 3 — drawdown ladder |
| At −20.0% drawdown | alert, pause_new_positions_days:10, mandatory_deep_review | gate 3 — drawdown ladder |
| At −30.0% drawdown | alert, pause_new_positions_days:30, publish_commentary | gate 3 — drawdown ladder |
| At −45.0% drawdown | suspend_portfolio, graveyard_review | gate 3 — drawdown ladder |
| Limit | Value | Enforced by |
|---|---|---|
| Max trades per month | 20 | entry block — PAUSE_TURNOVER_CAP_REACHED (never blocks an exit) |
| Min holding period days | 5 | entry block — PAUSE_TURNOVER_CAP_REACHED (never blocks an exit) |
| Limit | Value | Enforced by |
|---|---|---|
| Halt trading if price gap unexplained pct | 25 | gate 3 — circuit breaker |
| Halt trading if factpack hash mismatch | true | gate 3 — circuit breaker |
Disclosures specific to this portfolio
These render on the page itself rather than in a footer, because without them the numbers actively mislead.
- The instrument selection in this portfolio is made by a large language model with no style mandate constraining it. Position sizes, stop levels and every risk limit are computed by deterministic code the model cannot see or influence.
- This portfolio is labelled EXPERIMENTAL from inception. It is a test of whether a language model can select equities at all, and it may fail. It was labelled experimental before any result was known, not afterwards.
- The model identity and prompt version are published, and any change to either is recorded as a MODEL_CHANGE event in the audit chain. Comparing results across a model change without accounting for it would be comparing two different systems.
- Its deterministic baseline shadow is published alongside it. If a five-line momentum rule beats this portfolio, that comparison appears on the same page and is not footnoted away.
Execution
Fills are struck on a VWAP window that begins strictly after the decision timestamp plus a latency delay. No fill can use information from the bar in which the decision was made, so look-ahead is arithmetically impossible rather than merely avoided.
Philosophy
Every other mandate on this platform encodes a human thesis and asks the model to work inside it. This one removes the thesis. The universe is wide, the holding period is unconstrained, and no factor, sector or style is preferred by the rules. What remains binding is risk: position caps, a drawdown ladder, turnover limits and stops, all deterministic. If the model has any selection skill, this is where it shows up; if it has none, this is where that becomes undeniable, and the record will say so either way.
Review schedule
| Job | Cron | Timezone | Makes a decision |
|---|---|---|---|
| weekly selection | 0 12 * * SUN | America/New_York | yes |
| monthly review | 0 12 1 * * | America/New_York | yes |
Published on a fixed, regular schedule. Never event-triggered — no "market is crashing, sell now" alerts, deliberately.
Machine-readable mandate: config/portfolios/P07_claude_discretionary.yaml · human rulebook: docs/portfolios/P07_claude_discretionary.md · effective from 2026-08-06 · payload b618c290568f…