How statistics are calculated

Understand the trade population, return types, percentage compounding, currency conversion, evidence, and availability rules behind Trading Vault Stats.

Trading Vault calculates Stats from the trades selected by your filters. This page explains the shared rules behind those calculations. Page-specific guides then describe each metric in detail.

The population being measured

Unless a metric says otherwise, Stats use the filtered selection of closed, executed trades. Trades are ordered by normalized close time and then by trade ID. This ordering matters for cumulative paths, streaks, drawdowns, and recovery periods.

Your filters remain authoritative as you move between Overview, Performance, Risk, Review, and Compare. If you filter to one strategy or direction, Stats do not silently add excluded trades back into a calculation.

There are two important exceptions:

  • Planning statistics also include planned opportunities marked Invalid because an invalidated plan is a resolved opportunity even though no trade was executed.
  • Compare constructs a separate population for every group and optional group intersection, always starting from the selected closed trades.

Profit, R, and percentage

The Return type control changes the unit used by compatible metrics:

Return typeMeaningHow totals are combined
ProfitNet profit after recorded costs, normalized into the reporting currencyAdded
RRealized result relative to initial riskAdded
PercentageThe percentage return saved on each tradeGeometrically linked

Changing return type does not merely change formatting. Profit, R, and percentage may have different observed populations because a trade can have one saved value and be missing another.

Some metrics intentionally use a fixed unit. Risk-adjusted monthly statistics use percentage returns. Monthly Return Reliability uses R. Ratings use a 1–5 scale. Execution efficiency uses a percentage of the recorded trade range.

Geometrically linking percentage returns

Percentage returns cannot be added because every return changes the base for the next one. Trading Vault calculates compounded return as:

compounded return = (product(1 + trade return / 100) - 1) * 100

For +2%, -1%, and +3%:

1.02 * 0.99 * 1.03 = 1.040094
compounded return = (1.040094 - 1) * 100 = 4.0094%

The difference becomes especially clear with large opposing returns:

+50% then -50%
1.50 * 0.50 = 0.75
compounded return = -25%

After gaining 50%, the loss is applied to the larger base. A 50% loss therefore does not return the sequence to zero.

What compounded return represents

Trading Vault's compounded percentage is a normalized selected-trade return sequence. It is designed to remain usable with arbitrary filters, overlapping trades, multiple accounts, different account sizes, and mixed source currencies.

It is not cash-flow-aware account growth or marked-to-market portfolio performance. Two overlapping +2% trades are linked as if they were sequential observations and produce +4.04%. The formula does not change based on the filter combination. Use the realized account return on a single Trade Account page when you need cash-flow-aware account performance.

Null percentage returns are excluded. A saved 0% is a real neutral observation. If no selected trade has a percentage return, the result is unavailable rather than zero. A saved return below -100% invalidates the path, and a path ending at or below zero cannot produce CAGR or Calmar.

Trades with the same close timestamp are combined before the cumulative percentage path measures a peak, trough, or drawdown. This prevents an arbitrary ordering between simultaneous closes from manufacturing an intrapoint peak.

Status and numerical sign are different

Trading Vault preserves the outcome status saved on a trade, but financial formulas also inspect the numerical result in the selected return unit.

Saved status drives:

  • Win, loss, and break-even counts
  • Outcome breakdowns and filters
  • Configured win rate
  • Winning, losing, and break-even streaks

Numerical sign drives:

  • Trade expectancy
  • Profit factor
  • Average win/loss ratio
  • Standard deviation
  • Largest positive and negative outcomes

This distinction matters when a trade's status and a particular saved return value do not agree. It also means every return unit can have its own positive, negative, zero, and missing population.

Break-even treatment

You can configure descriptive Win rate in Journal Settings:

Exclude break-even:             W / (W + L)
Treat break-even as a loss:     W / (W + L + B)
Treat break-even as non-losing: (W + B) / (W + L + B)

