Paper trading. No real money is invested and nobody earned these results. Every figure here is hypothetical. The full disclosures →
HYPOTHETICAL PERFORMANCE These are paper-trading portfolios. No client money is invested, no orders are routed to any venue, and no result shown here was achieved with real capital. Hypothetical results have inherent limitations and do not reflect the effect of real order flow on price.
AI Portfolios
The public record of AI-managed portfolios.

P20 · Paper portfolio

Operator Discretionary

by AI Portfolios

$99,825
−$175 (-0.17%)
Since 2026-08-21 · started at $100,000
All time
-0.17%
Holdings
1
Risk level
high
Against SPY
$98,836$99,599$100,362$101,1262026-08-212026-09-14
2026-08-212026-09-14

This portfolio lost 0.17% since it started; SPY lost 0.64%.

100 is the $100,000 this book started with, so where its line ends is its total return — the same figure as the one at the top of this page. The dashed line is that same money in SPY, bought at its first closing price shown here. Percentages, never share prices.

Index values are derived percentage returns over IEX last-trade closes, which are licensed for publication; no raw vendor price is rendered.

LATEST TRADE
BUY MRK
40.27 @ $149.19
$6,008
priced 2026-08-20 20:06 UTC
(the reasoning, the facts it saw and the gates it passed are in Advanced)
Current holdings
MRK · 40.27
$5,833
-2.91% −$175
Cash
$93,995
What the operator said

AI-generated. All quantitative claims traced to the published fact pack. OPERATOR DECISION for P20, filed 2026-08-24 (wall clock) and read at 2026-08-27T23:59:45.128536+00:00. The instrument selection below was made by a human, not by a language model. Sizing, stops, costs, fills and every risk limit are the same dete…

Read this with the numbers

This book decides whenever the operator files a decision. Every AI portfolio here decides only at published instants, so he can act on news they will not see until their next window. That is a real advantage over them and it is stated here rather than in a footnote.

The instrument selection in this portfolio is made by a HUMAN — the operator of this site — and not by a language model. Position sizes, stop levels, execution costs, fills and every risk limit are computed by the identical deterministic code that runs every other portfolio here, which he can neither see nor influence, and his picks are refused by the same gates under the same reason codes as the AI books' proposals are.

HE HAS AN ADVANTAGE OVER THE AI PORTFOLIOS AND IT IS NOT SMALL. This book decides whenever he chooses to file a decision. Every AI portfolio here decides only at published instants — P07, the book this one is paired with, decides twice a month and cannot act between those instants however the world moves. He can act on news the model will not see until its next window. That is a real edge, it is the direct consequence of the cadence he asked for, and any comparison of these two records that does not carry this sentence is flattering the human.

This portfolio is labelled EXPERIMENTAL from inception. It was labelled experimental on the day it was created, before a single pick was filed and before any result was known.

It is paired with P07 "Claude Discretionary" and shares that book's universe, conviction table, position caps, sector limits, cash band, stop method, drawdown ladder, turnover limits, cost profile and fill convention, number for number. The eight places where the two rulebooks differ are marked in this file with the reason for each. What is being measured is the picker; everything else is held fixed on purpose.

One operator over one period is a sample of one. This book cannot show that humans beat language models at selecting equities, or the reverse. It can show what this operator did, against what this model did, under limits and costs that were identical and published in advance — and it can show it without either side being able to revise a decision after the fact.

About

Every result this platform publishes about a language model is worth exactly as much as the comparison behind it. P07 is measured against an index and against a five-line momentum rule; neither is a person. This book supplies the missing arm of the experiment by holding one variable — who picks — and fixing every other one in code that both books literally share. The human side carries a real and disclosed advantage, stated below and on the page, because a comparison that hides an asymmetry flatters whoever it favours.

Follow Operator Discretionary

This is the simple view. Nothing has been removed — the decision records, the refused proposals, the operator's own words, the cost model, the published limits and the hash chain are all in Advanced, which is the switch in the header. How to verify any of it →

Showing every layer. Pick Simple or Advanced in the header to choose one — nothing is removed either way, and the full record is always in this page.

Home / portfolios / P20

Operator Discretionary

P20experimentalhigh riskrulebook v1.0.0operator selects
Waiting for its next decisionWAITING_FOR_SCHEDULEthis is the mandate working as written, not a fault

This book publishes no scheduled decision instant — it decides when its operator files a decision, and at no other time, so it is never late for an instant it never named. Risk management — stops, forced exits and the NAV mark — runs on every pass regardless: 'he decides when he likes' does not mean 'risk management waits for him'.

