Richard Teachout // Teachout.com
← All writing

Data Rot: How to Catch It Before the Model Learns It

Richard Teachout
Richard Teachout CTO at Ashley Furniture Industries - Executive Tech Leader, Entrepreneur, AI leader, Architect, Problem Solver, Ex-Developer. October 12, 2026
AI
Data Rot: How to Catch It Before the Model Learns It

The data is rotting, and the model is learning the rot.

That's the quiet failure of AI systems, and it's the one nobody sees until the damage is done. The model doesn't break. It degrades — slowly, invisibly, in the direction of the data it's being fed. The data source changes format. The field that used to mean one thing now means another. The records that were complete are now half-empty. And the model, diligently, learns the new reality — wrong as it is.

Data rot is invisible by design. The system doesn't error. It just gets worse, a little at a time, and the outputs drift in ways that are hard to notice from inside. By the time someone sees it, the model has been learning the wrong thing for weeks, and the fix isn't a patch. It's a re-education.

Why the model makes it worse

The model is an amplifier of data rot, and that's the part most teams don't appreciate.

Software with messy data usually fails loudly — the schema breaks, the query errors, the report comes back empty. The AI is different. It absorbs the mess. The missing field becomes the model's new normal. The changed format becomes the new pattern. The model doesn't complain about the data quality problem. It incorporates the data quality problem, and every output it produces carries the rot forward.

That's the amplification. The rot was in one data source, and now it's in every answer the model gives. The model has taken a localized data problem and distributed it across the whole system. Catching the rot early isn't just about the data. It's about stopping the amplification.

Data rot is the slow failure. The model turns it into the fast one — absorbing the mess and distributing it everywhere. The catch has to happen before the model learns the lesson.

The drift checks that catch it

You can't watch the data manually — there's too much of it. You need checks, and they run on a schedule.

The distribution check: for each field the model depends on, track the distribution of values over time. The categorical field that used to have five values and now has seven. The numeric field whose mean moved. The text field whose length distribution shifted. Distributions don't move by accident. When they move, something upstream changed, and you want to know before the model does.

The freshness check: is the data arriving? The pipeline that used to update hourly and now updates daily. The feed that silently stopped including records. The completeness check is the same family — the field that used to be populated 99% of the time and now 80%. These are the checks that catch the rot early, when it's a pipeline issue and not a model issue.

The semantic check: is the data still what it says it is? This is the hardest check and the one that catches the expensive rot. The field that changed meaning. The unit that changed. The ID scheme that changed. The distribution check won't catch a field that looks the same and means something different. The semantic check needs a domain owner — someone who looks at samples and asks “is this still what it was?” It's the human check, and it's worth scheduling, because the expensive rot is semantic.

The weekly data-health review

The checks generate alerts. The alerts need a human, on a schedule, looking at the whole picture.

The weekly data-health review is thirty minutes, same time every week. The drift report, the freshness report, the sample batch. The operator walks the reports and answers one question: is the data still what the model thinks it is? Most weeks the answer is yes and the meeting is short. The weeks it isn't are the weeks the review earns its keep — the rot caught at the pipeline stage, before the model has had a week to learn it.

The review is also where the semantic check happens. The domain owner looks at a sample of the data and the model's outputs, and flags the quiet changes the distributions can't see. The review is the human layer that makes the automated checks trustworthy — the checks say what moved, the human says whether the movement matters.

The loop that keeps the model honest

The data-health review has a second output beyond the alerts: it feeds the eval suite. The distribution shift becomes a new eval case. The semantic change becomes a golden-set entry. The rot that was caught becomes a regression test, so the next time the same shape of change appears, the eval suite catches it before the review does.

That's the loop that compounds. Each incident of rot makes the system better at catching the next one, because each one adds a case to the suite and a check to the pipeline. The data-health review stops being a chore and becomes the sensor that keeps the whole system honest.

The model learns what you feed it. The rot is in the feeding. Distribution checks, freshness checks, semantic checks, a weekly review, and a loop that turns every catch into a test. That's the practice, and it's the difference between a model that stays sharp and a model that slowly, quietly, learns to be wrong. Watch the data. The model will take care of itself.

Think this argument fits your event? Tell me about the room — the calendar is selective.

Start a conversation