Trading, measured.
A rigorous view of what your realized returns say about your trading.
Import your trading history
Upload CSV or Excel. Select the returns column; other columns are optional and ignored by the V1 calculation engine.
Enriched workbook mapping
Optional columns unlock additional analysisPerformance snapshot
250 observations · illustrative sampleCumulative trade returns
Additive sequence · no capital assumptionCore statistics
Returns onlyReturn distribution
Frequency by bucketBucket frequency table
Counts and percentagesReturn distribution · detailed view
Per-observation return · BPSDrawdown profile
Summary statistics from the ordered return seriesUnderwater curve
Drawdown from prior cumulative peakPerformance diagnostics
Rule-based observations · not investment adviceConsistency and sequence diagnostics
Sequence-aware analytics · original observation orderRolling Profit Factor
Trailing 30 observations · adjustable in specificationSetup analytics
Setup-based performance analysisWin / loss composition
Configurable breakeven bandPareto decomposition · all observations
Top / bottom 15%, middle 70%Capital and return views
Nominal capital assumptionsSetup and execution diagnostics
Setup grouping and mapped execution fieldsSetup performance
Performance grouped by SetupDuration and execution
Enriched workbook fieldsSetup-level comparison
Returns aggregated by SetupCalculation methodology
Transparent definitionsWinning: return greater than +threshold. Losing: return less than -threshold. Within the band: breakeven, reported separately from wins and losses.
Rank all observations by return. Top 15% and bottom 15% use the full observation count; middle 70% is the remainder. Ties are resolved consistently by original row order.
Closed-trade peak-to-trough drawdown is measured on the additive cumulative return sequence. Worst sequential losing run is separately measured as the most negative uninterrupted run of loss-classified observations.
Fixed-capital ROR divides cumulative mapped P&L by the stated nominal. Dynamic ROR compounds row-level returns when a capital-at-risk / starting-equity column is mapped. These are different denominators.
Setup analytics aggregate observations sharing the same Setup value. Setup groups can contain different numbers of observations.
Rolling and annualized ratios are shown only when sufficient dated monthly observations are available. Results depend on the selected date basis and return aggregation convention. Without initial risk, R-multiples are unavailable. Metrics are not inferred from missing fields.
Methodology: returns are converted to decimal internally and reported in BPS where appropriate. observation returns are accumulated additively for the closed-trade curve; dynamic account ROR is compounded only when a valid starting-capital column is mapped. Grouped trade and position returns sum constituent observation returns. Sharpe-like and Sortino-like ratios are per observation, not annualized. Execution leakage is the sum of mapped slippage, miscellaneous P&L and error P&L; map these fields with consistent sign conventions.
Monthly statistics.
Calendar-month returns and rolling risk metrics, grouped by the selected trade date.
Lifetime return distribution
Across monthly aggregated returnsRolling and since-start risk metrics
Latest available month · metrics also shown by month belowMonthly history and rolling metrics
One row per calendar month · scroll horizontally for all fieldsLifetime miscellaneous and error P&L
Totals for included dated observationsAnnual statistics.
Calendar-year returns grouped by the selected trade date.
Lifetime return distribution
Across annual aggregated returnsAnnual history
One row per calendar yearLifetime miscellaneous and error P&L
Totals for included dated observationsCalculation details.
Definitions and formulas used by the TradeMetrics report.
BPS ÷ 10,000; percent ÷ 100; decimal unchanged. Auto mode infers units from the header and cell values.
Net = Σ rᵢ, the sum of observation returns.
EV = Σ rᵢ / N, the arithmetic mean return per observation.
With breakeven threshold T: WR = winning observations / all observations. Decisive WR excludes breakeven observations from the denominator.
PF = gross winning returns / absolute gross losing returns. With gains but no losses, PF is infinite.
Average win is mean return above +T. Average loss is mean return below −T. Payoff = average win / absolute average loss.
Sample SD = √[Σ(rᵢ − mean)² / (N − 1)].
Skewness is the third standardized central moment. Excess kurtosis is the fourth standardized central moment minus 3.
Eₜ = Σᵢ₌₁ᵗ rᵢ. Peak Pₜ = max(E₀…Eₜ). Drawdown Dₜ = Eₜ − Pₜ. Maximum drawdown is |min(Dₜ)|.
UI = √[ΣDₜ² / N] for the underwater series.
Per-observation Sharpe = mean / sample SD. Sortino = mean / downside deviation; downside deviation = √[Σmin(0,rᵢ)² / N].
Sort observations by return, descending. The selected percentage determines top and bottom slices; the middle contains the remainder. Slice size rounds up to a whole observation.
Returns are summed within calendar periods using selected Entry Date or Exit Date. Rolling windows use 12, 36 and 60 monthly observations.
Calmar = annualized mean / absolute maximum drawdown over the selected window. MAR uses since-start return and since-start drawdown.
Uses a finite-sample approximation based on sample size, skewness and kurtosis. The deflated estimate applies a simplified multiple-testing penalty from the specified trial count; it is not a full correlation-aware DSR implementation.
These values are summed from mapped dollar columns. Miscellaneous P&L (BPS) = miscellaneous P&L / fixed nominal capital × 10,000.
Missing dates are excluded from calendar grouping. Unmapped optional numeric fields remain unavailable rather than being inferred.