EXPERIMENTAL. Labelled experimental on the day it was created and before a single pick was filed, for the same reason P07 was: the result may be that the operator does not beat a passive benchmark, or does not beat the model, and both are publishable findings this book exists to produce. It is NOT labelled experimental because of the risk it takes — its risk limits are P07's, number for number. It is labelled experimental because of what it is testing.

Test, in public and with realistic execution costs, whether the operator selecting equities by hand — free to act on news between the AI books' decision windows — outperforms the same platform's language-model book and a passive benchmark, under identical risk limits, sizing, costs and fills.

Operator Discretionary's decisions, live →The public decision feed posts every decision when it's made — before settlement, refusals included. On Telegram, free.

Track record

Total return
-0.17%
net of modelled costs
Max drawdown
-0.50%
2026-08-25 → 2026-09-11
Live since
2026-08-21
15 daily observations completed · 60 NAV marks
Cost drag
0.00%
$0 in explicit fees
Sharpe
withheld
sample too short to annualise — see the display rules on the leaderboard
Gross return
-0.17%
before costs

Fewer than 60 daily observations. Annualised return, volatility, Sharpe, Sortino and Calmar are withheld: annualising a short sample produces numbers that look precise and are not.

NAV — every point is a recorded close, none can be edited
2026-08-21dashed line = starting capital2026-09-14

Our own marks from our own fills (nothing here is vendor price data). Deliberately monochrome: colour that codes "good" and "bad" is an editorial thumb on the scale.

Against SPY — both indexed to 100 at the starting capital
$98,836$99,599$100,362$101,1262026-08-212026-09-14
2026-08-212026-09-14
Portfolio -0.17%SPY -0.64%

Index 100 is the starting capital ($100,000), so this line ends at the total return published above it. The comparison line is indexed to the same capital and starts at 100 at its own first close here: the record carries no priced instant at which capital was granted, so the comparison capital is uninvested until then rather than given a price nothing printed. Both cover the identical window.

Index values are derived percentage returns over IEX last-trade closes, which are licensed for publication; no raw vendor price is rendered.

Open positions — since the operator entered
symbolsince entryweightopened
MRK-2.9%+5.8%2026-08-20

Return since the operator entered, measured from this book's own mark against what it actually paid — our own numbers over our own record, not vendor price data.

What's in it — weights from the last recorded NAV mark
MRK 5.8%CASH 94.2%holdingsby last mark
MRK5.8%Health Care
CASH94.2%cash

Weights are our own work product, computed at the newest audit-chain NAV mark — never re-derived later, never estimated from cost basis. Logos identify the holdings and imply no endorsement (operator decision, session 11); sector tints are structure, not judgement.

Current holdings
SymbolQuantityAvg costStopOpened
MRK5.8%40.2712149.19135.752026-08-20
committed 2026-08-24

Why two dates? "Opened" is the market session the opening fill was priced on. The licensed data feed's T+1 rule means a cycle prices on the newest session already licensed for use, so the run that produced the fill can be committed to the audit chain on a later date — that commitment date is shown beneath. The commitment time is what makes history tamper-evident; the pricing session is what returns are computed from. Both are published on every fill.

Starting capital
$100,000own work — never restated
Benchmarks
SPY · RSP, QQQ, P07_CLAUDE_DISCRETIONARY
Mandate hash
226e3431abec17a545e78905d794fa3f637ab1c93071bcdf47760bf83b94af0c

Recent decisions

Every run, including the ones that traded nothing: the committed fact-pack hash (written to the audit chain before anything was proposed), the operator'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.

Every card carries the instant it was decided at, because every card is a photograph. The facts in it were frozen when the run was committed and are never revised — a view that said "the platform has closed zero trades" was true at its timestamp and reads as a claim about today unless the card says otherwise. Consecutive runs that halted on identical codes are compressed into one card with a visible count and every run id listed; nothing is dropped.

Operator's view at 2026-08-26 20:05Zfacts frozen when the run was committed, not updated — every figure the operator cites was true then and is never revised herefact pack cd6e27522426…
post closehuman-operator-v1

