P14 · Retired
Bottleneck Hunters
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.
Bottleneck Hunters
This book is closed. Its record stays published in full; retirement is a state transition recorded as an event, not a deletion.
Own companies that control something an industry cannot easily function without: sole or limited-source suppliers, extreme switching costs, tiny components inside huge end-markets, specialised machinery, certification barriers, patents and geographic monopolies — with a strong preference for names most retail investors have never heard of. The ideal holding is a small supplier of a boring product that is absolutely critical, with the pricing power that position implies.
| Slot | Last due | Answered | Status |
|---|---|---|---|
weekly deep research 0 18 * * TUE · America/New_York | — | never | unchecked This slot marks and reports; it never calls the model, so it leaves no decision record to check it against. |
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
This portfolio was retired before its first decision cycle and is preserved in this state permanently.
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 P14-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 $150 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 (Tuesday); 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
Markets are quick to price the companies everyone can see and slow to price the ones nobody looks at. A bottleneck is worth more than its size suggests because the cost of NOT buying its product is a stopped production line, a failed certification or a redesigned system — so the customer pays, year after year. The research burden is proving the chokepoint is real: every proposal must name what is controlled, who cannot function without it, and why switching away is prohibitively expensive. A thesis that cannot fill in those three blanks is not a bottleneck, it is a stock somebody likes.
Review schedule
| Job | Cron | Timezone | Makes a decision |
|---|---|---|---|
| weekly deep research | 0 18 * * TUE | 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/P14_bottleneck_hunters.yaml · human rulebook: docs/portfolios/P14_bottleneck_hunters.md · effective from 2026-08-10 (wall clock) · payload 540d30e63326…