I started with the formula review angle, which was fine, but I underweighted how much they wanted to hear about point-in-time database joins specifically.
Start by defining what 'future data' means in the context of the factor and the prediction task, then systematically trace the factor's computation pipeline to identify any point where information from after the prediction timestamp could leak in. Use both logical reasoning and empirical tests to confirm or rule out leakage.
Pro tip: Mention that you always validate factors on a time-series split with a gap between train and test to catch subtle leakage, and that you keep a 'leakage checklist' for common pitfalls like using future-dated reference data or global normalization.
Clearly specify the exact timestamp at which the prediction is made and what data would be available at that time. This sets the boundary for what constitutes future data.
Map every data source, transformation, and aggregation step in the factor's calculation. Look for any operation that uses data with timestamps after the prediction point, including joins, window functions, or global statistics.
Systematically inspect for typical leakage sources: using future values in rolling windows, normalizing with full-sample statistics, target encoding without time-awareness, or joining on future-dated reference tables.
Perform time-series cross-validation with a gap, compare factor performance on shuffled vs. chronological data, and check for suspiciously high predictive power. Also, simulate point-in-time data to see if the factor changes.
Consult with domain experts and review data documentation to confirm that all inputs are indeed available at prediction time. Document any assumptions and edge cases.
AI-generated suggestions, not part of the candidate's original notes. May be inaccurate — verify before relying on them.