AI-generated. All quantitative claims traced to the published fact pack. OPERATOR DECISION for P20, filed 2026-08-24 (wall clock) and read at 2026-08-27T23:59:45.128536+00:00. The instrument selection below was made by a human, not by a language model. Sizing, stops, costs, fills and every risk limit are the same deterministic code every other book on this platform runs, and he can neither see nor change them. In his words: Currently there is still a lot of uncertainty and risk in the market, be it geopolitical or fiscal. But we had a good run in crypto the last few days thus I think it would be wise to make an addition to the portfolio directly. Picks, with the basis he declared for each: BUY MRK (news)

ProposalConvictionLifecycleCodes
BUY MRK3PROPOSED→REFUSED AT GATES
no order was created
REJECT_ALREADY_AT_TARGET

Reading the lifecycle. PROPOSED and GATES PASSED are published facts. QUEUED is shown as reached only where a fill proves it — the payload publishes no order record. FILLED / EXPIRED stays undecided without a matching fill, because an accepted order can price on a later session under the T+1 rule, and calling that "expired" would be inventing the outcome. "Accepted" alone used to sit in this column and read as though the trade had happened.

fact pack cd6e27522426dc41… · run run_d9a20e57578e443a
Operator's view at 2026-08-25 20:05Zfacts frozen when the run was committed, not updated — every figure the operator cites was true then and is never revised herefact pack f53dd14c89a0…
post closehuman-operator-v1

AI-generated. All quantitative claims traced to the published fact pack. OPERATOR DECISION for P20, filed 2026-08-24 (wall clock) and read at 2026-08-26T23:46:16.330731+00:00. The instrument selection below was made by a human, not by a language model. Sizing, stops, costs, fills and every risk limit are the same deterministic code every other book on this platform runs, and he can neither see nor change them. In his words: Currently there is still a lot of uncertainty and risk in the market, be it geopolitical or fiscal. But we had a good run in crypto the last few days thus I think it would be wise to make an addition to the portfolio directly. Picks, with the basis he declared for each: BUY MRK (news)

ProposalConvictionLifecycleCodes
BUY MRK3PROPOSED→REFUSED AT GATES
no order was created
REJECT_ALREADY_AT_TARGET

Reading the lifecycle. PROPOSED and GATES PASSED are published facts. QUEUED is shown as reached only where a fill proves it — the payload publishes no order record. FILLED / EXPIRED stays undecided without a matching fill, because an accepted order can price on a later session under the T+1 rule, and calling that "expired" would be inventing the outcome. "Accepted" alone used to sit in this column and read as though the trade had happened.

fact pack f53dd14c89a0f972… · run run_9e5a1b033e754440
Operator's view at 2026-08-24 20:05Zfacts frozen when the run was committed, not updated — every figure the operator cites was true then and is never revised herefact pack ba58d2f78bd5…
post closehuman-operator-v1

AI-generated. All quantitative claims traced to the published fact pack. OPERATOR DECISION for P20, filed 2026-08-24 (wall clock) and read at 2026-08-25T23:57:55.068080+00:00. The instrument selection below was made by a human, not by a language model. Sizing, stops, costs, fills and every risk limit are the same deterministic code every other book on this platform runs, and he can neither see nor change them. In his words: Currently there is still a lot of uncertainty and risk in the market, be it geopolitical or fiscal. But we had a good run in crypto the last few days thus I think it would be wise to make an addition to the portfolio directly. Picks, with the basis he declared for each: BUY MRK (news)

ProposalConvictionLifecycleCodes
BUY MRK3PROPOSED→REFUSED AT GATES
no order was created
REJECT_ALREADY_AT_TARGET

Reading the lifecycle. PROPOSED and GATES PASSED are published facts. QUEUED is shown as reached only where a fill proves it — the payload publishes no order record. FILLED / EXPIRED stays undecided without a matching fill, because an accepted order can price on a later session under the T+1 rule, and calling that "expired" would be inventing the outcome. "Accepted" alone used to sit in this column and read as though the trade had happened.

fact pack ba58d2f78bd5ff4d… · run run_f2d8e78b8c8b4d7e
Operator's view at 2026-08-21 20:05Zfacts frozen when the run was committed, not updated — every figure the operator cites was true then and is never revised herefact pack 0f283ca8528e…
post closehuman-operator-v1

AI-generated. All quantitative claims traced to the published fact pack. OPERATOR DECISION for P20, filed 2026-08-24 (wall clock) and read at 2026-08-24T23:12:30.061633+00:00. The instrument selection below was made by a human, not by a language model. Sizing, stops, costs, fills and every risk limit are the same deterministic code every other book on this platform runs, and he can neither see nor change them. In his words: Currently there is still a lot of uncertainty and risk in the market, be it geopolitical or fiscal. But we had a good run in crypto the last few days thus I think it would be wise to make an addition to the portfolio directly. Picks, with the basis he declared for each: BUY MRK (news)

