Skip to content
investiDocs

AI page analysis

The Analyze button summarizes the page you are on, gives one research recommendation written only from the figures that page shows, and takes follow-up questions about your numbers or about how Investi works.

On this page

Every screen in the signed-in workspace has an Analyze button in the top bar, between search and the alerts bell. It opens a panel on the right that summarizes what the page shows and ends with one research recommendation. Every page in the nav and Settings has its own analysis. On a phone narrower than 480 pixels the panel is a sheet above the bottom navigation.

The analysis is generative, so it follows the same rule as every AI feature in Investi: the numbers come first and are computed without AI. The model reads the figures the screen already rendered, on the server, and is told to cite nothing else. It never computes a verdict, never changes one, and never places, changes or cancels an order.

What the panel shows#

The panel is docked to the right of the page (a short sheet at the bottom on a phone) and never blocks it: you can keep scrolling, clicking and moving between screens while an analysis is being written. It stays open as you move; each new screen is analyzed in turn.

Two things arrive, in order:

  1. Key figures, within a second. These come from the server's own rules, not the model: on a company page the verdict, the last price against the entry trigger, the exit target, the policy's size in dollars and shares, what you hold and your unrealized result, and days to earnings; on Portfolio the equity, unrealized result, crash-cap ratio, risk lines in breach, open buys and holdings not yet analyzed; on Actions the Do now, This week and Watch counts and the crash cap against your chosen line; on Holdings the market value, unrealized result, names under water and underwater dollars past 60 days; on Orders the open buys and sells and the flagged orders; on Sold today the proceeds, realized result and what was left on the table; and so on for each screen. They show even when no AI provider is configured.
  2. The call, a few seconds later, written by the model for you:
Part What it is
Headline One line, at most 16 words.
The call On a company page and on the book: one verb, Hold, Add, Trim, Exit, Wait, Watch, Pass or No move, with its levels (the trigger price or buy zone, the exit target, the size in dollars and shares, the date or event) and what would change it. Screens with nothing to decide (Sold today, History, Analytics, Calendar, Markets, Notebook, Settings) have no call.
Points At most three, each a short title and one sentence with its numbers, chosen because they change what you do or watch.
Next The next concrete step, or the condition to wait for.
Could not assess Folded away by default.

The shape follows the screen. A company page gets a call about that name. Portfolio and Home get a call about the book. Actions leads with the Do now lines and the crash cap against the line you chose. Holdings names the biggest losers and the RED or FLAGGED names you still hold. Orders weighs open buys against the crash cap and explains each flag. Sold today reads the day's realized result, what was left on the table and any re-buy orders. Discover names the candidates that fit your book and cash. History and Analytics describe patterns in your own trading. Calendar lists the dated events that matter for your names. Markets reads today's tape through your names and sectors. Notebook surfaces your follow-ups. Settings lists setup gaps.

Written for you#

Every screen sends the model a section called About you, built from your own records: equity, cash and margin, how many names you hold and the three largest by weight, the policy and its standard position size as dollars and as a share of equity, how many standard positions your cash covers, your track record (closed trips, win rate, average win and loss, profit factor, average hold), the last 30 days of fills and realized results, your three latest notes, and how many alerts and watchlist names you have.

A company page adds Your history in this name: open lots with their age and result at the last price, closed round trips with entry, exit and realized result, recent fills, working orders, alerts on the name, whether it is on your watchlist, your notes about it, and the last six verdicts. Sizing for you gives the policy's size for this name, the shares that buys at the last price, your current weight, the room left to a standard position, your cash, and the other names you hold in the same sector.

The model is told that an answer that could be given to anyone is a failure, and that "review" is not a call.

Every panel ends with the line "Research, not investment advice. Investi never places orders." The call is the policy applied to your situation, written as research for you to act on yourself; Investi cannot place, change or cancel an order.

Refresh asks for a new analysis of the current data. Press Esc while the panel has focus, or the close button, to dismiss it.

