Five kinds of result
| State | Uses | Can establish | Cannot establish |
|---|---|---|---|
| Simulation | Constructed scenarios | Rule behavior under specified assumptions | Historical or live market performance |
| Historical backtest | Recorded past data | Past-data result under the model and cost assumptions | Future performance or actual fills |
| Paper/testnet | Current or test data, no equivalent production capital | Workflow, integration and decision behavior | Production liquidity, impact and capital risk |
| Shadow mode | Live market data without orders | Real-time signal and control behavior | Actual execution or realized P&L |
| Live | Production orders and capital | Observed result for that account, period and size | Future returns or results at larger scale |
A dashboard needs a denominator
“40% return” is incomplete without capital, dates, cash flows, costs, benchmark, drawdown and whether the number is annualized. APY can magnify a short observation window into an unstable annual figure. The calculation method must remain close to the number.
Backtest quality checklist
- Data existed and was available at the decision timestamp
- Asset universe includes delisted and failed assets where relevant
- Parameters were not selected using the reported test interval
- Fees, spreads, slippage, funding and borrow are included
- Order size respects historical market depth
- Drawdown and adverse regimes are visible
- Results are compared with a simple baseline
Live-result quality checklist
- Account and observation period are defined
- Deposits, withdrawals and strategy changes are visible
- Returns are net or gross with costs stated
- Open positions and unrealized P&L are handled consistently
- Maximum drawdown and exposure accompany return
- Verification scope and independent access are explained
The same instructions, three execution models
All three examples below are simulations with invented prices and events. None is a historical backtest or a live account. Each starts with $1000.00, requests a purchase of five units, and later requests the sale of the acquired position. Fees are 0.1% of each filled notional. At 2026-09-08T12:02:00Z, any remaining unit is valued at $104.00. There are no deposits, withdrawals, borrow costs or leverage.
Reference-price fills
| Time | Action | Requested units | Filled units | Fill price |
|---|---|---|---|---|
| 12:00:00 UTC | buy | 5 | 5 | $100.00 |
| 12:01:00 UTC | sell | 5 | 5 | $104.00 |
Delayed-price fills
| Time | Action | Requested units | Filled units | Fill price |
|---|---|---|---|---|
| 12:00:01 UTC | buy | 5 | 5 | $101.00 |
| 12:01:01 UTC | sell | 5 | 5 | $103.00 |
Constrained partial fills
| Time | Action | Requested units | Filled units | Fill price |
|---|---|---|---|---|
| 12:00:01 UTC | buy | 5 | 3 | $101.00 |
| 12:00:02 UTC | cancel | 2 | 0 | — |
| 12:01:01 UTC | sell | 3 | 2 | $103.00 |
| 12:01:02 UTC | cancel | 1 | 0 | — |
| Model | Cash | Inventory at final mark | Fees paid | Equity | Net change |
|---|---|---|---|---|---|
| Reference-price fills | $1018.98 | 0 units / $0.00 | $1.02 | $1018.98 | $18.98 |
| Delayed-price fills | $1008.98 | 0 units / $0.00 | $1.02 | $1008.98 | $8.98 |
| Constrained partial fills | $902.49 | 1 units / $104.00 | $0.51 | $1006.49 | $6.49 |
Equity is cash plus marked inventory. Net change is equity minus the original $1,000, with fees already deducted from cash. Do not subtract execution shortfall again: the changed fill prices already capture it here. Calculations retain thousandths of a dollar; displayed totals round to cents. The partial-fill model therefore ends with $902.491 cash plus $104 inventory, not a fully realized $6.491 return. The remaining unit still carries price risk and would incur another fee if sold.
Cancelling an unfilled remainder is not a sale. The example makes cancellation explicit so an outstanding order cannot silently fill after the valuation time. Real order-state behavior must be checked against the venue: Coinbase documents its order events and remaining quantities. The system recovery guide explains why local state alone is insufficient. Short-horizon models such as AI scalping can be particularly sensitive to the difference between assumed and executable fills.
What would make this live evidence?
A real comparison needs the account and observation period, timestamped order and fill records, fee records, cash flows, open positions and a consistent final mark. It also needs the strategy version and inputs available when each decision was made. A deposit increases account value without being trading profit. A screenshot of ending equity cannot establish that record by itself. These tables illustrate the calculation only; they do not supply those missing records.
How to read a performance page
Preserve the evidence label attached to every number. A backtest remains a backtest when it appears on a polished product page, and a live result remains limited to its named account, dates and capital. If the status changes, the explanation should change with it instead of carrying an old interpretation forward.
Related reading
See how these evidence problems appear in crypto algorithmic trading, where historical assumptions meet live order handling. The trading-bot guide maps the full path from a signal to a fill, while the AI scalping guide explains why small simulated edges are especially sensitive to fees, latency and queue position.