ML data engineering
Drift, Freshness, Refresh, and Dataset Retirement
Distinguish source change, population drift, staleness, concept change, refresh triggers, and retirement conditions.
By the end you can
- Distinguish freshness, source change, population drift, label drift, and concept change
- Choose scheduled, event-driven, quality-driven, and outcome-driven refresh triggers
- Preserve comparability across restated dataset editions
- Define retirement conditions when a dataset no longer supports the intended use
Analogy
Dataset refresh is chart maintenance
Nautical charts are maintained, not published once. Tides change predictably, buoys move, ports expand, and storms can alter channels. Some updates are scheduled; others follow reported hazards. Source changes resemble new surveying equipment, while concept change resembles the coastline itself moving. Versioned chart editions preserve what navigators were told at each time. A deployed model can also change the traffic it charts. A recommendation or risk system may alter the population it later observes, producing feedback drift.
The analogy sets the standard for the rest of this lesson. A chart correction carries a date, an edition number and a statement of what changed. So should a dataset refresh. Every case below is dated and cited for that reason.
Refresh should preserve edition history while incorporating verified changes in the evidence and environment.
A fresh dataset can still describe an obsolete world
Refreshing a table every hour does not make it relevant. The source population, product policy, instrumentation, label process, or relationship between features and outcomes may have changed. Drift is a family of phenomena rather than one metric. Feature distributions can shift while model performance holds steady. Performance can decline without any large shift in the features.
Google Flu Trends settles the point, because nothing about it was stale. It rebuilt its estimates continuously from live search queries. Four researchers examined it in Science on 14 March 2014 and found that GFT had overshot the actual 2011-2012 level by more than 50%. The caption to their graph records the run of failures: “From 21 August 2011 to 1 September 2013, GFT reported overly high flu prevalence 100 out of 108 weeks”. The mean absolute errors they print are 0.486 for GFT, 0.311 for the lagged CDC series and 0.232 for the two combined. The freshest of the three inputs was the worst of the three.
The cause was not influenza. The authors attribute the error to "algorithm dynamics": changes Google itself made to search. That is a source change dressed up as a signal about the world. What the model had partly learned was the calendar. Lazer and his co-authors put it in one line: “In short, the initial version of GFT was part flu detector, part winter detector.”
Kandula and Shaman reappraised the system independently, and report the same pattern: GFT estimates were often overestimates of ILI, with large over-estimates at the 2012/13 peak. Google stopped publishing current estimates on its own site in August 2015. The Flu Trends Team wrote that “Instead of maintaining our own website going forward, we're now going to empower institutions who specialize in infectious disease research to use the data to build their own models”.
Data engineering owns much of the evidence needed to interpret change: source versions, coverage, missingness, schema, categories, label maturity, and historical snapshots. Without that evidence, a team looking at GFT in 2012 could see only that the number was wrong. It could not see that the search engine underneath it had moved. A refresh policy should specify what is appended, corrected, recomputed, relabeled, expired, and communicated. The goal is to adapt in a controlled way, without destroying comparability or rewriting history invisibly.
Refresh decisions should respond to diagnosed change in evidence, meaning, or consumer need.
Visual
Different changes require different responses
Calling everything drift can lead to the wrong remedy.
Concept drift has a definition, and it is narrower than everyday use. It “refers to an online supervised learning scenario”, wrote Gama and four co-authors in a 2014 survey in ACM Computing Surveys. It is the relation “between the input data and the target variable” that “changes over time”. A shift in the inputs alone does not meet that definition.
Run Google Flu Trends through this taxonomy and it lands in two boxes, neither of them concept change. It was a source or pipeline change, because Google altered its own search behaviour under the model. It was also expected seasonal variation, because winter terms tracked the calendar rather than the illness. Retraining on fresher queries would have addressed neither. The remedy for a source change is to characterise the source. The remedy for seasonality is to compare against a seasonal reference. Diagnosis comes before the refresh, not after it.
Source or pipeline change
Instrumentation, schema, joins, or transformation behavior changed.
Population drift
The distribution of entities, contexts, or inputs changed.
Label or policy drift
Outcome measurement, adjudication, thresholds, or operational decisions changed.
Concept change
The relationship between available evidence and the desired outcome changed.
Freshness degradation
Data arrives later or updates less often than the consumer expects.
Seasonal or expected variation
The data changes predictably with calendar, lifecycle, or known events.
Diagnosis should separate system defects, expected variation, and genuine changes in the decision problem.
Comparison
Scheduled, event-driven, quality-driven, and performance-driven refresh
A mature policy combines triggers instead of relying on one clock.
The fourth column has a documented instance. On 2 November 2021 Zillow Group announced it would wind down Zillow Offers, because its home-price forecasting model had failed in a changed market. The Q3 2021 shareholder letter it filed with the SEC states the arithmetic: “We have been unable to accurately forecast future home prices at different times in both directions by much more than we modeled as possible, with Zillow Offers unit economics swinging approximately 1,200 basis points from Q2 to an expected -500 to -700 basis points in Q4 2021.” The same filing records “a $304 million write-down on inventory owned at the end of Q3 as a result of purchasing homes at higher prices than our current estimates of future selling prices”, a further $240-265 million of losses expected in Q4, and “our decision to wind down our Zillow Offers operations, which will unfortunately involve a reduction in our workforce of approximately 25% over the next few quarters”. CEO Rich Barton gave the diagnosis in the accompanying press release: “We've determined the unpredictability in forecasting home prices far exceeds what we anticipated and continuing to scale Zillow Offers would result in too much earnings and balance-sheet volatility”. No data-quality alert fired. Outcome degradation was the trigger, and the answer was not another refresh. It was retirement of the product.
The opposite discipline is to settle the trigger before the first retrain. In October 2023 the US FDA, Health Canada and the UK's MHRA jointly published five guiding principles for predetermined change control plans. A PCCP is a manufacturer-proposed plan: the modifications it intends to make, the protocol for implementing and controlling them, and the assessment of their impacts. The first principle is “Focused and Bounded”. The document also ties itself to existing practice: “These principles draw upon the overarching GMLP guiding principles, in particular principle 10, which states that deployed models are monitored for performance and re-training risks are managed.” FDA's final guidance makes the payoff explicit: “The FDA reviews the PCCP as part of a marketing submission for an AI-enabled device to ensure the continued safety and effectiveness of the device without necessitating additional marketing submissions for implementing each modification described in the PCCP”. Written down in advance, a refresh trigger stops being an operational habit. It becomes an approved protocol.
Fixed schedule
Rebuild on a regular cadence.
- Simple and predictable capacity planning
- Can refresh too early or too late
- Useful when data and labels arrive regularly
- Example: weekly training snapshot
Source-event trigger
Refresh after a named upstream release or volume milestone.
- Aligns work with actual new evidence
- Needs debouncing and dependency readiness
- Can react to label or catalog publication
- Example: rebuild after monthly outcomes mature
Quality or drift trigger
Refresh when monitored data crosses a reviewed threshold.
- Adapts to unexpected change
- Can overreact to seasonality or low sample size
- Needs diagnosis before automated action
- Example: new category coverage exceeds tolerance
Model or business trigger
Refresh after quality, calibration, or outcome degradation.
- Connects work to decision impact
- Labels may be delayed and confounded by policy
- Data refresh may not solve concept change alone
- Example: recall falls on mature fraud outcomes
Key idea
Deployment can create the drift you observe
A ranking model changes which items receive exposure, altering future clicks. A fraud model changes which cases are reviewed, altering future labels. A medical alert changes treatment, altering outcomes. Separate passive population change from policy-induced feedback where possible. Log exposures, interventions, model versions, thresholds, and review selection. Retraining on feedback without exploring, and without asking what causes what, can reinforce blind spots. Data collection strategy may need to change before the dataset should be refreshed.
In one jurisdiction this is no longer only good practice. The EU AI Act uses the lesson's own term and makes it a duty. Article 15(4) of Regulation (EU) 2024/1689 reads: “High-risk AI systems that continue to learn after being placed on the market or put into service shall be developed in such a way as to eliminate or reduce as far as possible the risk of possibly biased outputs influencing input for future operations (feedback loops), and as to ensure that any such feedback loops are duly addressed with appropriate mitigation measures.” A team that cannot show which of its future inputs were produced by its own past outputs cannot demonstrate compliance with that sentence.
Observed drift can be a consequence of the model and policy, not an independent change in the world.
Case
Predictive policing patrols the neighborhoods it already patrolled
Predictive policing systems are “susceptible to runaway feedback loops, where police are repeatedly sent back to the same neighborhoods regardless of the true crime rate”. Ensign and four co-authors proved it at FAT* in 2018. Discovered crime updates the model, and the model decides where crime is discovered. Adding resident-reported incidents “can attenuate the degree of runaway feedback”, they found, but “cannot entirely remove it”.
The refresh lesson is uncomfortable. Each new batch of arrest data is genuinely new, genuinely fresh, and genuinely produced by the previous model's deployment decisions. A quality-driven trigger watching that stream would see a stable distribution and report nothing wrong.
Steps
Write a refresh and restatement policy
The policy should state not only when to run, but what historical truth is allowed to change.
For high-risk systems, parts of that policy are already fixed in EU law. Article 72 of Regulation (EU) 2024/1689 requires providers to establish and document a post-market monitoring system that actively and systematically collects and analyses performance data throughout the system's lifetime. Paragraph 3 turns monitoring into a document: “The post-market monitoring system shall be based on a post-market monitoring plan.” That plan forms part of the Annex IV technical documentation, so it is filed where the rest of the system's evidence lives, not in a team wiki. The Commission is obliged to adopt a template for it by 2 February 2026. Step 2 of the process below is therefore a written artefact with a home, and step 5 — coordinating downstream state — is the lifetime obligation the same article imposes.
1. Classify data products
Mark append-only events, mutable dimensions, delayed labels, features, and published snapshots.
2. Define trigger evidence
Set schedule, source, quality, and performance signals with minimum sample requirements.
3. Choose the change operation
Append, correct, restate, relabel, recompute, expire, or redesign explicitly.
4. Compare and approve
Produce dataset diffs, temporal impact, slice effects, and consumer-specific checks.
5. Coordinate downstream state
Version releases, rebuild dependents, notify owners, and retain rollback or prior editions.
Refresh is a controlled data-change operation, not merely rerunning the same job.
Example
One change signal can imply very different actions
Cause and affected evidence should determine the response. The source-bug case shows how far the consequences travel.
On 4 October 2020 Public Health England reported that 15,841 positive COVID-19 cases were missing from daily reporting and from contact tracing. They should have been reported between 25 September and 2 October. Source files had exceeded a maximum file size: case information was truncated from an Excel spreadsheet once the row limit was reached. Over 75% of them, 11,968 cases, were due to be reported in the final three days. The agency transferred all outstanding cases to contact tracing by 1am on 3 October, put in a rapid mitigation splitting large files, and began an end-to-end review of all systems.
The episode then became a natural experiment. Fetzer and Graeber's study of it states: “Conservative estimates suggest that the failure of timely contact tracing due to the data glitch is associated with more than 125,000 additional infections and over 1,500 additional COVID-19-related deaths.” Fetzer works at the University of Warwick, Graeber at Harvard Business School. The version of record, in PNAS, reports 63% fewer subsequent infections and 66% fewer subsequent deaths for properly traced cases across the six weeks following the glitch. No drift detector would have caught this. The distribution of the cases that arrived was fine. What was wrong was the ones that did not arrive.
- New product category: append new examples, update vocabularies, assess cold-start coverage, and preserve an unknown fallback.
- Source bug: repair the pipeline, rebuild affected intervals, invalidate contaminated snapshots, and notify consumers — Public Health England's file-size defect cost 15,841 cases over eight days, 11,968 of them in the last three, and the deadline that mattered was 1am on 3 October, when the outstanding cases finally reached contact tracing.
- Policy revision: version label definitions, relabel selected history, and avoid mixing incompatible targets silently.
- Seasonal demand: retain the pattern, compare seasonal references, and refresh only if the forecast cadence requires it — the failure mode is the winter detector inside Google Flu Trends.
- Attacker adaptation: collect new outcomes, examine concept change, and consider feature or decision redesign rather than blind retraining.
Preserve comparability across editions
Keep a stable benchmark cohort when possible, so model and dataset changes can be compared against common evidence. Add new forward cohorts to test relevance rather than overwriting the old benchmark. When labels or entities are restated, retain original and revised versions with effective dates. Analysts may need both “as known then” and “best known now” views.
ImageNet shows what documenting an edition change actually costs. Its maintainers announced the plan on image-net.org on 17 September 2019: “So far out of 2,832 synsets within the person subtree we've identified 1,593 unsafe synsets”. Five authors published the full arithmetic at FAT* in 2020. Of the 2,832 categories in the person subtree, 1,593 were annotated as unsafe, offensive or sensitive, leaving 1,239 provisionally safe, of which only 158 were judged visual. The paper gives the consumer-facing number: “The unsafe synsets are associated with 600,040 images in ImageNet. Removing them would leave 577,244 images in the safe synsets of the person subtree of ImageNet.” Roughly half the subtree leaves. That is what "document changes in population, coverage, and split membership" means when a benchmark restates itself: anyone comparing a result across the two editions has to be told which one they measured on. A metric shift without that context is ambiguous.
Retirement is the harder half, because withdrawal is not removal. DukeMTMC and MS-Celeb-1M were retracted in April 2019. Three researchers at Princeton University then went looking for what happened next. They analysed 946 unique papers, drawn from corpora of 1,393 citing DukeMTMC, 1,404 citing MS-Celeb-1M and 7,732 citing LFW. In their 20% samples: “In our sample of papers, we found that DukeMTMC and its derivatives had been used 73 times and MS-Celeb-1M and its derivatives had been used 54 times in 2020.” Scaled to the full corpora that is “hundreds of uses in total”, a year after retraction. The authors name the mechanism “runaway data”: derivatives outlive the original. Exposing.ai documents the same retirement from outside — “In response to this report and an investigation by the Financial Times, Duke University has terminated the Duke MTMC dataset” — and the copies that survived it. A retirement condition without notification, licence clarity and derivative tracking is a decision the field never receives.
Eventually the problem itself may change enough that continuity becomes misleading. Create a new dataset product and a bridge study instead of forcing incompatible eras into one version sequence.
Version continuity is useful only while the underlying decision and measurement system remain meaningfully comparable.
Key takeaways
- Freshness is not relevance: Google Flu Trends rebuilt itself from live queries and still ran overly high in 100 out of 108 weeks between 21 August 2011 and 1 September 2013.
- Diagnosis precedes refresh — source change, population drift, label drift, concept change and expected seasonality have different remedies, and GFT was a source change plus a winter detector, not a change in influenza.
- A refresh policy can combine fixed schedules, source events, quality signals, and model or business outcomes; under Article 72 of Regulation (EU) 2024/1689 that policy must exist as a written post-market monitoring plan in the Annex IV documentation.
- The correct operation may be append, correction, restatement, relabeling, recomputation, expiration, or retirement — Zillow Group's answer to a forecasting failure was a $304 million write-down and winding the product down, not another retrain.
- Feedback drift is a design obligation, not just a methodological worry: Article 15(4) of the AI Act names feedback loops, and Ensign and colleagues showed reported incidents attenuate but cannot entirely remove them.
- Retirement is only half a policy: DukeMTMC and MS-Celeb-1M were retracted in April 2019 and were still used 73 and 54 times in one 20% sample during 2020.