A decision log is a structured record of a choice: what was decided, on what evidence, under which policy or model version, and what happened as a result. A good log is deliberately compact and cites scoped evidence by reference rather than copying raw prompts or full customer records, which keeps review readable during an incident (decision log schema guide). That design choice has a direct consequence for replay: the log tells you what the model saw by reference, not by value.
A replay harness inverts that. It takes the reference, resolves it back into the exact input the model received, sends that input to a candidate model, and stores the candidate's output beside the original decision. In credit and AML settings the same idea appears under different names. Off-policy evaluation uses logged decisions to estimate how a candidate policy would have performed, and one published framework treats replay as a formal estimand with its own support assumptions rather than a free lunch (replay and launch readiness framework).
The key mental model: the log is the dataset, the harness is the query engine, and the candidate model is a pluggable function. Everything hard about replay lives in the gap between those three.
| Stage | Input | Output | Where it breaks |
|---|---|---|---|
| Sample | Full log | Stratified subset | Rare reason codes get zero rows |
| Reconstruct | Evidence refs | Model-ready input record | Referenced data has expired or changed |
| Invoke | Input record + candidate | Candidate decision | Cost overrun, rate limits, nondeterminism |
| Score | Original + candidate | Agreement and drift metrics | No ground truth for what "correct" means |
| Record | Everything above | Replay artifact | No version pin, so results can't be reproduced |



