Workspace & equity
The Workspace (/analysis) is where your live session comes together: the aggregated equity curve,
a KPI strip, and a vertical funnel into every analysis module.
How strategies aggregate
Each strategy is a daily P/L series. In the default fixed regime the portfolio curve is built by summing the weighted daily P/L across strategies, then accumulating it on top of the initial capital:
portfolio_daily_pl(d) = Σ weight_i × strategy_i_daily_pl(d)
equity(d) = initial_capital + cumulative_sum(portfolio_daily_pl up to d)
This is additive (P/L dollars are summed), not compounded — so the shape of the curve comes directly from your trades, and the initial capital sets the baseline they build on.
Strategies can also be switched, one by one, to dynamic sizing (risk- or margin-based per-trade contracts, the same engine as Risk Sizing); fixed and sized legs mix freely in the same portfolio. The composition rules — daily risk budget, compounding, margin — are detailed in Weights, sizing & capital.
Per-strategy curves too
Alongside the combined curve, each strategy has its own equity line (its weighted P/L — or its sized realized P/L — on the same capital base), so you can see who contributes what.
The strategies rail
The left rail lists every strategy in the current session. Below the Add / Details actions, a master toggle (Enable all / Disable all) shows or hides every strategy at once. Its checkbox mirrors the overall state — filled when all are visible, a dash when only some are, empty when none are; the visible/total count in the section header updates accordingly.
Each row has inline controls:
- Visibility — the dot toggles whether the strategy is included in the aggregated curve and metrics.
- Sizing regime — the small
×/%toggle switches the strategy between fixed contracts and dynamic sizing. In fixed mode the ± stepper sets the weight (its P/L multiplier). In sizing mode the stepper is replaced by a compact criteria chip (e.g.2% · SL 100%); clicking it — or switching to%— opens the criteria panel: basis (risk or margin), stop loss (% of premium or $ per contract), per-trade Cap %, optional min/max contracts. The panel commits atomically: nothing recomputes until you press Apply. - Weekday dots — M T W T F switch individual weekdays on or off for that strategy.
- Rename — the pencil button turns the name into an inline field; press Enter to confirm, Escape to cancel. Renaming only affects the live session; if the new name collides with another strategy it is disambiguated with a numeric suffix. (Double-clicking the name opens the detail panel.)
- Delete — the trash button removes the strategy from the session (undoable from the Timeline).
Once at least one strategy uses dynamic sizing, a Sizing control appears in the workspace header with the portfolio-level parameters (daily risk budget, compounding — see Weights, sizing & capital), and the charts card gains a Trades band (the per-trade allocation table) plus any engine warnings under the KPI strip.
The KPI band
The band at the top of the chart card has four primary cells, each with a headline value and a small context subline underneath:
- Total Value — the final equity of the aggregated curve (initial capital plus net P/L). The subline shows the total return versus the initial capital (net P/L ÷ initial capital, with an up/down arrow) together with the CAGR.
- Max DD — the worst peak-to-valley decline in percent, with the MAR ratio (CAGR ÷ max drawdown) as subline.
- Sharpe — with the Sortino as subline.
- Win Rate — the share of profitable days, with the Profit Factor as subline (its dot is green when the factor is above 1, red when below).
Everything is recomputed live as you change weights, capital or filters. The full table with formal definitions is on the Metrics page.
Dollars or percent
Switch the analysis mode between:
- Dollars — the curve and figures in account currency.
- Percent — equity as a percentage return on the initial capital, handy for comparing shapes independently of capital.
Margin employed
Below the drawdown sits a bar histogram of the margin employed — how much capital the portfolio ties up as broker margin, one bar per trading day (days with no trades leave a gap). The bars share the same date axis as the equity and drawdown above, so you can line up a margin spike with what the account was doing. For each day it sums the margin requirement of that day's trades across the visible strategies, scaled by each strategy's weight (the same weighting that builds the equity), so doubling a strategy's weight doubles the margin it contributes:
margin(d) = Σ weight_i × margin_requirement_i(trades on day d)
For strategies in dynamic sizing the contribution is the allocated one instead —
contracts × per-contract margin per trade, on the trade's open date.
A small badge pinned to the top-right shows the median and mean margin across the trading days in view — the typical amount of capital tied up when the book is on. Idle days are excluded from those statistics (they would drag the median to zero); the badge recomputes as you change the time range.
It reads straight from the trade-level CSVs (the Margin Req. column of Option Omega exports and
similar), so it appears only when your strategies carry that column — otherwise the panel shows a quiet
no margin data note. It follows the same range selector as equity and drawdown (all three move
together) but ignores align starting capital, since margin is a physical amount of capital
committed, not a running P/L. In dollars mode it is the margin in account currency; in percent
mode it is the utilisation rate — margin as a percentage of the initial capital — so you can read at
a glance how much of the account is locked up at each moment.
Time range
Above the chart, the range selector narrows the equity and drawdown views to a window — both charts always move together. The presets are 1M, 3M, 6M, YTD, 1Y and ALL (the whole history). Each is counted back from the last data point, not from today. The active window is echoed in the card header, next to the title (for a custom window, as its date range).
The custom button (calendar icon) opens a small picker with a from and to date, so you can frame any exact span. Both bounds are inclusive and clamped to the session's available dates; leave one side untouched to extend the window to the first (or last) point. Picking any preset again clears the custom window.
Align starting capital
By default the range selector only zooms into a window: the equity still carries the profit and loss accumulated before the window, so a curve framed on the last 6 months can start far above the initial capital. The align starting capital checkbox changes that — it replays the selected window as if every strategy had begun trading at its first day.
Concretely, when the checkbox is ticked each curve (the aggregated portfolio, the per-strategy lines, the benchmark and any pinned variant) is rebased so that:
- it starts again from the initial capital on the first day of the window (in percent mode, from 0%), and
- the drawdown is recomputed from that point, with the peak reset to the window start — so it measures the worst decline within the window only, not against an older historical high.
The rebase has two regimes, mirroring the rolling windows convention:
- Additive shift (default):
equity(d) − equity(window start) + initial_capital. Exact when the P/L does not depend on account size — fixed contracts, or dynamic sizing without compounding (contracts are always sized on the initial capital). - Proportional rebase (with compounding + dynamic sizing):
initial_capital × equity(d) ÷ equity(window start). With compounding the dollar swings scale with the equity, so a plain shift would transplant the fluctuations of a much larger account onto the initial capital — producing impossible percentages or sub-zero equity in late windows. The ratio path is the size-invariant representation of the same trades. Per-strategy lines follow their own regime (fixed legs stay additive even inside a compounding portfolio), and each pinned variant is rebased according to the regime it was frozen with.
It works with every preset, the custom window and ALL (on ALL it is effectively a no-op, since the window already starts at the beginning of the history).
What it answers
"How would the portfolio have gone if I had started from this point in history?" Pick YTD, 6M or any custom span, tick the box, and read the equity and drawdown as a fresh start from there.
Benchmark overlay
The benchmark toggle above the equity chart overlays a buy & hold market curve, so you can
read your portfolio against the broad market. When active, a small switch lets you choose between two
deliberately different references (the active one is labelled price only / total return):
- SPX — the S&P 500 index (
^GSPC), price only: it ignores dividends. - SPY — the SPY ETF, total return: dividends are reinvested. Over long horizons it sits clearly above SPX — the gap is exactly the dividend contribution.
It is a fair, same-starting-point comparison:
- In dollars mode it answers "what if I had put the same initial capital into the market?" —
the benchmark starts at your initial capital and scales with it:
capital × price(d) / price(start). - In percent mode both curves start at 0%, and the benchmark is its cumulative return:
(price(d) / price(start) − 1) × 100.
For SPX the price is the index's daily close; for SPY it is the dividend-adjusted close (total return). The data is daily (no intraday), sourced from Yahoo Finance. It refreshes automatically: the app keeps the series cached and re-fetches it on first use each day, so the line is always aligned to the last closed trading session. Prices only exist on trading days, so weekends and holidays carry the last value forward (the line stays flat, it does not drop to zero). With every strategy hidden, the benchmark still plots on its own over the session's date range.
SPX is price, SPY is total return
The whole point of offering both: SPX shows price appreciation only, while SPY reinvests dividends. Comparing them tells you how much of the market's return came from dividends.
Rolling and Trades bands
At the bottom of the charts card two collapsible bands complete the picture:
- Rolling · moving windows — the distribution of returns over fixed-length sliding windows (1w, 2w, 1m, 3m, 6m, 1y — counted in operative days, i.e. days with non-zero P/L), with best/worst window paths. Available for every portfolio, fixed or sized; with compounding on, each window's base is its starting equity, otherwise the initial capital.
- Trades · dynamic allocation — only with dynamic sizing active: one row per sized trade with its premium, stop, allocated contracts, risk, running capital and realized P/L. This is the same ledger the standalone Risk Sizing module shows.
The funnel
The Workspace scrolls through linked sections — Metrics, Correlations, Monthly P&L, Weekday and per-strategy detail — with the sidebar tracking where you are. Heavier modules (Charts, Monte Carlo, Risk Sizing) have their own pages.
Next: tune the mix with Weights, sizing & capital.