ANCHOR 163 // home
// measurement

The number that approved the model.

A model is approved on a measured figure. Data leakage pushes that figure up, and nothing in the metrics says so.

// on this page · 5 sections
An accuracy or a false-alarm rate is a measurement. Like any measurement, it can be biased by a defect in the procedure that produced it. Data leakage is one of those defects.
Leakage happens when information about the label, or information that will not exist at decision time, reaches the model during training or validation. The reported figure goes up. The model itself may be fine or it may be junk.
What is certain is that the number used to approve it does not estimate field performance. The problem shows up in production, or it never shows up at all.

Four ways it happens

Temporal or look-ahead

The evaluation grades the model on information it would not have had at the moment of decision. Splitting data collected over time at random does this by default.
The model looks robust because it was graded on the future.

Target leakage

A feature, one of the model's inputs, encodes the answer. Often it is a field filled in after the outcome, or a proxy so close that it is the label under another name.
Accuracy looks excellent, and the feature will be empty when it matters.

Preprocessing leakage

Cleanup steps, like rescaling values or filling in missing ones, are fitted on the full dataset before it is split into training and test data. Information from the test data has already leaked into training.
Each step adds a small bias, and the steps compound across a pipeline.

Entity overlap

The same subject, device, patient or session appears on both sides of the split under different identifiers. The model learns to recognise the entity instead of the task.
Performance collapses on entities it has never seen.

Why the usual defenses do not close it

Static analyzers

These tools scan a pipeline's code and catch contamination built into it. Leakage that lives in the data gets past them, because the code is correct.

Grouped and temporal cross-validation

This means testing on several slices of the data while keeping related records or time periods together. Applied correctly, it prevents several of the classes above. Whether a given pipeline applied it correctly is usually unverified.
Contamination introduced before the split survives any splitting scheme.

A held-out test set

This is data set aside and never trained on. It assumes that data is clean, and when the contamination is in the source, the set-aside data inherits it.
It then confirms the wrong answer with more confidence.

What an honest answer requires

A detector is only useful if you can say how often it is right, and that is harder than building it. True leakage rates in the wild are unknown, so field data cannot answer the question. The measurement has to be built.
  1. Build cases whose contamination is known by construction. Inject each class at known locations and set severities, next to matched clean controls.
  2. Measure detection probability and false-alarm rate for each class and severity, with ranges that show the uncertainty.
  3. Check that results repeat across runs and reproduce in independent implementations. Test transfer by holding out whole datasets and whole model families.
  4. Publish the regimes where the method fails.
Some contamination will always be too subtle to catch at a false-alarm rate anyone can live with. A high false-alarm rate makes a detector worse than none, because people stop acting on it. Knowing where a method stops working is the part a program office actually needs.

What we built

We built a measurement harness, a test rig, for one version of this problem: integrity of federated aggregation, where many machines train one shared model. Each machine, or node, trains locally and returns model updates. A node whose feed has drifted inside nominal bounds still returns a well-formed update, and the aggregator has no basis to reject it. Healthy nodes dominate the fleet-wide metric, so the damage does not show up anywhere.
The healthy baseline came first. In a healthy federation, round-to-round variance rises sharply with data heterogeneity. A fixed detection threshold cannot hold across a realistic fleet, so false-alarm rate is reported for each heterogeneity level.
The first detection curves now exist, from a ten-node simulation at three seeds. Label corruption and slow input drift are caught within a few rounds. Gain drift is not reliably caught. The numbers and their limits are in the drift-detection guide.
If you are running an evaluation whose number decides something expensive, that is the audit work we do. Federal details are in the capability statement.

Common questions

Data leakage occurs when information about the label, or information unavailable at decision time, reaches the model through the training or validation pathway. It biases the reported performance figure upward, so the number used to approve the model does not estimate what it will do in the field. Nothing in the standard metrics reveals it.
The most common structural cause is that the evaluation was biased rather than the model being wrong. Temporal splits that grade on future information, features populated downstream of the outcome, preprocessing fitted before the split, and the same entity appearing in both partitions all inflate the reported figure. The model is then measured honestly for the first time in production.
Partially, and how well is an open question. Static analyzers catch structural contamination in pipeline code but not leakage that is a property of the data. Answering it properly requires measuring detection probability and false-alarm rate against cases whose contamination is known by construction, and publishing the regimes where detection fails.