ProposalConvictionLifecycleCodes
BUY MRK3PROPOSED→REFUSED AT GATES
no order was created
REJECT_ALREADY_AT_TARGET

Reading the lifecycle. PROPOSED and GATES PASSED are published facts. QUEUED is shown as reached only where a fill proves it — the payload publishes no order record. FILLED / EXPIRED stays undecided without a matching fill, because an accepted order can price on a later session under the T+1 rule, and calling that "expired" would be inventing the outcome. "Accepted" alone used to sit in this column and read as though the trade had happened.

fact pack 0f283ca8528e1737… · run run_2ae06f221fae489d
Operator's view at 2026-08-20 20:05Zfacts frozen when the run was committed, not updated — every figure the operator cites was true then and is never revised herefact pack b1c7561c3a55…
post closehuman-operator-v1

AI-generated. All quantitative claims traced to the published fact pack. OPERATOR DECISION for P20, filed 2026-08-24 (wall clock) and read at 2026-08-24T16:28:27.367369+00:00. The instrument selection below was made by a human, not by a language model. Sizing, stops, costs, fills and every risk limit are the same deterministic code every other book on this platform runs, and he can neither see nor change them. In his words: Currently there is still a lot of uncertainty and risk in the market, be it geopolitical or fiscal. But we had a good run in crypto the last few days thus I think it would be wise to make an addition to the portfolio directly. Picks, with the basis he declared for each: BUY MRK (news)

ProposalConvictionLifecycleCodes
BUY MRK3PROPOSED→GATES PASSED→QUEUED→FILLED—

Reading the lifecycle. PROPOSED and GATES PASSED are published facts. QUEUED is shown as reached only where a fill proves it — the payload publishes no order record. FILLED / EXPIRED stays undecided without a matching fill, because an accepted order can price on a later session under the T+1 rule, and calling that "expired" would be inventing the outcome. "Accepted" alone used to sit in this column and read as though the trade had happened.

fills: BUY 40.2712 MRK @ 149.19

fact pack b1c7561c3a558042… · run run_86cbbe70a7c94c90

What the operator is allowed to do

This portfolio's instruments are chosen by a HUMAN, not by a language model. He proposes direction and conviction only. Every price, quantity, weight and risk limit is computed by the same deterministic code that runs the AI portfolios here, which he can neither see nor influence, and his picks are refused by the same gates under the same reason codes.

It may propose

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.

It cannot
  • set a price
  • set a quantity or share count
  • set a weight or position size
  • set or move a risk limit
  • execute anything

prompt version P20-no-prompt-v1. Any change to the decider or the prompt 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.

This book decides whenever the operator files a decision. Every AI portfolio here decides only at published instants, so he can act on news they will not see until their next window. That is a real advantage over them and it is stated here rather than in a footnote.

MADE BY A PERSON — no language model, and no deterministic selector either. The operator edits a YAML file naming each instrument, a direction, a conviction from 1 to 5, the basis for the reasoning and the reasoning itself, then runs the book. `OperatorEngine` (src/aiport/ai/operator.py) turns that file into exactly the object the language model produces, and every step after it — the grounding guard, gate 1, gate 2, gate 3, sizing, stops, the cost model, the paper broker and the audit chain — is the same code P07 runs, not a copy of it. His picks are refused by the same gates under the same codes, and those refusals are published. A run with no picks file, an unparseable one, or one older than max_picks_age_days is refused outright and produces no decision at all: an absent decision-maker and a decision to do nothing are different facts about a track record, and only the second one is ever recorded.

Its decisions arrive on a file the operator edits: config/operator_picks/P20.yaml. It is version controlled, so every decision is diffable beside the record it produced, and it adds no public write surface — there is no endpoint, no form and no credential anywhere on that path.

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.

