Kapoor, S. and Narayanan, A. (2023). Leakage and the reproducibility crisis in machine-learning-based science. Patterns 4(9), 100804.
Leakage found in 17 fields, affecting 294 papers; includes temporal leakage, where models use data from the future.
A model that looks right on paper and misses in daily use usually learned from facts it could not have known at the time.
Test results are strong, sometimes surprisingly so. Results in daily use are clearly weaker, and retraining does not close the gap. The customers at the top of the list had often started to leave or fall behind before anyone could act. Teams stop trusting the list and choose whom to contact themselves, so the model loses the feedback it needs.
Researchers call this leakage: information about the outcome reaching the model through inputs it should never have had. Kaufman and colleagues (2012), citing earlier practitioners, note that results which look too good to be true are one of its clearest signs.
The facts that say most about a customer often arrive after the decision. A chargeback is filed weeks after the payment. A complaint, a collections note or an account review usually follows a missed payment. The data warehouse holds all of these today, and a model trained on today's warehouse learns from them.
Some leaks are obvious once named. Kaufman and colleagues describe a churn model that used the name of the staff member who last spoke with each customer. The field looked harmless until it emerged that one salesperson took over customers who had already said they would leave. Other leaks are quieter, such as a balance or risk flag overwritten in place, so the stored value reflects last week rather than the day of the decision.
Kapoor and Narayanan (2023) found leakage reported in 17 fields of published research, affecting 294 papers, and list data from the future among its causes.
The remedy is a strict rule about time. For each past decision, every input is rebuilt as it stood at that moment and no later. A count of complaints means the complaints on file at that moment. A balance means the balance then. The same applies to watch lists, device history, bureau results and any answer from an outside service.
In practice this means a timestamp on every event and every change to a record, rather than updating records in place. Kaufman and colleagues call this a learn-predict separation: tag each observation with the time it became known, then cut the data at a point in time so training uses only what came before. Where history has been overwritten, record the fact and leave those inputs out until they can be rebuilt.
Archive the exact inputs each live decision used, as they arrived, and compare them with your rebuilt version for the same decisions, column by column. Where they differ, record the reason, such as a late file, a changed definition, a time zone, or an outside lookup that answered differently on the day. Treat an unexplained difference as a leak until you can show otherwise.
Fraud reports and chargebacks keep arriving for weeks after a payment, and a loan that will default can look healthy for months. Recent periods therefore look cleaner than they will turn out to be. Compare models and periods only on customers who have had the same time for outcomes to arrive, and treat the latest results as provisional.
A predictive model gives a number that can be checked. Take every applicant a model scored at 7 in 100 likely to default: about 7 in 100 of them should default. If 12 do, the model is wrong, and you know by how much. Run this check for every score band and key customer group.
Test on later periods, never on a random sample of the same period. Train on one span of time, test on the months that follow, and repeat as the window moves forward. A random split shows the model the same customers and conditions in training and testing, which hides the problem described here.
US bank supervisors expect the same. Their model risk guidance, revised in April 2026 as SR 26-2, describes outcomes analysis as comparing model outputs with real-world outcomes, including back-testing, and says recalibration or redevelopment may be warranted when results fall outside agreed thresholds.
A credit model learns about repayment only from loans that were granted, and a fraud model learns mostly from payments that went through. Customers who were declined never produce an outcome, so a model can lock in yesterday's decisions. The risk is greatest when a lender moves into a new segment where past decisions were cautious, such as first-time borrowers or residents new to the country, a common case for lenders in the Gulf.
Two practices help. Keep a small holdout group on the previous process, so the model's real effect can be measured. Then approve a small, controlled share of cases the model would decline, within risk appetite, so it keeps learning about customers it would otherwise never see. Reject-inference methods can add to this but do not replace real outcomes.
For each input in the model, when did we know its value, and can we show it?
Do we archive what each live decision saw, and when did we last compare it with our training data?
Was the model tested on a later period, and how long had outcomes in that period had to arrive?
In each score band, how close is the predicted rate to what actually happened?
What do we know about the customers we declined, and how does the model learn about them?
Choose the model your teams rely on most and run two checks this month: predicted against actual rates by band on the latest period whose outcomes have matured, and a sample of rebuilt inputs against those the live system recorded. Together they show whether hindsight has entered the data and where to look first.
Mantika Tessera learns each customer's history in order, as it unfolded.
Leakage found in 17 fields, affecting 294 papers; includes temporal leakage, where models use data from the future.
Definition of leakage, the churn example and the learn-predict separation. An earlier version appeared at KDD 2011.
Outcomes analysis, back-testing and ongoing monitoring. Supersedes SR 11-7 (2011).