Upload a CSV trade log with one row per trade. Each row needs a P&L value (R-multiples or dollars); dates and direction help. Quantprove auto-detects columns, units, and encoding. Monitor needs at least 100 trades, and every score reaches full confidence near 500 trades.
A Quantprove trade log is a CSV with one row per closed trade. The one required field is a result value per trade: an R-multiple or a dollar P&L. Entry and exit dates, trade direction (long or short), and a sequence let the parser place trades in order and compute time-based metrics like Edge Velocity and Monthly Stability.
You do not need to clean or rename columns first. Garbage headers, extra columns, and odd date formats are handled. The parser reads the values themselves, so a column named col4 holding results still gets detected. Missing dates degrade gracefully: time-based sub-metrics return a neutral score rather than failing the upload.
An R-multiple expresses each trade as a multiple of the risk you put on, so a trade that made twice your risk is +2R and a full stop-out is -1R. Dollar P&L is the raw currency result. R-multiples normalize across position sizes; dollar P&L carries your account size and any deposits inside the numbers.
Quantprove detects which unit a file uses and keeps one unit per analysis. Detection reads the values: more than 10% of values sitting exactly at -1.0, or a mean near 0 with a standard deviation of roughly 1 to 2, indicates R-multiples; high variance indicates dollar P&L. Mixing units in a single file, or changing account size mid-stream in a dollar log, makes the scale non-comparable. In simpler words... pick one unit and stay in it.
Never annualize R-multiples. There is no sqrt(252) scaling for R. Report Total R or EV per trade, never "36R/year".
The parser identifies the result column, its unit, the date column, and direction without a mapping step. Column names are matched with fuzzy logic (Levenshtein distance of 2 or less), so Profit, profitt, and P/L all resolve to the result column. When names are useless, value-based detection takes over and reads the distribution shape directly.
Encoding is handled automatically across UTF-8, latin-1, and cp1252, and a leading byte-order mark is stripped. When the parser cannot resolve a column with confidence, it lists the columns it found and asks one question about which holds your returns. See the Edge Score glossary for how the detected values feed the score.
Across all modes, Quantprove discounts small samples with a confidence multiplier of sqrt(n)/sqrt(500): a 500-trade log reaches full weight, and a 20-trade log lands on the 0.2 floor in Backtest. Bailey and López de Prado show that short backtests inflate apparent edge, which is the reason the multiplier exists.
Monitor requires a minimum of 100 trades to open a rolling window, and it widens that window from 20 to 50 trades once the record passes 200. Validation weights its multiplier on the live sample size alone, with no floor, so a thin live log limits the Stability Score regardless of how long the backtest is. For how Quantprove compares to journaling tools, see the comparison hub.
Confidence multiplier = sqrt(n) / sqrt(500). It reaches 1.0 at 500 trades; in Backtest it never drops below a 0.2 floor. Validation has no floor.
The mode decides the file count. Backtest takes one CSV, your strategy’s historical results, and returns an Edge Score across six tiers from No Edge to Exceptional. Monitor takes one continuous live log of at least 100 trades and recomputes a rolling Health Score in adaptive windows; it describes what it observes and does not prescribe actions.
Validation takes two files: the backtest log and the live log. It compares them with a two-sample Anderson-Darling test (Anderson and Darling, 1954) plus EV and Sortino retention, then returns a Stability Score where higher means live tracks the backtest more closely and 60 or above flags as stable. The two files must share one unit, and a mixed-unit pair is rejected. See the Stability Score glossary for the bucket breakdown.
Four mistakes distort results. Too small a sample overstates edge, and the sqrt(n)/sqrt(500) multiplier discounts it, but a 20-trade log still reads thin. Overfitting shows a high Edge Score that collapses live; Validation’s retention metrics and the KS/AD test surface that gap. Mixing units, or adding deposits mid-stream in a dollar log, breaks comparability between backtest and live. Annualizing R-multiples produces impossible numbers.
Read common mistakes that distort a backtest for the full version, or open the glossary index to read any metric before it appears in your results.