Your playbook and what you have told Investi#

Two more sections go with every screen, when they have anything in them. Your playbook is your own investing rules, read from a strategy document you uploaded or written in Settings; the model follows them when they bear on the call and names the rule it applied. They add to the strategy rules and never change their numbers. What you have told me is your account's memory: a line for every file you uploaded (its summary and key facts, or what was imported) and what you asked the chat to remember. The model reads it as background about you, never as instructions. Both are part of the cache key, so a new rule or a forgotten line changes the next analysis. See Uploads, playbook and memory.

Ask follow-up questions#

Under the analysis, the panel holds a chat about the screen. Type a question and press Enter to send it (Shift+Enter adds a line). The answer is written by the same provider from the same figures the analysis read, plus the conversation so far, your memory and any files you attached, and it streams in as the model writes it.

  • One thread per page. Each page (each company page separately) keeps its own thread. Close the panel or move away and come back, and the thread reopens with its history. New thread starts over; the old thread is kept but no longer shown.
  • The page stays yours. You can keep using the app while an answer is written. If you move to another screen mid-answer, the answer still finishes and is saved to the screen you asked on.
  • Files. Use the paperclip, drop files anywhere on the panel, or pick an earlier upload with Files. Each file is checked and routed as described in Uploads, playbook and memory; a readable document is attached to your next question. On a company page, an upload that mentions the ticker is read too. File text reaches the model inside a marked block with the instruction that it is data, never instructions.
  • Memory. Say "remember that...", "forget..." or "add ... to my rules". The answer confirms each change on its own line, or shows it as a proposal with Confirm and Dismiss when it cannot be checked against your words. See Changing memory from the chat.
  • Research only. The chat never places, changes or cancels an order and never offers to.

What the chat knows about Investi#