Financial break-even equations always use the decisive win rate W / (W + L). They model a two-outcome relationship between average wins and average losses, so including a third break-even outcome would make the payoff boundary inconsistent. Compare's break-even map uses the same decisive rate.

Missing values and recorded zeroes

Trading Vault does not convert unknown data into a zero merely to display a metric.

  • Null observations are normally excluded.
  • A recorded zero remains in averages and dispersion denominators.
  • Zero is neither positive nor negative for sign-based ratios.
  • Missing gross profit and pips remain unknown.
  • Omitted manual commissions, fees, roll, and dividends are treated as zero because manual entry does not require explicit zeroes.
  • Calculations that require a pair of fields, such as gross and net profit, use only trades where both are observed.

These rules prevent incomplete data from diluting averages or creating artificial evidence. Check the basis or information shown beside a metric when its observation count differs from the selected trade count.

Currency conversion

Monetary totals spanning accounts are converted into one reporting currency before aggregation. Percentage, R, pips, ratings, durations, and counts are not currency values and are unchanged.

When the selected trades use more than one currency, the result metadata identifies the reporting currency, source currencies, and rate state. Conversion is all-or-nothing for a calculation: Trading Vault does not combine converted and unconverted monetary values in the same statistic.

Currency normalization makes monetary groups comparable, but it does not turn compounded trade percentages into portfolio performance. Those are separate concepts.

Availability and evidence

Each statistic can be:

  • Available — the formula and normal evidence requirements are satisfied.
  • Limited — a value can be calculated, but the evidence is below the recommended level or coverage is incomplete.
  • Unavailable — required observations, time, coverage, or a valid denominator are missing.

Availability belongs to the individual metric, not the entire Stats page. In the same selection, Net P&L may be available while profit factor is unavailable because there are no negative outcomes, and Sharpe may be limited because only four complete months exist.

A valid numerical zero remains zero. It is not shown as unavailable simply because it is visually unexciting. Conversely, an undefined ratio is not shown as zero or infinity.

Trade statistics and monthly statistics use different variation

Standard deviation on individual trades uses the population formula because it describes the complete selected set:

population variance = sum((outcome - mean)^2) / N
population SD = sqrt(population variance)

Monthly risk-adjusted statistics use sample standard deviation because the completed months are treated as a sample of performance variability:

sample SD = sqrt(sum((monthly return - mean)^2) / (N - 1))

Do not interpret the individual-trade standard deviation shown in a comparison as annualized volatility. They answer different questions.

Observation windows for monthly percentage statistics

Sharpe, Sortino, annualized volatility, annualized downside deviation, and return smoothness use consecutive complete calendar months in the user's local timezone.

  • Partial first and last boundary months are excluded.
  • The current month is excluded because it is not complete.
  • An inactive complete month inside the window is a real 0% observation.
  • An active month whose trades have no saved percentage returns is missing data, not an inactive month.
  • Returns inside each month are geometrically linked.

Calmar differs because CAGR uses the exact effective start and end dates and annualizes by elapsed calendar days. Monthly Return Reliability also differs: it evaluates complete active months with R observations and excludes inactive months because it is measuring repeatability when opportunities occurred.

When the selection uses Close date, explicit date boundaries define the return window. Planned-date, Open-date, and calendar-overlap filters can select trades that close outside the requested dates, so period-return metrics derive their effective window from the selected close dates. The evidence shown with the result identifies the effective dates used.

Percentage-return coverage

Percentage-path statistics require saved percentage returns for at least 80% of selected trades in their calculation window and recommend 100% coverage.

  • Below 80%: unavailable.
  • From 80% to below 100%: calculated with limited coverage.
  • At 100%: full coverage requirement satisfied.

Coverage measures missing trade data, not trading frequency. A no-trade complete month may correctly be 0%, while an active month with missing returns cannot be reconstructed.

How to read the guide

Use this methodology page whenever a metric mentions the selected population, return type, compounded path, coverage, or availability. Then open the page-specific guide for the exact formula, interpretation, and limitations: