VEEMANDocs
DocumentationSupportOpen Dashboard

Getting started

  • Introduction
  • Quick start
  • Core concepts

Importing data

  • Supported formats
  • How import works
  • Splitting a file
  • Troubleshooting

Building your portfolio

  • Workspace & equity
  • Weights & capital
  • Weekday filter
  • Keyframes
  • Currencies & FX
  • Library
  • Strike guard
  • Variants & comparison
  • History (undo/redo)
  • Shared spaces

Analytics

  • Metrics reference
  • Charts (deep-dive)
  • Monthly P&L
  • Correlations
  • Comparison
  • Monte Carlo
  • Equity Control
  • Optimization
  • IBKR reconciliation
  • Veeman AI

Research

  • Research overview
  • Define
  • Composing a backtest
  • How the engine trades
  • Results & archive
  • Parameter study
  • Rewind
  • Tactics
  • Indicators

Reference

  • Keyboard & command palette
  • Exporting data
  • Settings

Technical

  • Architecture
  • API reference
  • Security
  • Your data & privacy
  • Risk disclosure
← PreviousIBKR reconciliationNext →Research overview

Veeman AI

Veeman AI is the built-in analyst that sits beside you during a session. It interprets results that VEEMAN has already computed and answers questions about them in plain language, and it can compute extra statistics on your real data on demand. It is a tool for analysis: it is not a financial advisor, and the final decision is always yours.

Where you find it

The Veeman glyph
Next to the title of every module you will find the Veeman glyph — the same chevron mark as the app icon. Click it to open the chat from wherever you are; it carries which module you opened it from as context.
The drawer
Open Veeman AI from the pill in the session status bar. It opens chat-first: you can ask a question straight away, with a few suggested prompts to get going.

The drawer keeps its conversation on the server, so the thread survives closing and reopening the panel within the session.

Tabs, clearing and exporting

The chat is organised into tabs, so you can keep different lines of enquiry apart instead of piling everything into one thread.

New tab
Press the + in the tab bar to open a fresh, empty tab for a different kind of request. Each tab keeps its own conversation and its own awareness of the session — asking in one tab doesn't mix into another. A tab is named automatically from its first message; you can keep up to eight open per session.
Switch and close
Click a tab to switch to it; click its ✕ to close it (there is always at least one open). Closing a tab discards that thread's memory.
Clear chat
The ⋮ menu in the header has Clear chat — it empties the active tab and resets its awareness, so you can start over without opening a new one.
Download
The same menu offers Download .md and Download PDF. Markdown saves the active tab as a plain-text file; PDF opens a formatted, print-ready view and uses your browser's print dialog — choose Save as PDF. Both capture whatever the tab holds: the session verdict (its prose, confidence level, sample note and suggested analyses) when you've loaded one, the conversation when you've asked questions, or both together. The two actions enable as soon as the tab has a verdict or at least one message — a verdict-only tab is exportable even before you type anything.

Conversations are session-scoped and temporary

Tabs and their memory live in the session (up to 24 hours) and are not saved to disk — they don't survive a much longer gap or a backend restart. Download a tab if you want to keep its reasoning.

Asking questions

Type any question about your session. When the panel is empty you get a few suggested prompts — one of them, "Give me an overview of the session," produces a structured reading (a short verdict with a confidence level and next analyses to try). That overview is on demand: it loads only when you ask for it, not every time you open the panel.

Ask in your own words

You don't need to phrase things a special way. "How often do these two lose on the same day?", "Which day of the week is worst for Trend?", "What are the five worst days?" all work. If a question needs a number that isn't ready, Veeman AI computes it on your real trades rather than guessing.

What it can answer

Reading your results
What the metrics show, what is notable or fragile, and where a result may be misleading (small sample, possible overfitting, in-sample caveats).
Co-movement between strategies
How often two strategies lose together, win together or move in opposite directions, plus correlation, beta and how much they diversify each other.
Single-strategy stats
Sharpe, Sortino, win rate, profit factor, drawdown and the best and worst day for one strategy on its own.
Day-of-week patterns
P/L, win rate and number of trading days per weekday, for a strategy or the book.
Which weekday has a real edge
Ask to optimize or improve a strategy by day of week ("is Tuesday actually better?", "which day should I keep?") and Veeman AI runs an empirical weekday-edge battery for that strategy — certification against the strategy's own Sharpe, a grid max test corrected for trying every weekday, PBO and multi-window persistence (the same anti-overfitting reasoning as the Optimizer) — and reports which days carry a certified edge, or that none do. It deliberately does not point at the raw best/worst day (an extreme over five days, uncorrected for multiple testing) as something to act on.
Worst days and monthly P&L
The worst days with their dates, and the monthly grid with the best and worst month of each year.
Free-form day counts
Arbitrary questions like "in how many days does A lose while B gains?" or "average combined loss on the days both lose" — counted, summed or averaged, optionally grouped by weekday, month or year.
Time of day
"Which hour loses the most?", "average P/L of trades after 15:30" — grouped by hour, weekday, month or exit reason. This works only where your file carries the date and time of each trade (see limits below).
What-if experiments
"What if I double the weight of A?", "what if I exclude the worst strategy?", "what if capital were 50,000?" — Veeman AI recomputes the metrics on that hypothesis and shows the effect versus today, without touching your live session. It also reports the uncertainty on the change: a block-bootstrap band on the Sharpe delta and the probability of no improvement, so a change that is really just noise is called out as such rather than presented as an effect.
Optimization (best configuration)
"How many contracts of A and B for the highest MAR?", "pick the subset of strategies that stays under $10,000 of margin and maximizes Sortino." Veeman AI searches the space of integer contracts or strategy inclusion, subject to your constraints (max margin, max drawdown, number of active strategies), and reports the combination that would have maximized your chosen metric on the backtest — a global optimum for small spaces, or the best configuration found for large ones — together with how well it holds out-of-sample and under resampling. See Optimization for the full module.

It won't propose account-burning leverage

Optimization runs under a capital-adequacy guard (see Optimization): the proposal cannot be riskier than your current configuration — drawdown anchored to what you already run, and where margin data exists, peak margin capped at your capital. So Veeman AI won't suggest, say, seventeen contracts of SPX options on $50k. It also separates the mix (what the optimizer finds) from the size (how many contracts to actually trade — that is per-strategy sizing), and flags when the absence of margin data means the guard can't see tail risk.

An optimized configuration is an in-sample result

Searching for the "best" contracts or subset maximizes a metric on past data, which also fits noise — this is the single most overfitting-prone thing the analyst can do. Veeman AI always frames it as "the combination that would have maximized X on the backtest", never as advice or a prediction, and always reports the out-of-sample check (the configuration found on the first part of the history, then measured on the later part) and a resampling band. Read those before trusting the headline number. The decision to trade, and how, is always yours.

Acting on a proposal

When Veeman AI optimizes, it does not silently change your workspace — it shows an actionable proposal card under its answer, and you stay the final switch. The card shows the configuration it found and the key metrics before and after, with three actions:

Apply to session
Writes the proposed weights into the live session. Recorded in the Timeline, so it is undoable.
Save as variant
Freezes the proposal as a variant and pins it to the comparison, without touching the live session — compare it against your current setup before committing.
Open in Optimizer
Opens the Optimization module pre-filled with the same configuration, to review the surface and leaderboard or tweak and re-run.

The card stays with the message: it survives closing and reopening the chat for as long as the session lives.

Methodology guidance

Beyond the numbers, Veeman AI helps with how to analyse: which tool or statistical method fits your data — for example, for returns with volatility clustering and fat tails (typical of 0DTE options) it will point you to FHS + GARCH or a skewed Student-t Monte Carlo model, with block bootstrap as the robust default. This is educational guidance about the tools inside VEEMAN, and it can link you to the relevant page (for example Monte Carlo).

Composing a backtest from a description

In Research → Backtest, above the recipe, the Veeman AI bar turns a description in plain words into a filled-in recipe. Write something like "inverse iron condor delta 20, wings 20 points, stop 200%, VIX overnight up 0%" and press Enter (or Compose): the structure, the entry filters and the exits are set in the form. Nothing runs on its own — you check the values in each step and launch the backtest as usual.

New or edit
With an empty form it composes a new strategy. With a recipe already in the form, a description of a whole strategy replaces it, while a request like "stop at 150%, Tuesdays and Thursdays only" edits only what it names and leaves the rest untouched.
Set
Each value comes with the words of your description it was read from, and the step of the plan it landed in. Click one to open that field's settings.
How I read it
The interpretations it made, stated plainly. For example: on a debit structure a 200% stop means a loss of twice the debit paid.
Not translated
What it could not put into a field: structures the engine cannot run (anything with stock legs, such as covered calls and collars, and anything with more than one expiry, such as calendars and diagonals; the backtest is 0DTE options only), or values it could not tie back to your words.
Undo
Puts the form back as it was before the composition, as long as you have not edited it by hand since.

It translates, the engine decides

The model does not write the recipe directly. It names a structure from a built-in catalogue (about 45 single-expiry structures: verticals, straddles and strangles, iron condors and butterflies, broken wings, ratio spreads, ladders, jade lizards, combos) and the legs are then built by VEEMAN. Every other value must quote a piece of your text, or it is discarded. The result then passes the same validation as a backtest launch. Anything you did not mention stays as it was: if you give no entry time, the time stays empty and the recipe tells you it is missing.

