01 What it does
Paper Trader runs five paper portfolios side by side, one per trader persona, each starting with the same $100k and trading the S&P 500 on end-of-day prices. You watch them compete on a live leaderboard, inspect any persona's holdings and trades, and read a weekly AI verdict on how each one is really doing — no real money involved.
- Five archetypes — momentum, mean-reversion, low-volatility, equal-weight, and buy & hold.
- Real risk metrics — return, Sharpe, volatility, max drawdown and beta, per persona.
- A weekly grade — a local LLM judges each persona's process and risk, not just its return.
02 How it works
The data and compute live off Vercel. A scheduled worker on a VPS pulls
free EOD prices for the whole index (Yahoo via yfinance, Stooq as a
fallback), runs every persona's strategy, and writes trades, holdings and NAV into
Supabase Postgres. The website only ever reads that database.
- Daily ingest — refresh the S&P 500 universe and upsert end-of-day prices.
- Strategy engine — deterministic, price-based personas; reproducible, no AI in the trade loop.
- Weekly review — a local Ollama model grades each persona on separate hardware.
- Read API — a small FastAPI function on Vercel serves the dashboard from Supabase.
03 Design decisions
Free data, on purpose. End-of-day prices are plenty for a paper book and cost nothing. The price feed sits behind a pluggable provider interface, so when one source gets rate-limited or bot-walled the next one takes over.
Deterministic strategies, AI as the judge. The personas trade on pure, price-based rules — so results are reproducible and the daily path is free. The LLM never picks trades; it reviews them once a week, which is where its judgement actually adds value.
Heavy work off the serverless box. Ingesting 500 tickers and running an LLM doesn't belong in a 10-second function. Those jobs run on a VPS; Vercel stays a thin, fast read layer.
04 Status & what's next
In progress, ~90% there. Ingest, the five personas, risk metrics, the dashboard and the weekly AI review are all working. The remaining work is operational polish. Planned:
- More personas — add factor blends and a sector-rotation strategy.
- Drawdown alerts — flag when a persona breaches a risk threshold.
- Fundamentals — fold in valuation signals once a free source is in place.
The live dashboard is up — open it here. Code and progress live on GitHub.