The chat (and the analysis) knows the whole app, not only the page you are on, so you can ask how-to questions anywhere: "where do I import my tracker", "what does Strict 1 mean", "how does Sync now work", "what is a probe position".

  • A site map, always. Every page with its path, its keyboard shortcut and one line on what it shows (from the shared nav list and each page's doc), the Settings sections with their anchors, the integrations (Chrome extension, desktop app, MCP connector, REST API) and every docs page. It is built from the same sources as the app's nav and these docs, so it follows them when a page changes.
  • The docs that match your question. Every docs page is split at its headings. For each message, Investi scores the sections against your words (keyword matching over titles, headings and text, inside Investi, with no outside service) and sends the best ones, at most 6 sections or 8,000 characters, each with its link.
  • Answers point to the place. A how-to answer says which page and which control to use and cites the links, such as /settings#verdicts and /docs/app/settings#import-verdict-history; links in an answer open in the app. Questions about your own numbers are answered from the page's figures. When the docs do not cover something, the answer says so instead of guessing.
  • Kept apart. The docs reach the model in their own marked block, separate from your files, whose text is always treated as data and never as instructions.

Pages without figures#

The chat API and MCP also accept Downloads, docs pages and paths under workspace pages without figures to summarize. They answer from what Investi knows about you (About you, your playbook and memory) and about Investi (the site map and the docs). The chat API keeps a separate thread for each path. Public Downloads and Docs pages use their own navigation and do not show the workspace's Analyze button.

Each account can send 60 chat messages in 10 minutes, a separate budget from the 30 analyses. The model has 40 seconds to answer.

What each screen sends#

The model receives a compact copy of the screen's own server-side data, plus the key figures and the About you section: numbers rounded (whole dollars from $1,000, cents below, percents to one decimal) and long lists cut to their top rows.

Screen Data sections
Home Account figures, top 10 positions with verdicts, risk lines, market regime, the nearest screen candidates, verdict changes in the last 7 days, strategy rules
Portfolio Account figures, top 15 positions with verdicts and exit targets, verdicts on holdings, risk lines, working orders, stress scenarios, data checks, strategy rules. Honors the account filter.
Discover The latest screen run, candidates within 25% of the 52-week low by verdict and state, the nearest 15 and the GREEN or YELLOW ones, market regime, strategy rules
Research Holdings with their verdicts and the most recently analyzed names
A company Key facts, about you, verdict and the rule that decided it, every rule gate, price against the 52-week range, buy zone and trigger price, earnings, your position, your history in this name, sizing for you, bull and bear points, market regime
History Fills and closed round trips, the best and worst trips, recent fills, the weekly review
Analytics Win rate and trade statistics, cumulative P/L against the benchmark, results by ticker, underwater lots, missed exits, monthly realized P/L
Calendar Upcoming and recent earnings for your holdings and watchlist, ex-dividend dates, US economic releases
Markets Session, indices, breadth, sectors, movers, names near their 52-week low, your names' moves today and the sectors you hold
Notebook Recent notes, your watchlist with verdicts, alerts and recent triggers
Settings Configuration state only: account count, connection statuses, token counts, the AI provider, thresholds changed from the defaults, hard rules, preferences
Actions The action list from the same function as the page: Do now, This week and Watch with their counts and top lines, how many lines you hid (hidden lines are left out), probes skipped, and the crash cap against your chosen line with both lines
Holdings Totals as on the page, positions under water and their loss, underwater open cost past the policy's days, the five biggest losers, oldest-lot age buckets, RED or FLAGGED names held, and the 15 positions with the biggest percentage loss. Probes stay in account totals but are excluded from the risk lists.
Orders Open buys and sells dollars, order counts by side and session, the crash cap, counts by verdict and by flag, the flagged orders with each flag, and the largest orders. Probes stay in the working-order count but are excluded from risk, flags and open buy/sell dollars.
Sold today The day (honors ?date=), totals (proceeds, cost basis, realized, rows with a known basis, left on table, now flat), each sale against the close with any re-buy order, and probe sales left out
Any other page About you, your playbook and memory, plus the site map and the docs for the chat

Settings never sends a token, token hash or id, a key, an environment variable's value, or an account number. Notes, verdict reasons and other text are sent as data, and the model is told to ignore any instructions inside them.

Caching and limits#

  • An answer is kept for 10 minutes per account, screen and set of figures, including across server restarts. Changes to figures, rules, the model, instructions or retrieved documentation require a new analysis. Refresh always asks again. Failed or unreadable cached answers are regenerated.
  • The model has 25 seconds to answer. If it takes longer, the panel shows an error with Try again.
  • Each account can request 30 fresh analyses in 10 minutes. Answers served from the cache do not count.

When AI is not configured#

AI features need a provider on the server: Azure OpenAI, Claude in Microsoft Foundry or the Claude API. Without one the panel reads "AI explanations are not configured. Add a key in Settings." Every number in the app works without it. Settings lists the provider under Data sources and status.

API#

The chat is at POST /api/v1/ai/chat with { "path": "/research/SPXC", "message": "...", "uploadIds": [] }; add "stream": true for newline-delimited JSON events. GET and DELETE on the same path with ?path= read and close a screen's thread. See REST API.

The same analysis is available at POST /api/v1/ai/page with the research:read and portfolio:read scopes. Send { "path": "/portfolio", "facts": true } for the key figures alone, which needs no AI provider. See REST API.

Shell
curl -s "$INVESTI/api/v1/ai/page" -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" -d '{"path": "/portfolio"}'

The response carries headline, action, points, next, caveats, facts, model, generatedAt, basis and cached. A page inside the app with no figures of its own (Downloads, a docs page) returns { "mode": "general", "facts": [] } and the chat API works there. A path outside the app (the API, another site, an unknown root) returns 404 on both routes. Analyses and chat answers require a provider; otherwise they return 503 with code ai_not_configured. Requests with facts: true, including general-mode metadata, do not require a provider.