P16 · Paper portfolio
Picks & Shovels
by AI Portfolios
This is the simple view. Nothing has been removed — the decision records, the refused proposals, the AI'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.
Picks & Shovels
A published decision instant passed with nothing answering it, and its catch-up window has closed: due 2026-09-24T22:00:00+00:00 and newest decision run of any kind is 2026-09-10T23:40:54.692134+00:00. The slot passed 40h ago; its catch-up window closes 2026-10-01T22:00:00+00:00. Plus 1 older instant(s) of this slot with permanent holes and nothing in the chain to explain them, back to 2026-09-17T22:00:00+00:00. The gap is permanent and stays visible here rather than being quietly backfilled.
Identify major growing industries and invest only in the infrastructure and equipment providers around them — semiconductor equipment, testing and metrology, cooling, power infrastructure, logistics, laboratory equipment, industrial software — and never the fashionable end-product company itself. When everyone digs for gold, own the shovel counter.
| Slot | Last due | Answered | Status |
|---|---|---|---|
weekly deep research 0 18 * * THU · America/New_York | 2026-09-24 22:00 | never | SCHEDULE_MISSED due 2026-09-24T22:00:00+00:00 and newest decision run of any kind is 2026-09-10T23:40:54.692134+00:00. The slot passed 40h ago; its catch-up window closes 2026-10-01T22:00:00+00:00. Plus 1 older instant(s) of this slot with permanent holes and nothing in the chain to explain them, back to 2026-09-17T22:00:00+00:00. |
monthly review 0 12 1 * * · America/New_York | — | n/a | does not decide This slot marks and reports; it never calls the model, so it leaves no decision record to check it against. |
Catch-up policy. A decision instant that passes unanswered is run on the next pass, once, and the record stamps both instants — when it was due and when it actually ran. Past the catch-up window the gap stays open and is published as missed rather than backfilled.
Track record
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.
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.
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.
| symbol | since entry | weight | opened |
|---|---|---|---|
| ENTG | -11.9% | +4.6% | 2026-08-26 |
| AMAT | -13.4% | +4.4% | 2026-08-19 |
| TER | -12.5% | +3.6% | 2026-08-19 |
Return since the AI entered, measured from this book's own mark against what it actually paid — our own numbers over our own record, not vendor price data.
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.
| Symbol | Quantity | Avg cost | Stop | Opened |
|---|---|---|---|---|
| 10.0089 | 489.80 | 408.39 | 2026-08-19 committed 2026-08-21 | |
| 34.7291 | 145.86 | 118.50 | 2026-08-26 committed 2026-08-27 | |
| 10.4646 | 376.13 | 294.72 | 2026-08-19 committed 2026-08-21 |
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.
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 AI'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.
fills: SELL 17.7609 ONTO @ 258.69
AI-generated. All quantitative claims traced to the published fact pack. P16 buys the infrastructure/equipment layer around growing industries, never the end product. The dominant trend in this pack is semiconductors/AI compute, and the mandate-appropriate exposure is semi-equipment, testing/metrology and connectivity — "shovels" paid by every chip contestant. The book currently holds three such names (AMAT, ONTO, TER) and is 86% cash (pf.cash_pct=86.0681), so there is ample room (pf.position_slots_free=9). Held positions: AMAT last 479.76, unrealised -2.05% over 6 days (pos.AMAT.unrealised_pct, pos.AMAT.days_held), 20d +9.92% (px.AMAT.ret_20d), 252d +196.17% (px.AMAT.ret_252d) — thesis intact, momentum firm. ONTO is the concern: unrealised -13.56% (pos.ONTO.unrealised_pct) after only 12 days, but 20d is still +33.70% (px.ONTO.ret_20d) and 252d +169.46% (px.ONTO.ret_252d); its realised …
| Proposal | Conviction | Lifecycle | Codes |
|---|---|---|---|
| BUY ENTG @ 5% req. | 3 | PROPOSED→GATES PASSED→QUEUED→FILLED | — |
| HOLD ONTO | 3 | PROPOSED→GATES PASSED→NO ORDER HOLD is a decision not to trade — no order is created | — |
| HOLD AMAT | 4 | PROPOSED→GATES PASSED→NO ORDER HOLD is a decision not to trade — no order is created | — |
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 34.7291 ENTG @ 145.86
AI-generated. All quantitative claims traced to the published fact pack. P16 buys the infrastructure and equipment providers around growing industries, never the end-product. The dominant growth theme visible in this pack is semiconductors/AI datacenter, and the mandate's natural home there is the equipment, metrology, testing and power-infrastructure suppliers who get paid by every chipmaker regardless of who wins. Current book: one position, ONTO (Onto Innovation, semiconductor metrology/inspection — a textbook "shovel"), at 5.36% weight (pos.ONTO.weight_pct), unrealised -11.30% (pos.ONTO.unrealised_pct), 5 days held (pos.ONTO.days_held). It sits near its stop at 253.365 (pos.ONTO.stop) vs last close 299.50 (px.ONTO.close) — roughly 15% of headroom. ONTO has fallen -11.22% over 5d (px.ONTO.ret_5d) but is still +14.20% over 60d (px.ONTO.ret_60d) and +175.63% over 252d (px.ONTO.ret_252…
| Proposal | Conviction | Lifecycle | Codes |
|---|---|---|---|
| HOLD ONTO | 3 | PROPOSED→GATES PASSED→NO ORDER HOLD is a decision not to trade — no order is created | — |
| BUY AMAT @ 5% req. | 4 | PROPOSED→GATES PASSED→QUEUED→FILLED | — |
| BUY TER @ 4% req. | 3 | PROPOSED→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 10.0089 AMAT @ 489.80 · BUY 10.4646 TER @ 376.13
AI-generated. All quantitative claims traced to the published fact pack. P16 seeks "picks and shovels" — infrastructure/equipment suppliers to growing industries, never the end-product. The dominant secular trend visible in this fact pack is AI/datacenter buildout, and the clearest shovel-sellers here are: (1) semiconductor equipment/metrology, (2) datacenter power & thermal infrastructure, and (3) optical/networking hardware. All names must sit under the mandate's implicit mega-cap ceiling and be genuine multi-contestant suppliers. Candidate shovels with supporting momentum and profitability facts: - ONTO (Onto Innovation, Health Care-tagged but is semiconductor metrology/inspection equipment): r252 206.52%, r20 19.96%, mcap 16.58B, sold to every fab regardless of which chip wins — a textbook shovel. Full-block facts absent; screen-only. - TER (Teradyne, semiconductor/electronics test…
| Proposal | Conviction | Lifecycle | Codes |
|---|---|---|---|
| BUY ONTO | 3 | PROPOSED→GATES PASSED→QUEUED→FILLED | — |
| FLAG_DATA_ANOMALY ONTO | 4 | PROPOSED→REFUSED AT GATES no order was created | REJECT_ACTION_NOT_PERMITTED, REJECT_DUPLICATE_SYMBOL |
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 17.7609 ONTO @ 337.65
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 4 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 P16-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.
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 | 40.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 |
|---|---|---|
| Maximum positions | 12 | gate 3 — BREACH_MAX_POSITIONS (portfolio limit check) |
| 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 | 48 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 | 8 | entry block — PAUSE_TURNOVER_CAP_REACHED (never blocks an exit) |
| Min holding period days | 10 | 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 working a published thesis. Position sizes, stop levels and every risk limit are computed by deterministic code the model cannot see or influence.
- The thesis' "obscurity" requirement is enforced as a MARKET-CAP CEILING of $400 billion — the mechanical part of the rule. The platform's licensed universe is currently the S&P 500 / 400 / 600 + Nasdaq-100 compilation (~1,550 names, session 14) — the mid- and small-cap hunting ground is real, from SSGA's free daily holdings files.
- This portfolio is labelled EXPERIMENTAL from inception: it tests whether AI deep research can express this thesis at all, and it may fail. The label predates any result.
- Research runs once weekly (Thursday); risk management (stops, forced exits, NAV marks) runs every session. Days without a decision are chart points, not missing runs. One disclosed exception: the portfolio's FIRST research cycle runs at deployment whatever the weekday — a new book must not sit empty for up to a week — and the exception self-disables after that first run, detected from the audit chain itself.
- The model identity and prompt version are published; any change is a MODEL_CHANGE event in the audit chain.
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
End-product winners are lottery tickets: one champion emerges and the rest burn capital. The suppliers get paid by every contestant, winners and losers alike, which converts a speculative trend into a broad revenue base. The mandate's ceiling keeps the book out of the trend's own mega-cap darlings; the research burden is proving the pick really is infrastructure — paid by many contestants — and not just the end product one step in disguise.
Review schedule
| Job | Cron | Timezone | Makes a decision |
|---|---|---|---|
| weekly deep research | 0 18 * * THU | America/New_York | yes |
| monthly review | 0 12 1 * * | America/New_York | no |
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/P16_picks_and_shovels.yaml · human rulebook: docs/portfolios/P16_picks_and_shovels.md · effective from 2026-08-10 (wall clock) · record starts 2026-08-13 (pricing session) · payload 06ec491b8950…