exposure
LimitValueEnforced by
Maximum gross exposure100.0%gate 2 — size_order
Maximum single sector35.0%gate 2 — size_order
permissions
LimitValueEnforced by
Shortingprohibitedgate 1 — proposal validation
Derivativesprohibitedgate 1 — proposal validation
Marginprohibitedgate 1 — proposal validation
Leverageprohibitedgate 1 — proposal validation
sizing
LimitValueEnforced by
Maximum positions15gate 3 — BREACH_MAX_POSITIONS (portfolio limit check)
Minimum new position2.0%gate 2 — size_order
Maximum order as % of ADV0.5%gate 2 — size_order
loss limits
LimitValueEnforced by
Monthly loss limit15.0%gate 3 — HALT_MONTHLY_LOSS_LIMIT
Single-day loss alert6.0%gate 3 — alert
data integrity
LimitValueEnforced by
Stale-data halt36 hoursgate 3 — HALT_STALE_DATA
drawdown ladder
LimitValueEnforced by
At −12.0% drawdownalert, publish_commentarygate 3 — drawdown ladder
At −20.0% drawdownalert, pause_new_positions_days:10, mandatory_deep_reviewgate 3 — drawdown ladder
At −30.0% drawdownalert, pause_new_positions_days:30, publish_commentarygate 3 — drawdown ladder
At −45.0% drawdownsuspend_portfolio, graveyard_reviewgate 3 — drawdown ladder
turnover
LimitValueEnforced by
Max trades per month20entry block — PAUSE_TURNOVER_CAP_REACHED (never blocks an exit)
Min holding period days5entry block — PAUSE_TURNOVER_CAP_REACHED (never blocks an exit)
circuit breakers
LimitValueEnforced by
Halt trading if price gap unexplained pct25gate 3 — circuit breaker
Halt trading if factpack hash mismatchtruegate 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 HUMAN — the operator of this site — and not by a language model. Position sizes, stop levels, execution costs, fills and every risk limit are computed by the identical deterministic code that runs every other portfolio here, which he can neither see nor influence, and his picks are refused by the same gates under the same reason codes as the AI books' proposals are.
  • HE HAS AN ADVANTAGE OVER THE AI PORTFOLIOS AND IT IS NOT SMALL. This book decides whenever he chooses to file a decision. Every AI portfolio here decides only at published instants — P07, the book this one is paired with, decides twice a month and cannot act between those instants however the world moves. He can act on news the model will not see until its next window. That is a real edge, it is the direct consequence of the cadence he asked for, and any comparison of these two records that does not carry this sentence is flattering the human.
  • This portfolio is labelled EXPERIMENTAL from inception. It was labelled experimental on the day it was created, before a single pick was filed and before any result was known.
  • It is paired with P07 "Claude Discretionary" and shares that book's universe, conviction table, position caps, sector limits, cash band, stop method, drawdown ladder, turnover limits, cost profile and fill convention, number for number. The eight places where the two rulebooks differ are marked in this file with the reason for each. What is being measured is the picker; everything else is held fixed on purpose.
  • One operator over one period is a sample of one. This book cannot show that humans beat language models at selecting equities, or the reverse. It can show what this operator did, against what this model did, under limits and costs that were identical and published in advance — and it can show it without either side being able to revise a decision after the fact.

Execution

Cost profile
zero_commission_us
Fill convention
vwap_window
Decision → order latency
60s
VWAP window
15 minutes

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 result this platform publishes about a language model is worth exactly as much as the comparison behind it. P07 is measured against an index and against a five-line momentum rule; neither is a person. This book supplies the missing arm of the experiment by holding one variable — who picks — and fixing every other one in code that both books literally share. The human side carries a real and disclosed advantage, stated below and on the page, because a comparison that hides an asymmetry flatters whoever it favours.

Review schedule

JobCronTimezoneMakes a decision

Published on a fixed, regular schedule. Never event-triggered — no "market is crashing, sell now" alerts, deliberately. This table is the promise; the cadence panel at the top of the page is whether it was kept, instant by instant.

Machine-readable mandate: config/portfolios/P20_operator_discretionary.yaml · human rulebook: docs/portfolios/P20_operator_discretionary.md · effective from 2026-08-20 (wall clock) · record starts 2026-08-21 (pricing session) · payload 540d30e63326…

Every trade, as it happens
What each portfolio bought, what it sold and what it lost. Free, on Telegram.
Join →
Or follow @AIPortfolios186 on X, where the same trades are posted.
Live public decision feed.Every decision, fill and refusal, as it is published — including the ones that lose money. Delivered on Telegram, free.Get the feed →or subscribe by RSS/Atom

The same decisions are posted on X as @AIPortfolios186.

Data provided for free by IEX. By accessing or using IEX Historical Data, you agree to the IEX Historical Data Terms of Use. · Powered by CoinGecko · Logos provided by Logo.dev · Company logos identify holdings only and imply no endorsement.