FAQ
Short answers to common questions about trading, quotes, verdicts, realized P/L, Claude, data storage, self-hosting and the apps.
On this page
- Can Investi place trades?
- Why are quotes delayed?
- Why is my verdict INSUFFICIENT?
- Why doesn't my realized P/L match my broker?
- What is a round trip?
- How do I connect Claude?
- Can I use Investi from my own scripts?
- Where is my data stored?
- Is anything sent to an AI provider?
- Can I self-host?
- Does the extension read my passwords?
- Which sites does the extension work on?
- Is there a mobile app?
- How often do I need to reconnect Schwab?
- Can I try Investi without my own data?
Short answers to the questions people ask most. Each one links to the page with the full detail.
Can Investi place trades?#
No. Investi is read-only toward every broker. The Schwab connection makes only read requests, and no API endpoint, Claude tool, extension message or desktop feature can place, change or cancel an order. There is no permission scope that can trade. Recording an order in Investi only notes something you did elsewhere; it is never sent to a broker. See Security and privacy.
Why are quotes delayed?#
Quotes, price history, calendars and analyst consensus come from Nasdaq's public endpoints, which are delayed about 15 minutes. Real-time exchange data needs a license Investi does not have, so it is never shown or approximated. Every price carries a freshness label so you can tell how old it is. See Data sources.
Why is my verdict INSUFFICIENT?#
Investi will not judge a company it cannot see clearly. The verdict is INSUFFICIENT when price history is unavailable (no last price or 52-week low), or when three or more of the hard rules cannot be evaluated because their data is missing. The verdict summary names what is missing. See Verdicts and policy.
Why doesn't my realized P/L match my broker?#
The most common reasons:
- Lot method. Investi matches lots FIFO by default. If your broker uses a different method for that account, the realized figures differ. You can switch the reporting method to LIFO or HIFO in Settings. Your original executions never change; only the matching does.
- Unknown cost basis. Lots whose basis Investi does not know, such as a zero-basis transfer in, are never counted in the verified realized total. Their proceeds are reported separately as unknown-basis proceeds.
- Coverage. Investi only knows the history you imported or synced. If your import starts after you first bought a position, the early lots are missing.
- Rounding and fees. Realized P/L is computed per lot match and rounded to cents. Buy fees are added to cost and sell fees reduce proceeds.
- Weekly review. The weekly review on the History screen reports realized profit on average cost per symbol, the way the framework's reviews are kept, so it can differ from the lot-matched figures elsewhere in Investi and from your broker. The review says so.
See Ledger and Import history.
What is a round trip?#
One position in one account taken from flat to open and back to flat. It opens when your position moves away from zero and closes when it returns to zero. A fill that crosses zero, going from long to short or the reverse, closes one trip and opens the next. See Ledger.
How do I connect Claude?#
In Claude, open Settings, Connectors, Add custom connector, and paste your Investi MCP URL (<your origin>/api/mcp, shown with a copy button in Investi under Settings, Connections). Claude registers itself and opens an Investi consent screen where you pick scopes. Claude's cloud connectors need a public HTTPS deployment; Claude Code and Claude Desktop can use localhost. See Claude (MCP).
Can I use Investi from my own scripts?#
Yes, through the REST API at /api/v1 with a personal access token from Settings, Connections. The token is shown once and Investi keeps only a hash. See REST API.
Where is my data stored?#
In one Postgres database: the one named by DATABASE_URL, or, without it, an embedded Postgres (PGlite) on disk at apps/web/.data/pglite. Passwords, sessions and tokens are stored only as hashes, and Schwab tokens are encrypted with AES-256-GCM. See Security and privacy.
Is anything sent to an AI provider?#
Only if the server has ANTHROPIC_API_KEY set and you click to request a plain-language explanation on a research page. Then Investi sends that one company report, which includes your trading history in that company, to Anthropic. Claude explains the verdict; it never computes it. See Security and privacy.
Can I self-host?#
Yes. Run pnpm install, then pnpm dev in apps/web, and open /setup to create the first account. Locally, no environment variables are required. For a production deployment, set:
| Variable | Purpose |
|---|---|
DATABASE_URL |
Postgres connection string. Required on serverless hosts such as Vercel. |
CRON_SECRET |
Optional, on Vercel. Turns on the scheduled alert check (/api/cron/alerts, every 10 minutes in market hours); the route refuses every request without it. |
INVESTI_PUBLIC_URL |
Your canonical origin, used for OAuth metadata, the MCP URL and redirects |
INVESTI_ENCRYPTION_KEY |
32-byte base64 key that encrypts Schwab tokens. Needed only for Schwab. |
SCHWAB_APP_KEY, SCHWAB_APP_SECRET, SCHWAB_CALLBACK_URL |
An approved Schwab Trader API app. Needed only for Schwab. |
SEC_USER_AGENT |
Recommended contact string for SEC EDGAR |
ANTHROPIC_API_KEY |
Optional. Turns on plain-language explanations. |
See Create an account and Connect Schwab.
Does the extension read my passwords?#
No. Investi for Chrome never reads credentials or cookies, and it does not run on sign-in, password or order-entry pages, or on any page with a password field. It only reads ticker symbols on the page and asks your Investi server for that ticker's card, using a token that the finance site's page cannot read. See Chrome extension.
Which sites does the extension work on?#
Schwab, Yahoo Finance, Google Finance, TradingView, Robinhood, Seeking Alpha, MarketWatch, Finviz, Morningstar, Fidelity and ETRADE. It was checked on the live Yahoo Finance, Google Finance, TradingView and Robinhood sites. Signed-in Schwab, Fidelity and ETRADE pages are tested only against saved or reconstructed pages, and if a site's real structure differs the extension detects nothing rather than guessing. Apple Stocks is a Mac app, so no browser extension can reach it. See Supported sites.
Is there a mobile app?#
No. The web app is responsive and works in your phone's browser. There is also a desktop app for macOS and Windows, available from /downloads. See Desktop app.
How often do I need to reconnect Schwab?#
Every 7 days. Schwab's refresh tokens expire after a week, and when that happens Investi marks the connection expired and asks you to authorize again. See Connect Schwab.
Can I try Investi without my own data?#
Yes. Load the labeled sample portfolio from Settings or from the Home onboarding, and remove it when you are done. See Sample data.