ML Monitoring Report
Isometric conveyor feeding cubes into a camera-topped sorting machine that routes cubes, spheres and pyramids into three bins, a model drift metaphor.
drift-detection

Concept Drift vs Data Drift: Key Differences

Compare concept, data and prediction drift by what changes, whether labels are required, detection latency, monitoring signals, and the right response.

By ML Monitoring Report Editorial · · Updated · 7 min read

Concept drift vs data drift is a distinction between a change in the inputs and a change in the relationship a model is supposed to learn. It determines which evidence to collect before choosing a response. A distribution alert alone cannot tell you whether to repair a feature pipeline, collect labels, or evaluate a replacement model.

IBM’s model drift overview and Evidently’s data drift guide describe the distinction. This guide separates the signals, shows a report implementation, and gives a diagnostic sequence for production monitoring.

Concept drift vs data drift: the formal distinction

A supervised model maps inputs X to a target Y.

Data drift is a change in the input distribution, P(X). In the pure covariate-shift case, P(Y|X) remains unchanged. For example, a hypothetical transaction model might receive a different mix of transaction amounts while the relationship between those amounts and the outcome stays the same. An input-drift test detects the changed mix; it does not establish that the model’s predictions are worse.

Concept drift is a change in P(Y|X). The same input can now have a different expected outcome. For example, the behavior associated with an account feature might change while that feature’s frequency stays stable. Measuring the input distribution alone cannot reveal this change.

Prediction drift is a change in the distribution of model outputs, P(Ŷ). A classifier predicting the positive class more frequently has prediction drift. That can reflect changed inputs, changed scoring code, or a different model version. It is a symptom to investigate.

The cases can coexist. Pure concept drift need not change the predictions of a fixed model: if its inputs and scoring function remain unchanged, its output distribution can stay stable even as its answers become less useful. Data drift also does not guarantee performance degradation; that depends on the model and the affected population.

Label-distribution changes and pipeline-origin shifts are covered in types of data drift.

What each shift requires to detect

ShiftWhat changesNeeds outcome labels?What the signal establishes
Data driftInput distribution P(X)NoThe observed input samples differ
Prediction driftOutput distribution P(Ŷ)NoThe model’s score or class mix differs
Concept driftInput-to-outcome relationship P(Y|X)Usually needed for confirmationThe learned relationship may no longer hold

Data and prediction drift can be measured as soon as a sufficiently large current window is available. Concept-drift confirmation depends on the outcome-label process. If labels take weeks to mature, a dashboard cannot turn input statistics into immediate ground truth.

This is why monitoring models without ground truth separates leading indicators, performance estimates, and retrospective outcome reporting.

Detecting data drift without labels

Compare a current input window with a documented reference sample. That reference can be a training or validation snapshot, or a stable production period. Keep transformations and units consistent across both samples.

Hypothesis tests such as KS for continuous features and chi-square for categorical frequencies ask whether the observed differences are consistent with the null model. Sample size matters: a small p-value does not measure operational harm.

Distance metrics such as PSI and Wasserstein express distributional differences as a magnitude. The Population Stability Index uses fixed bins and needs an explicit policy for empty bins. Raw Wasserstein distance is expressed in feature units; normalized implementations use a scaling convention that must be recorded.

In scorecard terminology, score-level PSI and per-characteristic CSI apply the stability calculation to different variables. PSI vs CSI explains why a stable score histogram can hide offsetting input shifts.

The metric decision belongs in choosing drift metrics: PSI, KS and calibration. For window design, multivariate checks, and retrieval inputs, use data drift detection in ML. A metric threshold should be calibrated against the relevant baseline, sample size, and acceptable response burden.

A current Evidently drift report

The Evidently ML quickstart uses Dataset objects with a DataDefinition. The following reader-runnable example assumes two existing DataFrames with the named columns. It compares inputs; outcome monitoring is a separate step.

from evidently import DataDefinition, Dataset, Report
from evidently.presets import DataDriftPreset

definition = DataDefinition(
    numerical_columns=["amount", "account_age_days"],
    categorical_columns=["channel", "device_type"],
)
reference = Dataset.from_pandas(
    reference_df, data_definition=definition
)
current = Dataset.from_pandas(
    current_df, data_definition=definition
)

report = Report([DataDriftPreset()], include_tests=True)
result = report.run(current, reference)
result.save_html("drift_report.html")
metrics = result.dict()
payload = result.json()

The object returned by run() provides the exports. When migrating an older report, replace the legacy evidently.report and metric_preset imports and update the data wrappers. Calling export methods on the report builder instead of its result is an API mismatch. Record the installed library version alongside the report.

Evidently’s customization documentation describes how to select methods and thresholds per column. Use explicit choices when comparing successive reports; changed detector defaults can otherwise look like changed data.

Detecting concept drift with delayed outcomes

Monitor labeled cohorts. Track classification or regression performance on predictions whose outcomes have matured. Compare cohorts with similar label availability, class coverage, and sampling rules. An AUC drop measured on a small, selectively labeled subset is not equivalent to a drop across the complete serving population.

Track the label process itself. Missing labels, changed annotation criteria, and different maturation times can move apparent performance. Separate the time of prediction from the time its label arrived so a backfilled report can be reconstructed.

Use streaming detectors on an appropriate signal. ADWIN, DDM, and Page-Hinkley can be applied to monitored streams such as errors or losses, subject to each method’s assumptions. Feeding a detector raw inputs asks about input change; feeding it prediction errors asks about a different signal. The differences are covered in concept drift detection methods.

Keep proxies labeled as proxies. Complaints, conversion, or rejection rates can help prioritize investigation, but they also respond to product and population changes. They do not isolate concept drift.

NannyML’s CBPE documentation describes estimating classification performance from calibrated probabilities without current labels. Its assumptions do not make it a general concept-drift detector. Reconcile estimates against realized performance when labels arrive, and investigate discrepancies in calibration, population mix, or label quality.

Reading data and performance panels together

This diagnostic table preserves the dashboard distinction: input movement and outcome degradation are separate observations.

Input distributionsLabeled performanceInterpretation to investigateFirst checks
StableStableNo detected regression in these monitored viewsCheck sample coverage and important segments
ShiftedStableData drift without observed performance damageInspect pipelines, feature importance, and affected cohorts
StableDegradedPossible concept drift, skew, or label-quality changeCompare feature paths, label definitions, and model versions
ShiftedDegradedChanged population with a quality regression; several causes remain possibleValidate data and labels before evaluating retraining

These rows are diagnostic prompts, not proofs of causality. A dataset-wide average can hide a failing subgroup. Likewise, stable individual feature distributions do not guarantee a stable joint distribution.

A high-cardinality input can appear to change simply because new identifiers arrive. Check new-category rates and group meaningful categories rather than interpreting every new ID as a model incident. Require a documented minimum sample and compare seasonal windows before escalating a short-lived spike.

A diagnostic order before retraining

  1. Validate the pipeline. Check schema, units, null handling, joins, and feature freshness. Compare the transformations actually used during training and serving; training-serving skew detection covers matched-record checks.
  2. Locate the movement. Inspect the features, score bands, and segments that changed. Use importance as a prioritization aid, not as proof that a feature cannot matter.
  3. Validate outcomes. Check maturity, missingness, and label definitions before interpreting a performance change.
  4. Evaluate a response. Repair a broken upstream feed when that is the cause. If the population or target relationship changed, evaluate a candidate trained on suitable recent examples and valid labels.
  5. Record the decision. Keep the reference version, evidence, owner, and action in the ML model monitoring framework specification.

Retraining on freshly collected inputs with stale or incorrectly joined labels can preserve the original problem. A drift alert should open an investigation or evaluation, not silently approve a new model.

Where the tabular distinction needs adaptation

For an LLM system, input movement can involve changes in topics, languages, document mix, or retrieval results. Quality often requires task-specific scoring and reviewed examples rather than a single classification label. The distinction between distribution movement and quality degradation still helps, but the instruments change.

Monitoring tabular models vs LLM systems maps those differences. The production-sampling and judge-review workflow is included in ML model monitoring best practices.

Common interpretation errors

Treating prediction drift as concept-drift confirmation. An output shift can have several causes, while a changed target relationship can leave a fixed model’s outputs unchanged.

Treating stable PSI as proof of model quality. PSI compares binned distributions. It does not evaluate correctness, interactions between features, or unmonitored segments.

Replacing every reference with the latest window. A rolling comparison answers a short-term question and can conceal cumulative movement. Keep a versioned fixed reference when long-term stability is the question.

Assuming drift gives a fixed warning period. There is no universal number of hours between an input alert and a quality failure. Detection latency depends on the change, the window, and the label process.

Sources

  1. What is data drift in ML, and how to detect and handle it — Evidently AI
  2. Which test is the best? Comparing 5 drift detection methods — Evidently AI
  3. Data Drift vs. Concept Drift: What Are the Main Differences? — Deepchecks
  4. What Is Model Drift? — IBM
  5. Confidence-based Performance Estimation (CBPE) — NannyML
  6. Data and ML checks — Evidently documentation
  7. Customize data drift — Evidently documentation
Subscribe

ML Monitoring Report — in your inbox

Production ML monitoring, drift, and reliability. Sent only when there is something worth sending.

No spam. Unsubscribe anytime.

Related