Backtest Report Template
A section-by-section template for documenting a backtest so that another person, or your future self, can judge and reproduce it.
Backtest Report Template: A professional backtest report is structured so a reader can reproduce the study and judge how much to trust it. The standard sections are: objective and hypothesis; data and universe (source, period, survivorship treatment, adjustments); trading rules stated unambiguously; the cost and execution model; in-sample and out-of-sample results shown separately; a full metrics table; a drawdown and underwater analysis; robustness tests (parameter sensitivity, walk-forward, Monte Carlo, stress and scenario); and an explicit limitations section. The report should state that every metric is a standard definition and that results exclude real costs unless the cost model section says otherwise.
Use this template as the skeleton for any backtest write-up. The guiding principle is that a report exists to let a sceptical reader reproduce and challenge the result, not to sell it. Separate what was done from what it means, and always show in-sample and out-of-sample results apart so the reader can see the difference. See the research workflow for how these sections map onto the development process.
1. Objective and hypothesis
State in plain language what the strategy is meant to exploit and why it should work. A backtest with a prior economic or behavioural rationale is far less likely to be a data-mined artefact. Record the hypothesis before results, so the reader can see it was not reverse-engineered from the data.
2. Data and universe
Document the data source, the exact date range, the instruments and how the universe was defined at each point in time. Critically, state the survivorship treatment (does the universe include delisted names?), the price adjustment method for splits, bonuses and dividends, and how gaps and holidays were handled. Data provenance is where most silent errors hide.
3. Trading rules
Specify entry, exit, position sizing, filters and risk controls precisely enough that the same rules on the same data reproduce the same trades. Ambiguity here makes the whole report unverifiable. List every parameter and its value, and note how many parameters the strategy has, since that governs its degrees of freedom.
4. Cost and execution model
Describe exactly how fills and costs were modelled: fill timing (next bar open versus signal close), assumed slippage, and the full Indian cost stack (brokerage, STT, exchange charges, GST, SEBI fees, stamp duty). If costs were not modelled, say so prominently, because every return metric is then optimistic. State whether liquidity constraints and market impact were considered.
5. In-sample results
Present the performance on the development data, clearly labelled as in-sample and therefore an upper bound. This is the fitted result; its role is to be compared against the out-of-sample figures, not to stand alone.
6. Out-of-sample results
Present performance on the reserved data the model never saw, and on walk-forward out-of-sample segments if used. A large gap between in-sample and out-of-sample performance is the clearest warning of overfitting. Note how many times, if any, the hold-out was consulted, since each look erodes its value.
7. Metrics table
Report a full table covering return (CAGR, annualised return), risk-adjusted return (Sharpe, Sortino, Calmar), and risk and consistency (maximum and average drawdown, profit factor, win rate, payoff ratio, expectancy, Ulcer index), together with the number of trades. Quote at least one metric from each family. The Metrics Cheat Sheet and Formulas Reference define each one.
| Family | Report these | Note |
|---|---|---|
| Return | CAGR, annualised return, total return | Meaningless without the drawdown alongside. |
| Risk-adjusted | Sharpe, Sortino, Calmar, information ratio | State the annualisation and the benchmark used. |
| Risk / consistency | Max and average drawdown, profit factor, win rate, payoff ratio, expectancy, Ulcer index | Always report the trade count next to these. |
8. Drawdown analysis
Show the underwater curve and quantify the depth and duration of the worst drawdowns, not just the single maximum. Drawdown is the number that determines whether the strategy is survivable in practice, so it deserves its own section rather than one line in the metrics table.
9. Robustness tests
Document parameter sensitivity (is there a plateau or a spike?), walk-forward analysis, Monte Carlo resampling of the trade sequence, and any stress or scenario tests such as a replayed crisis or doubled costs. This section is where a genuine edge is distinguished from a fragile fit; report the tests that were run and, honestly, any the strategy failed.
10. Limitations
State the assumptions, the statistical uncertainty and the ways the result could be wrong: sample size, regime dependence, cost sensitivity, capacity and liquidity limits, and the fact that past performance does not predict the future. A report without a candid limitations section is marketing, not research.
A note on honesty
Every metric in the report is a standard definition, and every result excludes real trading costs unless the cost model section explicitly includes them. Saying so plainly, and separating in-sample from out-of-sample throughout, is what makes a report citable rather than persuasive.
Frequently asked questions
Why separate in-sample and out-of-sample results in the report?
What belongs in the data and universe section?
How detailed should the trading rules section be?
Why does the report need a limitations section?
Should I report metrics if I did not model costs?
What robustness tests should a professional report include?
Last reviewed 11 July 2026. Educational content only — not investment advice.