Methodology
Last updated: 24.05.2026
We sell a roast that calls itself brutally honest. Honesty starts here — with the exact models, prompts, and data we use, plus a clear list of things we explicitly don't do. Skim it before you trust the output.
How the roast is generated
Each portfolio you submit is processed in three deterministic stages. The LLM runs exactly once per portfolio — whether you pay or not. Payment unlocks the locked sections of a roast that has already been written and cached; it does not trigger a second LLM call.
- Screenshot OCR (if you upload an image): we call
gemini-3-flash-previewto extract a JSON list of holdings. No image is stored after extraction. - Currency normalization: deterministic code (no LLM) converts non-USD positions and computes percentage weights against your total. This step runs in a Cloudflare Worker — see
/worker/src/currencyNormalizer.js. - Roast generation: the normalized portfolio plus our published prompt are sent to
gemini-2.5-pro. The prompt is the “Five Blades of Execution” structure — Opening Salvo, five themed critiques (concentration, correlation, cost, behavior, recovery), and a Redemption Arc. Output targets 600–800 words. - Asset analytics (background, anonymized): we call
gemini-2.5-flash-liteto track which asset names appear across roasts so we can prioritize what to improve. Names only — no portfolio composition, no user identity.
Data sources
- The portfolio itself: whatever you paste or upload. We do not connect to your broker. We do not look up live prices. The roast reasons over the data you give us, period.
- CFTC Commitments of Traders (used by our weekly newsletter, not the per-portfolio roast): published Friday 3:30 PM ET by the U.S. Commodity Futures Trading Commission. Source: cftc.gov.
- Research we cite in blog posts: Vanguard, Morningstar, S&P Dow Jones SPIVA, DALBAR. Specific studies are linked inline in the post that cites them — citations live in the article, not in this hub.
What we explicitly don't do
- No buy or sell recommendations for individual securities. The roast critiques the portfolio you submitted; it doesn't direct you to trade.
- No persistent storage of your portfolio. Each roast is cached in Cloudflare KV with a 24-hour TTL so you can pay and return to read it; after 24 hours it's deleted automatically.
- No broker integration. We don't hold credentials, we can't place trades, and we have no read access to any account.
- No personal data tied to portfolios. We don't require an account to roast. Analytics tracks usage in aggregate via Google Analytics with GDPR consent gating — see our Privacy Policy.
- No forward-looking forecasts. The roast is retrospective analysis of the portfolio composition you submitted — concentration, correlation, fee drag, behavioral patterns. It does not predict prices.
- Not financial advice. Full terms in our Disclaimer.
Known limitations of the LLM
Large language models hallucinate. Ours can too. Specifically:
- Ticker / ISIN ambiguity: if you submit only a short ticker, the model may guess the wrong listing. Include the full security name or ISIN when you want precision.
- Fee estimates: when a fund's expense ratio isn't in the model's training data, the roast estimates a typical fee for that asset class. Estimates are flagged as such in the cost section; verify against the fund's factsheet before acting.
- Asset class assignment: edge-case holdings (e.g., closed-end funds, structured notes, niche ETFs) can be miscategorized. The concentration critique is only as good as the categorization.
- No live data: prices, holdings, and underlying-index composition are frozen at the model's training cutoff. Recent reconstitutions or splits may not be reflected.
Who's behind it
Nurse Mercy
Financial Triage Specialist
Nurse Mercy delivers brutally honest portfolio diagnoses with no bedside manner. Combining AI-powered analysis with decades of financial research, she dissects earnings reports, SEC filings, and market trends—giving you the diagnosis Wall Street won't.
Chef
Developer & Creator
Creator of RoastMyPortfolio. Software engineer with a passion for building tools that help people make better financial decisions. Built the platform using Cloudflare Workers, React, and multi-LLM architecture.
Keeping this honest
Model names, prompt structure, and storage TTLs change. The “Last updated” date at the top of this page is the source of truth for when this description matched production. If you find a drift between what this page says and what the service actually does, that's a bug — email support@roastmyportfolio.com and we'll fix the page or the service.