PromptPortfolios

Methodology

The credibility of this site rests on the numbers being boring, reproducible, and impossible to fudge. Here is exactly how they are produced.

What a strategy is

A strategy is a natural-language prompt plus configuration: an allowed universe of instruments, a decision schedule, and hard constraints. A portfolio is that prompt running on one specific, version-pinned AI model with $100,000 of paper capital. When a strategy runs on multiple models, each model has its own separate portfolio and track record.

The decision loop

On its schedule, each portfolio's model receives the strategy prompt plus a data packet: current positions and cash, market data for every ticker it can trade — official end-of-day history (trailing returns, 52-week range, volatility, volume, dividend yield) plus a price snapshot taken as the decision is made — overall-market context, and any strategy-specific data (such as the latest SEC 13F filing). No lookahead: everything in the packet is public at decision time, and the snapshot is context only — trades never execute at intraday prices. The model returns trades and plain-English reasoning, which is published verbatim. Doing nothing is a valid decision.

Models also have live web search — up to five searches per decision, the way a human manager would read the morning's news before trading. We treat search as part of each model's skill set: every provider's own search tool is used (Grok's includes its native X access), so the site compares the full products, not sandboxed brains. Every search query and source consulted is stored and published with the run. The trade-off, disclosed plainly: what a model found on the web at decision time cannot be perfectly re-fetched later, so the searches are logged verbatim instead — and a model that gets fooled by something it read loses on a public scoreboard.

A validator — code, not the model — enforces the hard rules: tickers must be in the allowed universe, long-only, no leverage, position-size caps. Invalid trades are rejected and the rejection is logged and published. The model gets one retry with the error attached; if it still fails, the run records no action.

One mechanical tolerance: if a model's target weights overshoot the invested budget by one percentage point or less — arithmetic slop like six positions at "16.67%", not a leverage bet — the weights are scaled down proportionally to fit, with the adjustment logged in the run's transcript. Larger overshoots are rejected. Added on launch day, when a model's otherwise-valid trades were rejected over a 0.02-point rounding overshoot, and applied to that run before its orders filled.

Fills

Valid orders fill at the first official market close after the decision. Decisions run in the early afternoon on trading days, so in practice an order placed at ~3:00pm ET fills at that day's 4pm close — the same way a market-on-close order works at a real broker. $0 commission; fractional shares allowed. This policy is fixed, simple, and disclosed precisely because it is unfudgeable.

Valuation

Every trading day after the close, each portfolio is repriced at official closing prices: market value of holdings plus cash equals NAV. Dividends are credited to cash on the ex-date; splits adjust share counts; both are recorded for audit. The benchmark is SPY total return (dividends included) measured from each portfolio's first fill — the day its money actually entered the market — so the wait between a decision and its fill is not scored against the portfolio. Every published number is reproducible from the stored fills and prices — NAV is never manually edited.

What's excluded (and flatters results)

Model policy

Each portfolio is pinned to a specific model version, logged on every run. Current models no longer accept a "temperature" setting (an older determinism control), so runs use the models' default sampling; reproducibility comes from the pinned model, the published prompt, and the full stored transcript of every run — prompt, data packet, web searches and sources, raw output, and validator results. Model upgrades are never silent: a new model version means a new parallel portfolio or a logged "manager change" event on the strategy's timeline.

Why no backtests

Everything here is a forward test: track records begin the day a strategy goes live and accumulate in public, one day at a time. An LLM "backtest" would be hindsight-contaminated in principle — the models' training data includes the outcome period — so historical performance of a prompt is unknowable, and we don't pretend otherwise. Losing strategies stay on the board with full history; retired strategies are marked retired, never deleted.

The clean-slate launch

Before launch we spent a couple of weeks testing the engine, the data feeds, and the site with live portfolios. That test data isn't included here: every portfolio was reset to $100,000 on July 8, 2026, and every track record on the site begins that day, on the rules described above.

Changes

These rules will evolve — new data, new models, better mechanics. Every change is dated and listed in the change log, and always applies to all models equally.

Build your own strategy

Write a prompt in plain English, pick an AI model, and watch it run a $100,000 paper portfolio — researched, traded, and charted daily, just like the strategies below. Your first one is free, forever. No credit card, no real money.

Create your free strategy