Units follow the usual conventions: "delta 20" is 0.20; "TP 50%" is half the premium; "stop 200%" or "SL 2x" is twice the premium (credit received or debit paid); premiums and dollar levels are read like a broker quote, as the form shows them: "max $16 debit" or "stop $20" is a quote of 16.00 or 20.00, worth $1,600 or $2,000 per SPX contract (the quote × the contract multiplier of the recipe's underlying), and "stop 20 points" means the same. Only an amount said per contract ("stop $2,000 per contract") is taken as dollars per contract. The How I read it notes give both readings. Price and VIX moves are directional: "VIX overnight up 0%" means "only on days when the VIX opened above the previous close", of any size.

Summarising a rebuilt recipe

When a recipe is rebuilt from a trade log, the deduction and the check on the engine are done by the program. Veeman AI then reads the report (the deduced fields with the facts they rest on, how many trades the recipe reproduces and where it differs) and sums it up in a few sentences, with up to three practical notes: what to check or adjust in the plan.

It never sees the file: only the report reaches the model. Every number it writes must appear in the report, and a sentence with a number that doesn't is dropped. Without an AI provider the summary is simply missing; the report is complete on its own.

How it stays accurate

Every number is computed, never invented

The figures Veeman AI cites are produced by the same engine that powers the charts and tables — never estimated by the model. A what-if is a real recomputation of the backtest, not a guess. If Veeman AI does not have the data to answer precisely, it tells you and offers the closest thing it can compute, instead of inventing a number.

What it will not do

Veeman AI is not a financial advisor

By design, Veeman AI stays descriptive and impersonal. It will not tell you to buy, sell, allocate or withdraw real capital; it will not call a portfolio "ready", "safe" or "validated" for live trading; it will not predict future returns; and it will not tailor its answers to your personal situation (real capital, goals, risk tolerance, horizon). Configuration ideas are framed as experiments — "try this and observe the effect on a metric" — never as recommendations. The decision to trade, and how, is always yours. Past performance is not indicative of future results.

Veeman AI also stays on Veeman. It doesn't translate texts, write code or answer general questions, even when such a request is tacked onto an analysis question: it answers the analysis part and says the rest is outside what it does here.

Limits to be aware of

Time of day needs per-trade times
Intraday questions require the entry date and time of each trade in your imported file. Strategies loaded as a daily P/L series or an equity curve don't carry per-trade times, so hour-of-day analysis isn't available for them — Veeman AI will say so.
Monte Carlo is a suggestion
The chat doesn't run Monte Carlo itself (it's heavy). Veeman AI points you to the Monte Carlo tool with the model that fits your data.
Small samples stay uncertain
With few trades or days, a strong-looking result is still low confidence — Veeman AI flags this rather than overstating it.
Usage limits
Limits depend on your plan; today every account has the same allowance. Session verdicts up to 6 a minute and 60 a day, chat messages up to 10 a minute and 200 a day (the chat and its streaming share one count), backtest compositions and rebuild summaries up to 8 a minute and 150 a day, plus a daily volume of AI work across all of them, in which what Veeman AI writes counts more than what it reads (as in the AI provider's prices). Daily counts reset at 00:00 UTC and survive restarts of the service. When a limit is reached, Veeman AI tells you which one and when it resets. An unchanged portfolio reuses its cached verdict without counting.
Calculations per message
One chat message runs at most 8 calculations, of which at most 2 heavy ones (an optimization or a weekday-edge diagnosis), within about two minutes. Ask for the rest in a follow-up message: Veeman AI tells you what it ran. When many people are optimizing at once, a heavy calculation waits its turn for a short while.
Long answers
An answer can be long, but not unlimited. If Veeman AI reaches the length limit it says so at the end of the answer, and you can ask it to continue. All the steps of one message share a writing budget: past it, Veeman AI stops running further calculations and answers with what it has.
Requests at the same time
Up to 2 Veeman AI requests per account run at once; further ones wait their turn instead of failing.
Very large sessions
If the data of a session is too large for Veeman AI (for example, extremely long strategy names), it says so instead of answering. Strategy names can be at most 120 characters.

Model

Veeman AI is designed to run on Anthropic Claude (US): the session verdict on an Opus-class model, the card and the chat on a faster Haiku-class model. Temporarily, until that setup is live, it runs on DeepSeek (servers in China, outside the EU). What is sent is the numeric digest of your session — computed metrics, never raw trades or files — plus the messages you type in the chat and, for the backtest composer, your description and the parameters of the recipe in the form. Don't put personal data there (see Data & privacy).

Language

Veeman AI replies in English.