01
Leakage is usually structural
It rarely arrives as a duplicated row. It arrives as a feature computed over the full dataset, a target encoded before the split, or a time series shuffled at random. Build the split first and compute everything after it.
02
Aggregate metrics hide the failures that matter
A model can post an excellent overall score while failing completely on the slice your users care about. Report per-slice error from the first experiment, not after the first complaint.
03
Fix the seeds, then vary them
A single run gives you a point estimate with unknown variance. Repeat across seeds and report the spread; a two-point improvement inside four points of seed noise is not an improvement.
04
Write the evaluation before the model
Deciding what counts as success after seeing results is how a benchmark stops being a benchmark. Specify the metric, the slices and the acceptance threshold in advance.