Reconcile the first place the two runs disagree
For each decision, record the code and model version, decision time, available data, signal, target weights, orders, fills and fees. Replay the same session and build a bridge from intended gross performance to realised net performance. Use consistent prices for marking the portfolio and include financing and borrow where applicable.
For a completed long trade of shares, start from gross P&L at the decision prices and . Actual P&L is
where denotes fill prices. For partial fills, calculate on actual sizes and separately measure the contribution from unfilled exposure. If orders were never submitted, inspect signal eligibility and execution constraints.
Start with one live session you can reproduce end to end. Compare positions immediately before the first order, then compare the signal, target, submitted order, fill and accounting entry in that order. If the target differs, tuning the fill model will hide the disagreement. If the orders agree and the fills differ, mark both against the same arrival price to isolate execution. Only after you can reconcile the mechanics should you compare the gross signal on live dates with what its original research promised.
A backtest buys 1,000 shares at a decision mark of $50.00 and sells at $50.10. It reports $100 gross. Live, the entry fills at $50.06 and the exit at $50.07, giving $10 gross. Two fees totalling $15 yield a $5 loss. The bridge explains $60 of entry shortfall, $30 of exit shortfall and $15 of fees. You can now test whether observed execution costs systematically exceed assumptions, while keeping the signal itself fixed.
Suppose the replay also loses $5 after using the realised spreads and fills. That supports investigating the fill model. If the replay submits different orders, fix the replay or deployment discrepancy before interpreting the strategy's returns.